首页 > 代码库 > SOAPUI中文教程---脚本和脚本库

SOAPUI中文教程---脚本和脚本库

SoapUI为脚本编写提供了广泛的选择,使用Groovy或Javascript(由SoupUI 3.0开发)作为脚本语言,使用哪些选项可在左下方的项目详细信息选项卡中设置项目级别。 这里提供的大部分文档将适用于Groovy语言,因为它可以大大简化Java API的脚本(您可以在Groovy网站上获取更多信息,教程等)。 本文档将进一步介绍如何使用JavaScript的概述。

 脚本可以在了SoapUI以下地方使用:

Groovy Script TestStep 

运行测试之前和之后运行一个TestCase或TestSuite的初始化或清理。

当启动/停止MockService时初始化或清理MockService状态

打开/关闭项目,用于初始化或清理项目相关的设置

 

作为动态DataSource或DataSink与相应的DataSource/ DataSink测试步骤

 

为了提供动态MockOperation调度。

 

创建动态MockResponse内容

 

用脚本创建任意断言 


所有脚本都获得了多项具体情况的变量,总是包括记录日志对象Groovy的日志和上下文对象为执行特定上下文PropertyExpansions或Property处理(如果适用)。具体的上下文变量始终可用于直接访问了SoapUI对象模型。

1. Script Editors

脚本编辑器通常在相应的对象编辑器的底部,每一个都有运行按钮,下拉编辑菜单(与右键单击弹出),信息标签,以及帮助按钮;

技术分享

在弹出菜单(如上图所示)包含标准的编辑有关的行为,并会在soapUI中展开,显示当前范围内可用的所有属性。选择属性“Get Data”菜单选项(或创建一个选项新的)最终将创建一个脚本来获取变量,例如

def test = context.expand( ‘${#Project#test}‘ )

它得到了项目级“test”参数。

2. Groovy的脚本库

你可以访问Groovy类的中央图书馆,它可以用于集中常见任务和功能,并创建有用的扩展。

Groovy的脚本库

脚本库,可以使用如下;

  • 指定soapUI的首选项卡要使用的目录(默认为/scripts)。SoapUI将在启动时在此目录的文件检查与“Groovy”的延伸和编译该目录,然后定期检查(每5秒)来进行更新新的或现有的脚本编译并在必要时重新编译。
  • 脚本应放置在其包含的包命名的目录,也就是在包soapui.d??emo应放在指定的脚本目录soapUI / demo目录下的脚本。
  • 编译的类被添加到所有Groovy脚本的父类加载器,你可以访问它们作为标准Java类。

请记住,脚本文件必须是有效的类,不只是任意脚本,因此,作为一个例子,让我们建立这些Groovy对象之一

首先,创建一个目录(如C:\ GroovyLib),然后在目录中添加Callee.groovy文件包含以下内容:

package readyapi.demo
 
//Callee.groovy
class Callee {
 
  String hello() {
     return "Hello world! "
  }
 
  def static salute( who, log ) { log.info "Hello again $who!" }
}

现在,让我们设置SoapUI加载你的Groovy库,设置文件>首选项>了SoapUI标签>脚本库。

因此,我们将其设置为“C:\ GroovyLib”

然后我们重新启动了SoapUI拿起库脚本。

现在,如果我们在创造一个TestCase Groovy脚本步骤,我们可以从上面的库使用类:
//Caller.groovy
c = new Callee()
log.info c.hello()

从Groovy的编辑器中运行,这将显示Groovy的编辑日志如下:
Tue MONTH 29 10:56:08 EST YEAR:INFO:Hello world!

修改脚本文件

如果我们修改Callee.groovy文件:
package readyapi.demo
//Callee.groovy
class Callee {
 
  String hello() {
     return "Hello world! "
  }
 
  String hello(String who) {
     return "Hello $who"
  }
 
  def static salute( who, log ) { log.info "Hello again $who!" }
}

SoapUI将拿起修改后的文件(一旦它被保存),在日志中看到:
Tue MONTH 29 10:56:08 EST YEAR:INFO:C:\GroovyLib\Callee.groovy is new or has changed, reloading... 

We also change the script:

    //Caller.groovy
    c = new Callee()
    log.info c.hello("Mike")

And we get:

Tue MONTH 29 10:56:08 EST YEAR:INFO:Hello, Mike!

静态方法

我们也可以调用静态方法:
    readyapi.demo.Callee.salute( "Mike", log ) 

这将产生以下的输出
Tue MONTH 29 10:56:08 EST YEAR:INFO:Hello again Mike! 



SOAPUI中文教程---脚本和脚本库