首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

为 IBM App Connect Professional 部署自动化的持续集成引擎-2

为 IBM App Connect Professional 部署自动化的持续集成引擎-2

第 3                步.创建一个测试案例右键单击 CastIron_Deployment 项目,并选择 New                    TestSuite,如图 3a 中所示。
图 3a.添加新的 TestSuite如前所述,右键单击 TestSuite1,并选择 New TestCase,如图                3b 中所示。
图 3b.添加一个测试案例默认情况下,新的测试案例名为 TestCase1。右键单击 TestCase1                并选中 Rename,将其重命名为 PublishandStart,如图 3c                中所示。
图 3c.重命名一个测试案例第 4                步.将 PAR 和属性文件上传至 GitLab接下来,您需要将 PAR 文件和部署属性文件上传至 GitLab 帐户。属性文件具有 .properties                扩展名。属性文件在 Java™ 技术中主要用于存储应用的可配置参数。.properties                文件中的每一行通常会存储单个属性,采用键值对格式。图 4 显示了名为 publishPar.properties                并具有以下属性的部署属性文件:
  • projectName
  • version
  • config
  • FileName
应创建此文件并将其上传至 GitLab。
图 4.部署属性文件 (publishPar.properties)第 5                步.定义测试步骤测试步骤细分为:
  • 第 5a 步:登录。此步骤使用户身份登录到 IBM App Connect 设备。
  • 第 5b 步:在 SoapUI 上附加可部署的 PAR 文件。在此步骤期间,可部署的 PAR 文件可供测试案例访问。
  • 第 5c 步:传输生成的 SessionId。在 IBM App Connect                    中,用户经认证后才能执行任何管理活动。如果要执行任何其他活动(例如,发布或注销),那么在登录后,用户必须获得授权。因此,必须传输                    SessionId,为特定用户会话调用任何操作(或测试案例)。
  • 第 5d 步:发布 PAR 文件。此步骤会在 IBM App Connect 中部署 PAR 文件。
  • 第 5e 步:启动编排操作。在第 5d 步中部署 PAR 文件后,可能已经或尚未在 IBM App Connect                    中启动编排操作,这取决于具体要求。此步骤会根据需要在 IBM App Connect 中启动编排操作。
  • 第 5f 步:注销当前会话。此步骤会注销用户。
第 5a                步.登录在 SoapUI 导航器中,右键单击 Test Steps。在弹出菜单中,单击 Add                    Step,然后单击 SOAP Request,如图 5 中所示。
图 5.在 SoapUI 中添加 SOAP 请求 Add Step > SOAP Request" width="645" height="614">这样会打开 New TestRequest 窗口。从列表中选择 SecurityManagerPortBinding >                    login 选项,然后单击 OK,如图 6 中所示。
图 6.通过 SecurityManagerPortBinding -> login 选择登录设备 API                    请求 login" width="466" height="291">在 <sec:username> </sec:username> 标签之间添加用户名。在                <sec:password> </sec:password> 标签之间添加密码,如图 7                中所示。单击 Save 以保存此项目。
图 7.LoginSOAPRequest如果成功,此登录请求会生成 SessionId 用于用户认证。此 SessionId 会传递至其余步骤。
第 5b 步.在 SOAPUI 上附加可部署的 PAR 文件右键单击 Test Steps,然后单击 Add Step。选择                    Groovy Script,如图 8 中所示。此脚本会在 SoapUI 中从指定位置上传 PAR                文件。此脚本使用您上传至 GitLab 的部署属性文件,如图 4 中所示。
图 8.添加 Groovy 脚本 Add Step > Groovy Script" width="571" height="618">将以下脚本复制并粘贴到 Groovy 脚本窗口中,以便 SoapUI 可以访问并上传 PAR 文件,将其发布至 IBM App                Connect:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import org.custommonkey.xmlunit.*
import java.util.Random   
import java.security.MessageDigest
import java.nio.file.*


    def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
    def projectPath = groovyUtils.projectPath
    log.info projectPath
    Properties properties = new Properties()
    File propertiesFile = new File('C:\\Jenkins\\workspace\\CastIronDeployment\\publishPar.properties')
    propertiesFile.withInputStream {properties.load(it)}
      
    def project = testRunner.testCase.testSuite.project
        log.info "Project: " + project.name
        def myTestSuite = testRunner.testCase.testSuite;
        log.info "TestSuite: " + myTestSuite.name

    def testCase = testRunner.testCase
    log.info "TestCase: " + testCase.name

    def testStepUploadDataAfterCheck = testCase.getTestStepByName("PublishSOAPRequest")
    def request= testStepUploadDataAfterCheck.testRequest
    log.info "TestStep: " + testStepUploadDataAfterCheck.name


    // clear existing attachments
    for( a in request.attachments ) {
        request.removeAttachment( a )
    }

      
    def propFileNamePath='FileNamePath'
    def propFileName='FileName'
    //FileNamePath
    //def fileNamePath = testCase.getTestStepAt(testRunner.testCase.getTestStepIndexByName("FileNameProperties")).getProperty("FileNamePath")
    def fileNamePath = properties."$propFileNamePath"
    //log.info fileNamePath
     //log.info properties."$propFileNamePath"
    //FileName
    //def fileName = testCase.getTestStepAt(testRunner.testCase.getTestStepIndexByName("FileNameProperties")).getProperty("FileName")
    def fileName = properties."$propFileName"
    //log.info fileName

    // get file to attach
   // log.info "file to attach: " + fileNamePath.getValue()
   log.info "file to attach: " + fileNamePath
    //def file = new File(fileNamePath.getValue() )
    def file = new File(fileNamePath)
    if ( file == null) {
        log.error "bad filename"
    }   
    else
    {
        // attach and set properties
        def attachment = request.attachFile( file, true )
        attachment.contentType = "application/octet-stream"
        //attachment.setPart(fileName.getValue())
        attachment.setPart(fileName)

        def holder2 = groovyUtils.getXmlHolder( "PublishSOAPRequest#Request" ) // Get Request body
        //holder2.setNodeValue( "//dep:publishProject/content","cid:"+fileName.getValue()); //Set "link" to attachment in request body
        holder2.setNodeValue( "//dep:publishProject/content","cid:"+fileName); //Set "link" to attachment in request body
        holder2.updateProperty() //and update
        //log.info fileName.getValue()
        log.info fileName
        log.info "file attached succesfully"
    }

返回列表