使用 SoapUI 测试 REST
介绍

SoapUI 是一款应用非常广泛的 SOAP 和 REST API 自动化测试工具,凭借其易于使用的图形界面,测试人员可以轻松验证基于 REST 和 SOAP 的 Web 服务,非常适合复杂的测试场景。
准备一些接口
我在 Swagger 上已经准备了一些接口了,这些接口都是后面要上线的,所以我要使用 SoapUI 对接口进行测试。

对于 /pet/findByStatus
这个接口,我为它增加一个 Query 参数,也就是这个接口是一个带 Query 参数的 GET 请求。

SoapUI 新建一个接口
我们要使用 SoapUI 新建一个 REST Project,在 SoapUI 中,Project你可以理解为一个 TestSuit,也就是测试套件,测试套件中拥有很多测试用例(TestCase)。


SoapUI 接口信息补充
我们还需要补充:
- endpoint: 站点
- source: 资源
- method: 请求方法
- parameters: 实际请求参数
发送请求
最后发起请求,我们可以看到,接口返回的 JSON 数据,被展示在 SoapUI 的右侧中,并且已经有一个格式展示给我们看了。

Apifox 自动化测试
Apifox 是一个国产的非常出色的 API 工具,它提供了一些非常牛的功能:
- 自动化测试
- 自动生成接口文档
- 调试模式
- Mock
- 断言
- 完全免费
今天来讲讲它的 自动化测试 功能。
期望目标
我们想测试项目中所有的接口,返回的状态码都是 200,因为返回 200 说明接口访问成功。
准备接口
我在后端已经起了服务,并编写了这三个接口:
- /api/test/list-first
- /api/test/list-second
- /api/test/list-thrid
我们预期是这三个接口,都要返回 状态码 200 才行。
Apifox 创建接口
接口基本信息
我们需要填写接口的名称、URL、请求方法。

后置脚本添加断言
接着我们使用 Apifox 的可视化断言功能,这真的太牛了!

我们是要判断返回的 code 为 200,我们可以使用 JSON Path 的方式。

这么写的话,在发送请求后响应到达时,会做一个断言,判断 code 是否为200。
second、third
这两个接口的操作也跟 one 一致~
单个接口发送
我们在自动化测试之前,可以先试一下单次发送,可以看到,校验成功,但是单次是不严谨的,还是需要 自动化测试。

自动化测试
新建 测试用例,填入 用例名称、目录。

接着把三个接口导入进来。

我们设置循环 200 次,也就是总共发 600 个请求,次数越多,约可以测试不稳定性。

运行 自动化测试
最后点击 运行 按钮,可以看到运行的过程、结果,可以看到一些参数:
- 进度:百分比
- 成功:数量
- 失败:数量

Apifox
它是更先进的 API 设计/开发/测试工具
- 集成了API 文档、API 调试、API Mock、API 自动化测试 API 一体化协作平台
- 拥有更先进的 API 设计/开发/测试工具
- Apifox = Postman + Swagger + Mock + JMeter
欢迎体验一下,完全免费的哦:在线使用 Apifox