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的更多相关文章

  1. 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 ...

  2. 手把手教你接口自动化测试 – SoapUI & Groovy

    手把手教你接口自动化测试 – SoapUI & Groovy http://www.cnblogs.com/wade-xu/p/4236295.html 关键词:SoapUI接口测试,接口自动 ...

  3. 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 ...

  4. soapui groovy脚本汇总

    出处:https://www.jianshu.com/p/ce6f8a1f66f4 一.一些内部元件的访问 testRunner.testCase开头 1.向下访问 testRunner.testCa ...

  5. 手把手教你接口自动化测试 – SoapUI & Groovy【转】

    手把手教你接口自动化测试 – SoapUI & Groovy Posted on 2015-01-21 09:38 WadeXu 阅读(12741) 评论(10) 编辑 收藏 手把手教你接口自 ...

  6. How to use groovy script on jenkins

    1. Install groovy plugin 2. Add a step of groovy. (normal & systerm) 3. Execute groovy script im ...

  7. Access Java API in Groovy Script

    $ cat Hello.java package test; public class Hello { public int myadd(int x, int y) { return 10 * x + ...

  8. Groovy Script in SoapUI REST Testing

    1. Run special step: testRunner.runTestStepByName("stepName/requestName") get it's respons ...

  9. [SoapUI] 通过Groovy Script获取当前运行的是哪套Environment

    log.info testRunner.testCase.testSuite.project.getActiveEnvironment().getName()

  10. Elasticsearch的Groovy Script自定义评分检索

    需求:以索引中的boostapp列作为评分的基础分值,同时根据carpublishtime(数据的刷新时间字段)按时间进行衰减. 基于Groovy脚本实现. 1.query脚本方式: { " ...

随机推荐

  1. springbatch---->springbatch的使用(六)

    前面的例子step都是线性的流程,这里我们提供一个非线性的流程,也就是根据不同的状态做不同的流程step处理.万一有天悔恨变得太现实太世故太麻木,说不定能从回忆中重拾随兴飞翔. step非线性的流程 ...

  2. Esper学习之十五:Pattern(二)

    上一篇开始了新一轮语法——Pattern的讲解,一开始为大家普及了几个基础知识,其中有说到操作符.当时只是把它们都列举出来了,所以今天这篇就是专门详解这些操作符的,但是由于篇幅限制,本篇先会讲几个,剩 ...

  3. 如何修改 Ubuntu 的字符集?

    步骤: 1.编辑 local 文件 输入: vi /var/lib/locales/supported.d/local 将 zh_CN.GB2312 加入到后面,保存. 2.执行:locale-gen ...

  4. path 与classpath针对JAVA来说

    Path 路径,是java编译时需要调用的程序(如java,javac等)所在的地方CLASSPATH 类的路径,在编译运行java程序时,如果有调用到其他类的时候,在classpath中寻找需要的类 ...

  5. CSS+transform画动态表情

    先给大家看下画完后是什么样子: 代码看这里: html代码: <body> <div class="emoji emoji_like"> <div c ...

  6. vue组件定义方式

    一.全局组件 <div id="box"> {{msg}} <my-aaa></my-aaa> </div> var Home = ...

  7. 初学lua --lua嵌入c++的一个问题(初始化lua出错,版本问题)

    初学lua.从http://lua-users.org/wiki/CallingLuaFromCpp上下载了一个lua嵌入C++的代码.编译并运行.发现有错误: PANIC: unprotected ...

  8. Internet Explorer 9 已安装在此系统上

    问题: win7系统,IE11浏览器,想换成IE9,安装IE9的时候,提示错误. 解决方案: 方案一: 1.打开 控制面板--程序--程序和功能--点击打开或者关闭Windows功能,找到Intern ...

  9. Node.js 文件系统fs模块

    Node.js 文件系统封装在 fs 模块是中,它提供了文件的读取.写入.更名.删除.遍历目录.链接等POSIX 文件系统操作. 与其他模块不同的是,fs 模块中所有的操作都提供了异步的和 同步的两个 ...

  10. Mapreduce实验一:WordCountTest

    1.确定Hadoop处于启动状态 [root@neusoft-master ~]# jps 23763 Jps3220 SecondaryNameNode3374 ResourceManager293 ...