转载地址:https://blog.csdn.net/wanglha/article/details/48286151
属性是先进soapUI测试一个核心的方面。
对于功能测试,属性用于参数化测试的执行,例如:
- 属性可以被用来保存你的服务的节点,因此很容易改变实际的节点测试执行期间使用(见下面的例子)。
- 属性可用于身份验证凭证,便于管理这些在一个中心位置或外部文件中。
- 属性可用于传输和共享会话id在测试执行,所以多个teststeps或用例可以共享相同的会话。
1。 定义属性
在soapUI几个级别上可以定义:
-
在项目,TestSuite和TestCase相应的属性选项卡(见下文)。
-
在一个属性TestStep(见下文)。
-
在一个DataGen TestStep( 阅读更多 )。
-
一部分TestStep配置:
- 在一个数据源TestStep( [阅读更多](https://www.soapui.org/docs/data-driven-tests/reference/datasources.html) )来执行数据驱动测试场景。 - 在一个DataSink TestStep([阅读更多](https://www.soapui.org/docs/data-driven-tests/reference/datasinks.html))属性值保存到外部存储。
-
此外,大多数其他TestSteps暴露属性读写,例如:
-
脚本TestStep暴露出含有最后执行的脚本返回的字符串值的“结果”属性。
-
所有请求TestSteps暴露包含上次收到响应的响应属性。
-
属性可以很容易地读取和从脚本写入,并在TestSteps之间转移
项目,TestSuite和TestCase属性
例如在项目级别:
在这里你可以看到定义的“Some Property”属性在Properties选项卡的Overview选项卡项目窗口(向右),以及项目的自定义属性选项卡在左侧导航节点。 相应的标签可用于testsuite和TestCase,都可以用来添加/删除/改变所包含的属性。
在这些级别定义属性使他们能够很容易地访问脚本(见下文),通过属性扩张(见下文),例如全球密码可能被存储在项目级别且访问使用标准属性扩展请求消息:${#Project#Password}
2。 属性TestStep
TestStep属性用于用于在TestCase定义自定义属性。 其主要优势在TestCase级别定义的属性有:
-
可以组织属性为多个属性TestSteps(如果你有很多)。
-
可以指定源和目标文件名用来读写执行TestStep时所包含的属性。
属性TestStep窗口如下:
这里可以看到两个定义的属性读取指定的登录。 在执行TestStep txt文件。
3。 脚本访问属性
从脚本直接获得属性值首先需要得到包含的对象,然后使用getPropertyValue(. .)方法。 例如从脚本TestStep中获得TestSuite属性会做到以下几点:
/ /从TestSuite获取用户名属性
def 用户名= testRunner.testCase.testSuite.getPropertyValue( “用户名” )
属性已在TestSuite的窗口被定义如下:
写这个值(例如)你会做一个HTTP请求参数属性
/ /写HTTP请求的用户名
testRunner.testCase.testSteps[ “HTTP请求” ].setPropertyValue( “用户名” 、用户名)
4。 例子——集中的端口
在更复杂的服务环境中一个常见的场景是需要改变的一些服务的端点参与测试,例如测试,开发和不同环境之间测试。 手动更改端口当然是可能的但太乏味,当可能有数百个请求teststeps参与,并使用主机覆盖命令行选项,这时候属性就非常实用。
- 定义一个项目属性控制端口:
- 通过property-expansion端口配置为使用这个属性:
- 确保你的请求使用端口配置:
现在,当运行时属性将自动替换为其当前值。 只是改变端点的用户界面,从命令行您可以使用- p选项;
-PServiceEndoint = dev.smartbear.com :8884
这将使用 dev.smartbear.com :8884端口(而不是完全虚构的)。