65.9K
CodeProject 正在变化。 阅读更多。
Home

SoapUI 中的测试套件和断言

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.80/5 (4投票s)

2014年10月8日

CPOL

6分钟阅读

viewsIcon

14138

深入了解测试套件和断言

测试套件

在 soapUI 中,测试套件与任何其他测试工具中的测试套件没有区别。在 soapUI 中,测试套件是分层组织的。一个测试套件可以包含多个测试用例,而一个测试用例又可以包含多个测试步骤。让我们开始在 soapUI 中创建测试套件。我们以一个新的温度单位转换服务 Web 服务为例。其 WSDL 地址为 http://www.webservicex.net/ConvertTemperature.asmx?WSDL。请按照上一篇博文 创建新的 soap 项目,将其命名为“temperature conversion”或您喜欢的任何名称,然后添加上述 WSDL。
现在工作空间的视图将如下所示

Image 1

图 1

现在点击“Request 1”打开请求编辑器。将问号替换为适当的值。例如,温度应为数值,“FromUnit”和“ToUnit”应为“degreeCelsius”或“degreeFahrenheit”或其他格式类似的温度单位。有关支持的其他单位,请参阅 WSDL 的服务描述。运行请求以查看转换结果。

现在假设我们要创建一个测试用例,我们可以点击请求编辑器中运行按钮旁边的按钮。请看下图

Image 2

图 2

点击按钮后,会弹出一个对话框,询问测试套件的名称。为您的测试套件提供一个合适的名称,然后点击 OK。点击 OK 后,会出现另一个类似的对话框,询问您要创建的测试用例的名称。为测试用例提供一个合适的名称,然后点击 OK。现在会出现另一个对话框,看起来像下图

Image 3

图片 3

这是“add request to test case”对话框。现在我们先使用默认设置,只需点击 OK,第一个套件和测试用例就创建好了。工作空间的视图现在应该看起来像下图

Image 4

图 4

您可以看到有一个测试套件,其中有一个测试用例。在测试用例中,有一个测试步骤,其中包含我们当前的请求。您可以点击上图中突出显示的测试步骤编辑器来修改测试用例。您可以为每个测试用例添加任意数量的测试步骤,并为每个测试套件添加任意数量的测试用例。尝试添加几个更多的测试用例和测试套件。

断言

断言是测试用例的重要组成部分,不是吗?它们帮助我们确定结果是否与预期结果相同,或者是否有所不同,从而帮助我们确定测试是否通过。您也可以在 soapUI 的测试步骤中添加断言。一个测试步骤可以添加任意数量的断言,如果任何一个断言失败,该测试步骤就会失败。soapUI 中有一些预定义的断言,我们现在将讨论它们。

1. 包含断言

Contains assertion”会扫描响应消息以查找期望值,如果找到,则断言通过。如果在响应消息中找不到期望值,则断言失败。其正则表达式格式为 (?s).*(“expected value”).*。但是对于大多数 string,值可以直接在字段中以纯文本形式编写。让我们看看如何将 contains assertions 添加到测试用例中。通过点击 image 4 中显示的 ConvertTemp Request 1 来打开测试用例编辑器。‘run’旁边的按钮是‘add assertions’按钮。点击该按钮可以看到 soapUI 的各种断言。‘add assertion’窗口的外观如下

Image 5

图片 5

从左侧窗格中,选择“Property Content”,然后会看到该类别下的一系列断言。选择“Contains”断言,然后点击“Add”按钮。此时会弹出“Contains Assertion”对话框

Image 6

图片 6

在 content 字段中,添加您期望出现在响应消息中的 string。在这种情况下,我们将温度设为 100 摄氏度,并将其转换为华氏度。根据温度转换公式,华氏度温度 = (摄氏度温度 * 9/5) + 32。
因此,100 摄氏度等于 212 华氏度。所以我们可以添加一个断言,即响应消息应包含 string 212。因此,只需在 content 字段中写入 212,然后点击“OK”。现在,当我们运行测试用例时,我们会看到断言已通过,因为响应消息包含 string 212。您也可以编写正则表达式,但请确保选中上图中所示的复选框。

2. 不包含断言

Not Contains”断言与 Contains assertion 类似。这里的区别在于,如果输入的 string 令牌作为期望值不存在于响应消息中,则断言通过。如果在响应消息中找到期望值,则断言失败。正则表达式与“Contains”断言类似。可以像“Contains”断言一样添加它。

3. 非 SOAP 故障断言

“Not SOAP Fault”断言检查我们是否收到一个有效的 soap 响应而不是一个 soap 故障。如果出现 soap 故障,则断言失败。如果响应有效,则断言通过。可以像其他断言一样添加它。此断言不传递任何参数或值,因为它只检查响应是否有效。向测试用例添加一个“Not SOAP Fault”断言,并使用前一个值重新运行测试用例。可以看到断言已通过。现在让我们看看断言失败的情况。在测试用例编辑器中,输入一些随机值。例如,我们可以将 FromUnit 设置为“F”,将 ToUnit 设置为“C”。当我们再次运行测试用例时,我们会看到断言失败了,因为响应是一个 soap 故障。

Image 7

图片 7

4. SOAP 故障断言

SOAP Fault”断言与“Not SOAP Fault”断言类似。区别在于,如果出现 soap 故障,则断言通过;如果没有 soap 故障,则断言失败。可以像添加“Not SOAP Fault”断言一样添加它。

5. XPath 匹配断言

此断言用于将 XPath 表达式的结果与预定义值进行比较。在出现 soap 故障的情况下,我们可以检查 ConvertTemp 响应是否具有预期的故障代码或故障 string。此断言位于“Property Content”断言下。现在选择断言,然后点击“add”按钮。此时会出现 XPath Match 配置窗口。在这里,我们需要在使用任何表达式之前声明命名空间。在这种情况下,我们这样做:

declare namespace soap=’http://schemas.xmlsoap.org/soap/envelope/';
现在 XPath 表达式如下:
//soap:Fault/faultcode

或者,如果我们点击下图所示的“declare”按钮,soapUI 会为我们声明命名空间。

Image 8

图片 8

在 expected value 中,我们输入 image 7 中看到的‘faultcode’节点的值。因此,预期的值为‘soap:Client’。这就是如何添加“XPath Match assertion”。

还有很多其他的断言,您可以探索它们以获得更好的掌握。

以上是关于 soapUI 中测试用例和断言的一些基本知识。希望对您有所帮助。

注意:WSDL 来自 http://www.webservicex.net

© . All rights reserved.