写在前面:postman一定要注意每一步操作都要做好保存,不然很容易出错!
如何定位bug是前端还是后端
1.先看看是不是界面问题,界面问题基本都是前端问题
2.然后看看接口,接口请求有问题也是前端问题
3.如果接口请求没问题,再看看接口的返回结果,返回结果有问题就是后端问题
4.接口返回没有问题,再去检查一下数据库,数据库中的结果对不上就是后端问题
5.数据库和接口返回都没问题,但是页面显示还是报错那还是前端问题
get和postman请求区别
get是获取数据的,post是发送数据的
get请求写在params上,post请求写在body体上
get请求参数在请求地址上能看到,但是post请求看不到====所以get请求不安全地址暴露,post请求安全
get请求有长度限制,post请求没有长度限制
环境变量和全局变量
1.测试环境
2.预发布环境
3.生产环境
环境变量-----在测试过程中,需要在不同环境测试,所以有些数据要环境隔离,用来区分在不同环境中进行接口测试
如何使用环境变量---只针对的具体的环境
1、设置环境变量:设置变量名字和对应的值
2、找到你要使用这个变量的地方,{{变量名}}
3、选择对应的环境--才可以使用(不选择不生效)
全局变量---对所有的接口都生效
使用范围更大,不需要选择环境,所有的接口都可以使用
1、设置全局变量:设置变量名字和对应的值
2、找到你要使用这个变量的地方,{{变量名}}
上下游传参
前提:一定要先保存环境变量中环境变量和全局变量
例:登录QQ时,需要输入密码,在接口中登录,会需要输入对应的md5码,每一次登录时会更新md5码,如果要打开qq空间接口,就需要这个更新的md5码,我们就需要设置变量取到这个更新的md5码,非常方便这个md5码也就叫上游接口参数
取上游接口返回参数---设置环境变量
把返回结果中的值取到,然后放到下一个接口中使用
1、取到接口的返回结果 2、取到返回结果中token的值 3、把token的值设置成环境变量(token可以赋与为变量名,但是不改名字会好记一点)
此时我们就需要在能够接收到上游接口参数值的test中写脚本 如下:
//获取接口的返回结果 var jsonData = pm.response.json()
// 把返回结果中的token取到然后设置成环境变量 pm.environment.set("zz12",jsonData.data);----(第一个是变量名,对应的值,这个值是可以随着返回结果而变化的,不是写死的)
写完脚本就会在对应的变量中看到下图所示:
断言
判断接口的返回结果和实际结果是不是一致的,预期结果和实际结果比较
1、如果预期结果等于实际结果===pass 绿色的
2、如果预期结果不等于实际结果===fail 红色的
状态码断言
常见的状态码:
1、200:接口请求成功,这个接口是通的。和返回结果中的200无关
2、404:请求地址错误,找不到这个地址
3、500:服务器错误 连不上服务器
断言也需要在test中写下如下脚本
批量添加断言
一下子判断多个接口
在父级的test写断言脚本,全都可以生效
运行后会显示通过接口的,和通过失败的
postman json断言
json断言就是去判断响应结果中的值是不是正确的。登录接口 message:success ;
预期结果:message的值是success
实际结果:取到这个值 找到message的值
预期结果和实际比较,接口返回的内容是不是正确的
脚本如下:
(此处中文可以自己修改自己想要的)
pm.test("判断message是否为cuccess", function () {
var jsonData = pm.response.json();(这段意思为取值)
pm.expect(jsonData.message).to.eql("SUCCESS");
}); (实际的值) (预期的值)