zoukankan      html  css  js  c++  java
  • 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}')     //##号内为定义哪个级别的属性变量,后面为属性名

  • 相关阅读:
    android的FATAL EXCEPTION: main错误
    ORA12560: TNS: 协议适配器错误
    BroadcastReceiver应用详解
    using C# 详解
    mysqlproxy0.8版本读写分离测试总结
    Mysql SHOW PROCESSLIST Sending data
    [转载]大型网站运维探讨和心得
    找出并optimization表
    mysql中普通索引和唯一索引的效率对比
    ps aux 中STAT 解释
  • 原文地址:https://www.cnblogs.com/liuyitan/p/7929833.html
Copyright © 2011-2022 走看看