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

soapUI系列之—-02 Groovy脚本常用方法的更多相关文章

  1. soapUI系列之—-03 Groovy脚本常用方法2

    ------Groovy脚本常用方法 1.解析Json数据脚本 //groovy读取json的方式很简单,re.body.businessinfo.c2rate读取c2rate对应的值 import ...

  2. [SoapUI] Post请求Body里面限制特殊字符(&、%),Groovy脚本里特殊字符需要添加“\”转义($)。

    SoapUI的Post请求,在body里面不能包含(&.%),如果含有这些特殊字符,请求会报错:在添加的Groovy脚本里有些特殊字符需要使用“\”转义($),不然也会报错.

  3. soapUI参数中文乱码问题解决方法 (groovy脚本中文乱码)

    soapUI参数中文乱码问题解决方法 可能方案1: 字体不支持中文,将字体修改即可: file-preferences-editor settings-select font 修改字体,改成能显示中文 ...

  4. excel文件的groovy脚本在SoapUI中进行数据驱动测试

    SoapUI Pro具有从外部文件读取数据的功能,例如:excel,csv等.但SoapUI不提供从excel文件读取数据的功能.因此,为了从SoapUI中的excel文件中读取数据,我们需要在gro ...

  5. 180807-Quick-Task 动态脚本支持框架之Groovy脚本加载执行

    Quick-Task 动态脚本支持框架之Groovy脚本加载执行 上一篇简答说了如何判断有任务动态添加.删除或更新,归于一点就是监听文件的变化,判断目录下的Groovy文件是否有新增删除和改变,从而判 ...

  6. [Tomcat 源码分析系列] (二) : Tomcat 启动脚本-catalina.bat

    概述 Tomcat 的三个最重要的启动脚本: startup.bat catalina.bat setclasspath.bat 上一篇咱们分析了 startup.bat 脚本 这一篇咱们来分析 ca ...

  7. jenkins2 groovy脚本参考

    使用plugin生成groovy脚本,或者参考已有的groovy脚本. 文章来自:http://www.ciandcd.com文中的代码来自可以从github下载: https://github.co ...

  8. ODI 12c中使用Groovy脚本创建工程

    本文主要介绍在ODI中使用groovy创建工程,并添加一个表转换的映射.要创建groovy脚本,可以从ODI Studio的菜单:工具->Groovy->新脚本 打开一个编辑窗口.在执行下 ...

  9. JAVA嵌入运行Groovy脚本

    摘自: http://shift-alt-ctrl.iteye.com/blog/1938238 . 最近设计一个数据统计系统,系统中上百种数据统计维度,而且这些数据统计的指标可能随时会调整.如果基于 ...

随机推荐

  1. zabbix监控流程图

  2. luogu P2734 游戏 A Game

    https://www.luogu.org/problemnew/show/P2734 数据范围比较小,二位DP可做,而luogu 3004,虽然几乎一模一样(只是数据范围大点),则需要压维. 定义f ...

  3. HTML5新增的非主体元素header元素、footer元素、hgroup元素、adress元素

    ---恢复内容开始--- header header元素是一种具有引导和导航作用的结构元素,通常用来放置整个页面或页面内的一个内容区块的标题,但是也可以包含其他内容,例如数据表格.搜索表单或相关的lo ...

  4. 小白安装Python环境详细步骤!

    昨天,有小伙伴向我反映,他对我说“你好像还没教过我安装Python的吧?”听到这句话,我不禁汗颜起来,我的确好像没太注意Python学习的基础了,一直发各种爬虫与初学者看不懂的代码,在此我要向我的读者 ...

  5. 剑指Offer(书):实现单例模式

    题目:设计一个类,我们只能生成该类的一个实例. 生成一个单例模式,有下列几种常用解法. 1.双重检查锁. 当运行在多线程环境中,此方法可以正常实现单例模式. public class Singleto ...

  6. LeetCode(78) Subsets

    题目 Given a set of distinct integers, nums, return all possible subsets. Note: Elements in a subset m ...

  7. python基础——2(基本数据类型及运算符)

    目录 为何数据要区分类型? 一.数字类型 1.整型int 2.浮点型float 二.字符串str 三.列表类型list 四.字典类型 五.布尔类型 运算符的介绍 一.算术运算符 二.比较运算符 三.赋 ...

  8. 理解js的几个关键问题(2): 对象、 prototype、this等

    参考文档:http://www.cnblogs.com/ranran/archive/2014/05/19/3737217.html http://speakingjs.com/es5/ch17.ht ...

  9. 大数据学习——yum练习安装jdk

    yum list | grep jdk 安装jdk-1.8.0版本 -openjdk* 安装后,执行java -version 配置环境变量 使用vim /etc/profile 编辑profile文 ...

  10. ZOJ 3824 Fiber-optic Network

    Fiber-optic Network Time Limit: 15000ms Memory Limit: 262144KB This problem will be judged on ZJU. O ...