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}')     //##号内为定义哪个级别的属性变量,后面为属性名

  • 相关阅读:
    HDU
    HDU
    (4)数据--相似性与相异性
    (3)数据--操作
    (2)数据--基本概念
    五、按生命周期划分数据(二)
    五、常用数据类型(一)
    四、坏耦合的原因与解耦(三)
    四、强化耦合(二)
    四、初识耦合(一)
  • 原文地址:https://www.cnblogs.com/liuyitan/p/7929833.html
Copyright © 2011-2022 走看看