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. DELPHI XE Android 开发笔记

    第一次编译时,设定android SDK: F:\RAD Studio XE6\PlatformSDKs\adt-bundle-windows-x86-20131030\sdk F:\RAD Stud ...

  2. 日记整理---->2017-05-14

    学习一下知识吧,好久没有写博客了.如果他总为别人撑伞,你又何苦非为他等在雨中. 学习的知识内容 一.关于base64的图片问题 byte[] decode = Base64.base64ToByteA ...

  3. Linux 安装Ruby详解(在线和离线安装)

    很多时候我们会发现,真实的生成环境很多都没有外网,只有内网环境,这个时候我们又需要安装Ruby,则不能提供yum命令进行在线安装了,这个时候我们就需要下载安装包进行离线安装.本文主要简单介绍如果离线安 ...

  4. LeetCode 79 Word Search(单词查找)

    题目链接:https://leetcode.com/problems/word-search/#/description 给出一个二维字符表,并给出一个String类型的单词,查找该单词是否出现在该二 ...

  5. mysql优化之伪哈希索引

    想法非常简单,在标准的B-Tree索引上创建一个伪哈希索引.它和真正的哈希索引不是一回事,因为它还是使用B-Tree索引进行查找.然而,它将会使用键的哈希值进行查找,而不是键自身.你所要做的事情就是在 ...

  6. Unity3D笔记 切水果三 切水果

    一.创建一个Apple00,拖拽Prfabs下的Sprite命名为Apple00,添加碰撞器Box Collider,编写代码Knife Rey1.js 二.做被切的苹果 步骤和一是一样的,但是被切的 ...

  7. thinkphp---部署在IIS8.0服务器上

    最近做了一个项目,使用的是我自己基于thinkphp开发的一套CMS,由于我本地使用的都是apche的环境,即使是线上环境用的也是宝塔面板,但是现在要将thinkphp的系统部署在IIS8.0的环境下 ...

  8. R因子

    factor(x = character(), levels, labels = levels, exclude = NA, ordered = is.ordered(x), nmax = NA) l ...

  9. python中的range与xrange

    range 也是一种类型(type),它是一个数字的序列(s sequence of numbers),而且是不可变的,通常用在for循环中. class range(stop) class rang ...

  10. CentOS下mysql安装

    一.检查环境 # 切换root 权限 su root # 检查是否安装过mysql rpm -qa|grep mysql # 删除所有mysql yum -y remove mysql* 1.上传文件 ...