• soapUI系列之—-02 Groovy脚本常用方法


    ------Groovy脚本常用方法

    1. 设置参数值:setPropertyValue
    a. 设置 project level property
    //set to project level property 下面两种写法都可
    testRunner.testCase.testSuite.project.setPropertyValue("Name", "propValue");
    testRunner.testCase.getTestSuite().getProject().setPropertyValue("Name", "propValue");; //项目对象


    b. 设置 testSuite level property
    //set to testSuite level property
    testRunner.testCase.testSuite.setPropertyValue("Name","testSuiteValue");
    testRunner.testCase.getTestSuite().setPropertyValue("Name","testSuiteValue");


    c. 设置 testCase level property
    //set to testCase level property
    testRunner.testCase.setPropertyValue("Name","testCaseValue");


    d. 设置 testStep level property
    //set to testStep level property
    testRunner.testCase.testSteps['Groovy'].setPropertyValue("Name","testSuiteValue");
    testRunner.testCase.getTestStepByName("Groovy").setPropertyValue("Name","testSuiteValue");


    2. 定位到某个testSuites
    def testSuite = testRunner.testCase.testSuite.project.testSuites['testSuites Name'];


    3. 获取TestCase个数:getTestCaseCount()
    for(int i=0; i<testSuite.getTestCaseCount(); i++) {
    if (!testSuite.getTestCaseAt(i).isDisabled()) {
    if (!(testSuite.getTestCaseAt(i).getTestStepByName("stepName")).equals()){
    .....
    }
    }
    }


    4. 获取TestSuite个数:getTestSuiteCount()
    testRunner.testCase.testSuite.project.getTestSuiteCount()


    5. 获取名称
    a. 取test case的名称:getLabel()
    def tc = testRunner.testCase;
    log.info (tc.getLabel());
    b. 取test suite的名称:getLabel()
    def ts = testRunner.testCase.testSuite;
    log.info (ts.getLabel());
    c. 取project 名称
    def tp = testRunner.testCase.testSuite.project;
    log.info (tp.getName());

    6.层级访问
    testRunner.testCase.testSuite.project.testSuites[testSuiteName].testCases[testCaseName].testSteps[testStepName]

    /*Case1:练手详图如下*/


    import com.eviware.soapui.support.GroovyUtils

    
    

    def testSuite = testRunner.testCase.testSuite.project.testSuites['业务场景']
    log.info(testSuite.getName())
    log.info(testSuite.getTestCaseCount())

    
    

    for(int i=0; i<testSuite.getTestCaseCount(); i++) {
    if (!testSuite.getTestCaseAt(i).isDisabled()) {
    log.info( testSuite.getTestCaseAt(i).getLabel() )
    if (!(testSuite.getTestCaseAt(i).getTestStepByName("issueconfirmJQ")).equals()){
    def appnoJQ =testSuite.getTestCaseAt(i).getPropertyValue("proposalNoJQ")
    log.info( "JQ:"+ appnoJQ)
    }
    if (!(testSuite.getTestCaseAt(i).getTestStepByName("issueconfirmSY")).equals()){
    def appnoSY =testSuite.getTestCaseAt(i).getPropertyValue("proposalNoSY")
    log.info( "SY:"+ appnoSY)
    }
    }
    }

     

     层级关系如下图所示

    log 如下图:

    7.SoapUI允许在项目的各个层次中定义变量,常用的层次包括: Project,TestSuite,TestCase,Global等

    如果在 Groovy Script中使用这些全局变量的话,可以用以下方法:

    def time_num= context.expand ('${#Project#hospitalId}')     //##号内为定义哪个级别的属性变量,后面为属性名

  • 相关阅读:
    Centos7搭建OpenNebula云平台
    Python中__new__和__init__的区别与联系
    16个python常用魔法函数
    微信小程序< 1 > ~ Hello 微信小程序
    扬帆起航,再踏征程(一)
    Java 社区平台
    Java 社区平台
    <Android 应用 之路> 一个类似今日头条的APP
    使用标准C读取文件遇到的结构体对齐问题及其解决办法
    编译64位cu文件的设置
  • 原文地址:https://www.cnblogs.com/liuyitan/p/7929833.html
Copyright © 2020-2023  润新知