postman做接口的自动化测试case
- 记录一次自动化测试的工作,以及该过程中对于测试设计的一些思考。
postman工具
- 简单介绍,这个工具无论是开发还是测试,使用来调试接口的时候非常便捷,具体的介绍文章后面附上相关较好的资源,通过平时日常的一个使用情况,简单记录该工具在用来做自动化测试的时候的一个示例。
测试文档编写与评审
- 需求:依据提供给第三方平台的对接接口文档,设计与编写测试用例,以便快速验证接口的功能。此外,接口测试更多应集中在验证接口生效、接口对请求的参数的处理能力。
- 设计用例:设计用例依据项目模块划分/以及为每个接口同组的请求(主要是get/post/put/patch/delete等五种类型请求方法),测试目的、测试设置、请求以及方法、请求参数都可以作为测试接口的输入,而接口返回响应则为预期结果,实际编写test用例时则可以依此输出作为判断结果。
- 在设计过程中选择了如下形式对测试文档做出编辑,这里实际编写过程中仅仅对请求的方法、测试输入做了一个变量设置。
用例名称 | 接口名称 | 测试目的 | 测试设置 | 请求URL | 请求方法 | 测试输入 | 测试输出 |
---|---|---|---|---|---|---|---|
sys_getProject_post_valid_01 | 获取项目列表 | post请求--获取项目列表 | HTTP权限认证,账号:admin,密码123456 | https://localhost:8888/XXX/v1/getProject | post | {"projectId":1} | {"error_code"=200,"result"={XXXX}} |
sys_getProject_get_invalid_01 | 获取项目列表 | get请求--无法获取项目列表 | HTTP权限认证,账号:admin,密码123456 | https://localhost:8888/XXX/v1/getProject | get | {"projectId":1} | {"error_code"=200,"msg"="Method not allow"} |
sys_getProject_get_invalid_02 | 获取项目列表 | 空参数--无法获取项目列表 | HTTP权限认证,账号:admin,密码123456 | https://localhost:8888/XXX/v1/getProject | post | {} | {"error_code"=200,"msg"="Method not allow"} |
... | ... | ... | ... | ... | ... | ... | ... |
接口测试代码的编写
-
结构编排简单介绍:
-
创建collection,将配置等信息在collection中进行配置,对于后续子文件等均可直接引用生效,子文件夹建立模块信息,存放相应的接口信息。这里也可以在environment中配置变量信息等,一般我只在所有项目通用的配置才考虑放入environment中。
-
这里开始录入一个接口:注意依据项目中具体采用的认证方式配置Cookie或者Token等信息,body中写入传入的参数信息。
-
依据返回的响应,编写测试用例如下:
var jsonData = pm.response.json(); var projectId = pm.collectionVariables.get("projectId"); pm.test("1错误码匹配", function () { pm.expect(jsonData.error_code).to.eql(0); }); pm.test("2服务器项目匹配", function () { var dataObject = jsonData.result.list[0]; var id =Object.entries(dataObject)[0]["projectId"]; pm.expect(id == projectId); });
-
-
运行测试用例结果如下,其中当用例都全部编码完成后,可以在collection级别中自定义 勾选用例用于执行:
结论
-
接口自动化的优势,一是对于频繁提测的项目来说,使用接口自动化测试可以避免”点点点“的繁杂工作;二是可依据接口文档修改,有针对性的新增测试用例,便于维护;
-
对于工具的介绍,这篇博客有专栏介绍了,剩下的问题也可以在官网上得到解答:https://blog.csdn.net/zhuyunier/article/details/87604371