首页 > 代码库 > 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中文教程---脚本和脚本库
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。