soapUI-Groovy Script
1.1.1 Groovy Script
soapUI通过以groovy语言编写的脚本来大量支持您的项目。
- Groovy脚本TestSteps可用于向功能TestCase添加任意功能。
- 脚本断言用于任意断言SOAP或REST响应。
- Setup / TearDown脚本可用于测试案例,测试套件和负载测试中的初始化/清理。
- 启动/关闭脚本可用于MockService中的初始化/清理。
- 之前/之后请求脚本可用于提前调度/处理对MockService的请求。
- MockOperation调度脚本用于为请求选择相应的MockResponse。
- MockResponse脚本用于为特定的MockResponse执行任意功能。
- AfterLoad / BeforeSave脚本可用于在其生命周期中初始化/清理项目。
- soapUI扩展可以在soapUI Pro中以groovy脚本来扩展核心的soapUI功能。
- 可以在soapUI Pro中使用Groovy脚本库来集中通用脚本。
- 脚本属性扩展可用于在属性扩展期间执行任意功能。
- DataSource脚本可以在soapUI Pro中用于生成测试用例的数据。
- DataSink脚本可以在soapUI Pro中用于在TestCase运行期间保存数据
- DataGen脚本属性可以在soapUI Pro中用于动态生成属性值。
所有脚本都可以访问许多特定于情境的变量,它们始终包括用于记录Groovy日志的日志对象和用于执行上下文特定的PropertyExpansions或属性处理(如果适用)的上下文对象。 上下文特定变量始终可用于直接访问SoapUI对象模型。
1.1.1.1 Script Editors
脚本编辑器通常作为相应对象编辑器底部的检查器,每个都具有运行按钮,下拉编辑菜单(与右键单击弹出窗口相同),信息标签和帮助按钮;

弹出菜单(如上所示)包含标准的编辑相关操作,并且SoapUI Pro中将包含一个“获取数据”菜单选项,该选项将展开以显示当前范围内可用的所有属性。 例如,选择属性(或创建新的属性的选项)最终将创建一个脚本来获取变量
def connectionurl = context.expand( '${#Project#connection-url}' )
获得项目级“connection-url”属性。
当属性模式进入脚本时,还可以从导航树中拖动一个属性; 如果拖动的属性是“范围内”(即可以通过属性扩展访问),则将在插入位置创建相应的访问脚本。
1.1.1.2 所有的东西都是ModelItems(几乎)
在soapUI中,所有与项目相关的工件(Projects,Requests,TestSuites等)都是ModelItems,它们的接口都在com.eviware.soapui.model包和子包中定义(例如,看看com.eviware。 用于Interface / Operation / Request相关类的soapui.model.iface包)。
例如,可以通过相应的getter访问modelItems的名称,描述,图标等
log.info project.name
将打印项目变量的名称。
显然,取决于哪个类型的ModelItem,用于访问子项的属性和方法是可用的。 将某个类型的子项访问到ModelItem的一般模型如下(XX =子类型):
int getXXCount()
XX getXXByName( String name )
XX getXXAt( int index )
List getXXList()
Map getXXs()
例如,要在项目中获得某个模拟服务,您可以使用其中的一个
def mockService = project.getMockServiceByName( "My MockService" )
def mockService = project.getMockServiceAt( 0 )
可以在TestCase中迭代所有的LoadTests
for( loadTest in testCase.loadTestList )
log.info loadTest.name
由于groovy简化了Map访问,所以最后一个可以从脚本中以多种方式使用,例如,如果我们有一个TestSuite并且想访问它的TestCases,我们可以同时执行
testSuites.testCases["..."]
和
testSuites.testCases."..."
父对象通常可以通过其类型的名称来获得,即
log.info( testCase.testSuite.name + " in project " + testCase.testSuite.project.name )
使用testSuite和项目属性在对象模型中“向上”导航。
1.1.1.3 属性
经常要操作脚本中的属性,无论是基于内建属性还是那些自定义属性,可以在soapUI,Projects,TestSuites,TestCases,MockServices和PropertiesTestStep中的以下对象上设置以下属性(这些都是继承的 来自MutableTestPropertyHolder)。
设置/获取属性很简单
// set property value
object.setPropertyValue( "name", "value" )
object.properties["name"].value = "value"
// get property value
log.info object.getPropertValue( "name" )
log.info object.properties["name"].value
log.info object.properties."name".value
1.1.1.4 上下文
当在某种“运行”中编写脚本时,总是有一个可用于获取/设置上下文相关变量的上下文变量。 上下文是:
- SubmitContext - 一次提交请求中可用
- TestRunContext - 可以从TestCase运行中的所有脚本中获得
- LoadTestRunContext - 可在Load Test setup / tearDown脚本中使用,并通过Load TestContext上下文变量从Exectued TestCase上下文中获取
- MockRunContext - 可用于MockService启动/关闭脚本和MockOperation / MockResponse分派脚本
所有这些都继承自PropertyExpansionContext接口,该接口具有用于设置/获取属性的方法和一个可用于扩展包含Property-Expansions的任意字符串的扩展方法。
1.1.1.5 日志
注意到,所有的scipts都有一个“log”变量。 这是一个标准的log4j Logger,它附加到soapUI窗口底部的groovy日志选项卡,可用于诊断目的等。
soapUI-Groovy Script的更多相关文章
- SoapUI Pro Project Solution Collection –Easy develop Groovy Script to improve SoapUI ability
As you know the groovy script and java script language is the soapui supported .but unfortunately So ...
- 手把手教你接口自动化测试 – SoapUI & Groovy
手把手教你接口自动化测试 – SoapUI & Groovy http://www.cnblogs.com/wade-xu/p/4236295.html 关键词:SoapUI接口测试,接口自动 ...
- Common tasks that you can perform with the Groovy Script test step
https://support.smartbear.com/readyapi/docs/soapui/steps/groovy.html Get test case object To obtain ...
- soapui groovy脚本汇总
出处:https://www.jianshu.com/p/ce6f8a1f66f4 一.一些内部元件的访问 testRunner.testCase开头 1.向下访问 testRunner.testCa ...
- 手把手教你接口自动化测试 – SoapUI & Groovy【转】
手把手教你接口自动化测试 – SoapUI & Groovy Posted on 2015-01-21 09:38 WadeXu 阅读(12741) 评论(10) 编辑 收藏 手把手教你接口自 ...
- How to use groovy script on jenkins
1. Install groovy plugin 2. Add a step of groovy. (normal & systerm) 3. Execute groovy script im ...
- Access Java API in Groovy Script
$ cat Hello.java package test; public class Hello { public int myadd(int x, int y) { return 10 * x + ...
- Groovy Script in SoapUI REST Testing
1. Run special step: testRunner.runTestStepByName("stepName/requestName") get it's respons ...
- [SoapUI] 通过Groovy Script获取当前运行的是哪套Environment
log.info testRunner.testCase.testSuite.project.getActiveEnvironment().getName()
- Elasticsearch的Groovy Script自定义评分检索
需求:以索引中的boostapp列作为评分的基础分值,同时根据carpublishtime(数据的刷新时间字段)按时间进行衰减. 基于Groovy脚本实现. 1.query脚本方式: { " ...
随机推荐
- django进阶-modelform&admin action
先看效果图: 登陆admin后的界面: 查看作者: 当然你也可以定制admin, 使界面更牛逼 数据库表结构: app01/models.py from django.db import models ...
- 第一步 使用sencha touch cmd 4.0 创建项目、打包(加入全局变量、公用类、自定义扩展、资源文件)
参考资料: http://www.cnblogs.com/qqloving/archive/2013/04/25/3043606.html http://www.admin10000.com/docu ...
- Artech的MVC4框架学习——第三章controller的激活
第一当目标controller的名称通过URL路由被解析出来后,asp.net mvc利用 ControllerBuilder 注册 ControllerFactory ,根据名称实现对目标contr ...
- jstack命令的使用
文章来源:https://blog.csdn.net/wufaliang003/article/details/80414267 jstack是java虚拟机自带的一种堆栈跟踪工具. jstack用于 ...
- js模拟点击打开超链接
js模拟点击打开超链接,页面上有一些锚文本,如果用 JS 批量在新窗口打开. jquery示例: <div class="link"> <a href=" ...
- 9.14.16 Django ORM进阶用法
2018-9-14 14:26:45 ORM 练习题 : http://www.cnblogs.com/liwenzhou/articles/8337352.html 2018-9-14 21:1 ...
- zabbix修改Template OS Linux模版使已使用内存(Used memory)更准确
说明: [root@coolnull ~]# free -m total used free shared buffers cached Mem: 995 785 209 0 6 92 -/+ buf ...
- linux、内核源码、内核编译与配置、内核模块开发、内核启动流程(转)
linux是如何组成的?答:linux是由用户空间和内核空间组成的为什么要划分用户空间和内核空间?答:有关CPU体系结构,各处理器可以有多种模式,而LInux这样的划分是考虑到系统的安全性,比如X86 ...
- Python实现简单HTTP服务器(一)
一.返回固定内容 # coding:utf-8 import socket from multiprocessing import Process def handle_client(client_s ...
- 软件工程-wordcount(C语言实现)
Github项目地址:https://github.com/xiaobaot/wordcount-wc/tree/master WC 项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数 ...