Postman
接口类别
- 外部接口:提供测试被测试系统和外部系统的接口。
- 内部接口:提供给内部系统的接口。
接口测试流程
-
拿到接口API文档,熟悉接口业务、接口地址、鉴权方式、入参、状态码等。
-
编写接口用例以及评审。
-
思路:
-
正例:接受正常的参数,并返成功返回数据。
-
反例:
- 鉴权反例:鉴权码错误、空、过期等。
- 参数反例:参数为空、参数类型异常、参数长度异常等。
- 错误码覆盖:
- 其他业务场景: 接口黑名单、调用次数限制、分页场景。
-
-
-
使用接口测试工具执行接口测试。
- postman+newman+jenkins实现持续集成,并输出测试报告用例并发送邮件。
使用
请求页面相关
body:
post请求信息。
- x-www-form-urlencoded: 只传键值对类型。
tests:
断言。
响应页面相关
body
pertty: 以不同的数据格式查看返回的数据。
raw: 以文本的方式查看返回的数据。
preview: 网页形式。
tests Result
断言结果。
get&post区别
-
get一般是获取数据,post一般是提交数据。
-
post比get更加安全。
-
本质区别是传参方式不同:
get是在地址栏以"?"的方式传参,多个参数用&间隔。
post是在body里以表单的形式传参。
问题及解决
-
多环境
动态选择测试接口的服务器。
创建多个环境变量。名字要相同,测试接口时要选择好对应环境,然后在url通过”{{}}“指定服务器域名即可。如下所示:
-
参数手动修改
每次测试接口都需要手动更改参数。
解决:使用内置函数进行自动变化或者自定义函数(pre-script内)
-
接口关联
测试多个接口时使用同个变量,使用全局变量可以简化赋值过程。
解决:
- json.pare方式
-
正则表达式
-
涉及增删改查时
会增加数据库数据量,让其形成业务闭环可以减少服务器的数据量。
常用方法
-
JSON.pare
将字符串转化为对象形式。
-
pm.globals.set("全局变量名字",变量)
将某一个变量设置为全局变量。(比如将鉴权码设置为全局变量)
断言
-
状态断言
一般只有一个。
-
业务断言
正例:
数据驱动
通过读取特定文件绑定数据,参数在通过{{}}引用即可。
csv
json
注意
-
遇到“{{}}”时断言会把其当成一个字符串。
可以通过
-
上传文件时需要将文件放到工作目录下,然后开放读取文件权限。
-
mock server
当前端需要测试接口后端还没有提供接口时可以通过模拟自定义接口。
cookies鉴权
原理
- 客户端首次访问服务器时,服务器会生成cookies信息并在响应头的set-cookies返回给客户端。
- 客户端在2-N次访问时就会在请求头带上cookies信息,从而实现鉴权。
cookies类别
-
会话cookies
保存在内存中,浏览器窗口关闭就不存在。
-
持久cookies
保存在硬盘中,一定时间后清除。