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

  • 相关阅读:
    (转)ubuntu 对拍和基本操作
    一个在线翻译LateX的网站
    51nod 1376: 最长递增子序列的数量(二维偏序+cdq分治)
    BZOJ1087: [SCOI2005]互不侵犯King(状态压缩动态规划)
    ZOJ Problem Set
    bzoj2301:[HAOI2011]Problem b(容斥+莫比乌斯反演+分块)
    BZOJ 4318 OSU!期望DP
    CodeForces 235B Let's Play Osu!(概率)
    博客界面美化
    A+B Problem
  • 原文地址:https://www.cnblogs.com/liuyitan/p/7929833.html
Copyright © 2011-2022 走看看