SOAP UI - 第二部分 - 断言





0/5 (0投票)
这是我关于 SOAP UI 介绍的文章的续篇。
引言
本文的第一部分介绍了 SOAP UI,可以在这里查看。 作为其中的一部分,我们了解了什么是 SOAP UI、如何创建示例项目、如何运行请求以及 SOAP UI 中可用的断言类型。 在这一部分中,我们将向我们的 Web 服务(单利计算器)添加断言。
背景
正如第一部分中提到的,断言用于衡量服务的性能。 在以下部分中,我添加了我在我的项目中使用的各种断言。
必备组件
对服务进行了一点更改。 服务的响应已被包装到属性类中; 更新后的代码如下所示。
public class SimpleInterestResponse
{
private int _returnCode;
private string _statusMessage;
private double _simpleInterest;
public SimpleInterestResponse()
{
//
// TODO: Add constructor logic here
//
}
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 服务方法
[WebMethod]
public SimpleInterestResponse SimpleInterestcal(int principalAmount, float rateofInterest, int loanPeriod)
{
SimpleInterestResponse objSimIntr = new SimpleInterestResponse();
try
{
if (principalAmount == 0)
{
throw new Exception("Principal cant be zero (0).");
}
else if (principalAmount == 5000)
{
throw new TimeoutException("Web service timed out");
}
else if (principalAmount == 5001)
{
throw new FormatException("Invalid Principal amount");
}
else if (principalAmount == 5002)
{
throw new Exception("A general exception has occured");
}
else if (principalAmount == 5003)
{
System.Threading.Thread.Sleep(10000);
}
else
{
objSimIntr.ReturnCode = 0;
objSimIntr.StatusMessage = "Success";
objSimIntr.SimpleInterest = (principalAmount * rateofInterest * loanPeriod) / 100;
}
return objSimIntr;
}
catch (TimeoutException tExp)
{
objSimIntr.ReturnCode = 50;
objSimIntr.StatusMessage = "Timeout : " + tExp.Message; ;
objSimIntr.SimpleInterest = 0;
return objSimIntr;
}
catch (FormatException fExp)
{
objSimIntr.ReturnCode = 60;
objSimIntr.StatusMessage = "Invalid Format :" + fExp.Message;
objSimIntr.SimpleInterest = 0;
return objSimIntr;
}
catch (Exception exp)
{
objSimIntr.ReturnCode = 70;
objSimIntr.StatusMessage = "General Exception :" + exp.Message;
objSimIntr.SimpleInterest = 0;
return objSimIntr;
}
finally
{
}
}
该服务将返回三个参数
- 返回代码,0 表示成功,非零整数表示错误情况
- 状态消息 – 错误情况的简要说明
- 单利 – 通常 0 表示错误情况/验证失败
该服务能够返回三个异常,超时、格式和一般异常,此外,如果本金为 5003,则响应将延迟 10 秒。
- 将测试套件添加到 SOAP UI 项目并添加一个新的测试用例。
- 将请求 1 拖放到测试用例下。 请求将添加到测试步骤 1 下,如下图所示;
- 双击请求 1 以在右侧窗格中打开请求窗口。
- 单击断言按钮(圆角)。 这将打开断言选择下拉列表。
- 选择无效的 HTTP 状态代码,然后单击“确定”。
- 这将打开一个小窗口,我们可以在其中指定要检查的代码。
- 给出 401(未授权)、404(未找到)等,并根据需要添加任意数量,然后单击“确定”。
- 以同样的方式,为有效的 http 代码 (200) 添加一个断言。
- 添加响应 SLA 并将该值指定为 5000,如下图所示。 这意味着在 5 秒后获得的任何响应都被认为是无效的。
- 运行测试。 全部为绿色,表示所有测试都已通过。
- 现在将本金更改为 5003 并运行测试。 服务会将响应延迟 10 秒,从而触发 SOAP UI 中的 SLA 违规。
- 我添加了一个 Xpath 匹配,它将检查返回代码是否为 0,如果不是,则发出警报。 例如,如果本金选择为 5001,则返回代码将为 60,并且会发生断言失败。 添加 xpath 匹配如下所示。
- 同样,“包含”和“模式一致性”也将以相同的方式工作。
- 根据要求,可以向 SOAP UI 项目添加一个或多个断言。
- 我已经停止了 Web 服务,因此所有断言都失败了!
这些是可以添加的一些断言来测试 Web 服务的质量。 如果工具中提供的断言与您的要求不符,我们可以使用 Groovy 编写自己的断言。 更多断言也可以添加到负载测试中,我将在下一部分中介绍。
关注点
在这一部分中,我们学习了如何向 Web 服务添加各种断言。
历史
初始版本。