SOAP UI 测试与断言应用指南

在现代软件开发中,测试是确保软件质量的重要环节。SOAP UI 是一款流行的API测试工具,它支持SOAP和REST协议,能够进行功能测试、性能测试以及负载测试。本文将介绍如何使用SOAP UI来测试Web服务,并添加断言以验证服务的性能。

断言是测试过程中用来验证实际结果是否符合预期的一种手段。在SOAP UI中,断言可以帮助检查Web服务的响应是否符合预期。在本文中,将通过一个简单的利息计算器Web服务示例,来展示如何添加和使用断言。

前提条件

首先,对服务进行了一点小改动,将响应封装到了一个属性类中。以下是更新后的C#代码示例:

public class SimpleInterestResponse { private int _returnCode; private string _statusMessage; private double _simpleInterest; public SimpleInterestResponse() { // 构造函数逻辑 } public int ReturnCode { get { return _returnCode; } set { _returnCode = value; } } public string StatusMessage { get { return _statusMessage; } set { _statusMessage = value; } } public double SimpleInterest { get { return _simpleInterest; } set { _simpleInterest = value; } } }

Web服务方法

以下是Web服务方法,它根据本金、利率和贷款期限计算简单利息:

[WebMethod] public SimpleInterestResponse SimpleInterestCal(int principalAmount, float rateOfInterest, int loanPeriod) { SimpleInterestResponse objSimIntr = new SimpleInterestResponse(); try { if (principalAmount == 0) { throw new Exception("本金不能为零(0)。"); } else if (principalAmount == 5000) { throw new TimeoutException("Web服务超时。"); } else if (principalAmount == 5001) { throw new FormatException("无效的本金金额。"); } else if (principalAmount == 5002) { throw new Exception("发生了一般性异常。"); } else if (principalAmount == 5003) { System.Threading.Thread.Sleep(10000); } else { objSimIntr.ReturnCode = 0; objSimIntr.StatusMessage = "成功"; objSimIntr.SimpleInterest = (principalAmount * rateOfInterest * loanPeriod) / 100; } return objSimIntr; } catch (TimeoutException tExp) { objSimIntr.ReturnCode = 50; objSimIntr.StatusMessage = "超时: " + tExp.Message; objSimIntr.SimpleInterest = 0; return objSimIntr; } catch (FormatException fExp) { objSimIntr.ReturnCode = 60; objSimIntr.StatusMessage = "格式无效: " + fExp.Message; objSimIntr.SimpleInterest = 0; return objSimIntr; } catch (Exception exp) { objSimIntr.ReturnCode = 70; objSimIntr.StatusMessage = "一般异常: " + exp.Message; objSimIntr.SimpleInterest = 0; return objSimIntr; } }

添加测试用例

SOAP UI项目中添加一个测试套件,并添加一个新的测试用例。将请求1拖放到测试用例下,请求将作为测试步骤1添加。双击请求1打开右侧的请求窗口。点击断言按钮(圆形),这将打开断言选择下拉菜单。

选择无效的HTTP状态码并点击确定。这将打开一个小窗口,可以指定要检查的代码。例如,可以输入401(未授权)、404(未找到)等,并点击确定。同样地,添加一个有效HTTP状态码(200)的断言。

添加一个响应SLA断言,并指定值为5000,这意味着任何超过5秒的响应都被视为无效。运行测试,所有结果都将是绿色的,意味着所有测试都通过了。

现在将本金金额更改为5003并运行测试。服务将延迟10秒响应,从而触发SOAP UI中的SLA违规。

添加了一个XPath匹配,它将检查返回代码是否为0,如果不是,则会引发警报。例如,如果选择的本金金额为5001,则返回代码将为60,断言失败将发生。添加XPath匹配如下图所示。

断言的应用

在本文中,学习了如何向Web服务添加各种断言。根据需求,可以在SOAP UI项目中添加一个或多个断言。如果工具中提供的断言不符合要求,可以使用Groovy编写自己的断言。在下一部分中,将介绍如何在负载测试中添加更多的断言。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485