[工具应用]利用SoupUI实现协议级接口测试
SoapUI是一个开源测试工具,通过SOAP/HTTP来检查、调用、实现WebService的功能/负载/符合性测试。提供GUI界面完成测试。其本质也是调用WS接口进行操作,并提供断言功能。
实验简介
SoapUI是一个开源测试工具,通过SOAP/HTTP来检查、调用、实现WebService的功能/负载/符合性测试。提供GUI界面完成测试。其本质也是调用WS接口进行操作,并提供断言功能。
实验目的
(1) 能够使用SoapUI提供的核心功能,并完成针对WebService和Http协议的接口测试。
实验流程
1. 新建一个SOAP项目
2. 输入WSDL文件路径
3. 调用WS接口
(1) 在对应的被调用接口名称下的默认请求Request 1处双击,打开请求和响应子窗口。
(2) 在请求窗口中,输入对应的参数值。
(3) 点击绿色三角形,将此请求连同参数发送出去。
(4) 查看对应的右边窗口的响应内容。
4. 添加测试用例
保持其它的默认设置和默认选项即可。
5. 简单运行测试用例
(1) 在创建好的Test Suite下的Test Case 1处双击,打开测试用例执行对话框。
(2) 点击运行测试用例。
(3) 查看运行结果,如果所有的断言都是成功,则用例执行成功。(类似于JUnit的结果)。
6. 手工添加断言
默认情况下,SoapUI会为每一个默认的测试用例添加一个标准的断言,该断言只判断请求是否发送成功,响应的状态是否正确。显然,这样的断言是无法满足业务需要的,所以我们应该手工添加断言。
(1) 双击TestCase 1下的接口方法名称,打开测试窗口。
(2) 打开“Add Assertion”对话框。
SoapUI内置了较多断言,我们选择自己需要的即可。通常情况下,如果判断的是响应的内容,我们只需要选择“Contains”断言即可,如图。
(3) 输入断言的内容。
7. 再次执行测试
我们可以设置错误的断言,以确定断言的确是生效的。
8. 循环执行
在Test Case的编辑执行窗口,我们可以勾选“Loop TestCase continuously”选项,这样可以让该请求一直发送(这是一种单线程,多次循环的运行方式),与我们在Java代码中执行For循环是一样的。
9. 进行负载测试
除了正常的功能性测试外,我们还可以在SoapUI中利用多线程方式执行负载测试。只需要在TestCase下面,新建一个Load Test,并设置好相应的线程数,暂停时间,运行总时间等参数即可。
10. 测试HTTP协议接口
如果我们需要测试标准的HTTP协议,则可以直接在一个测试用例或者测试步骤中点击右键“Add Step”菜单下选择子菜单“HTTP Request”,即可完成对一个HTTP协议请求的添加和断言。
当完成请求的处理后,我们便可以对其进行测试,正常添加断言,正常设置选项即可:
思考练习
(1) SoapUI工具的用法还有很多,但是基本原理都是一样的,请读者朋友自行学习。
(2) 使用SoapUI还是使用纯Java代码完成测试更高效,试说明理由。
(3) 自学使用网页解析工具JSoup或HtmlUnit,并阐述其工作原理与应用。