postman常用test语句

  • var data = JSON.parse(responseBody);---这个我没用过,先做个记录
    JSON.parse()方法,把json字符串转化为对象。parse()会进行json格式的检查是一个安全的函数。 如:检查json中某个数组元素的个数(这里检测programs的长度)
    var data = JSON.parse(responseBody);tests["program's lenght"] = data.programs.length === 5;
  • 1.设置环境变量 postman.setEnvironmentVariable("key", "value");//    postman.setEnvironmentVariable("orgName",jsonData.content.userInfo.orgName); 指定到某一个路径节点的key
  • 2.设置全局变量 postman.setGlobalVariable("key", "value");
  • 3.检查response body中是否包含某个string
  • tests["Body matches string"] =responseBody.has("string_you_want_to_search");
  • 4.检测JSON中的某个值是否等于预期的值,返回码
  • tests["returnNO=0000"] = jsonData.returnNo ==='0000';
  • 5.转换XML body为JSON对象 var jsonObject = xml2Json(responseBody);
  • 6.测试response Headers中的某个元素是否存在(如:Content-Type)
    tests["Content-Type is present"] = postman.getResponseHeader("Content-Type"); //getResponseHeader()方法会返回header的值;
  • 7.设置header里的数据为变量
  • var jsonData = JSON.parse(responseBody);
  • var data = postman.getResponseHeader("Authorization");pm.environment.set("Authorization",data);
  • 8.服务器状态码校验
  • tests["Status code is 200"] = responseCode.code === 200;
  • 9.设置超时时间,超过这个时间接口会报错
  • tests["Response time is less than 1500ms"] = responseTime < 1500;
  • 10.和上个接口比对结果--校验当前接口的返回是否和上个接口里取到的参数一致
  • //tests["比对结果"] = jsonData.content[1].schoolName === pm.environment.get("schoolName");//只要返回的节点下有这个变量值--推荐一个比较好用的查看json格式的网站:http://www.bejson.com/jsonviewernew/ 可以轻松查看层级和节点,效果是这样的:e4ca9e6c5f24e05363fe692dd4c6341bbae.jpg
    tests["比对结果"] = responseBody.has (pm.environment.get("schoolName"));  //只要返回body里有这个变量值
  • 11.校验接口返回是否有数据--我的程序设置的是如果当前没有数据,则只返回content[]
  • tests["获取第一个学生信息结果"] = jsonData.content.items[0];//所以这句断言可以校验,如果content里还有数据,则视为返回不为空
  • 12.两种返回校验,只要返回其中任何一个视为通过,否则报错
  • tests["returnNO=0000|9999"] = jsonData.returnNo ==='0000' || jsonData.returnNo ==='9999';  返回码
  • tests["returninfo=oh yeah,通过了|票券无法使用"] = responseBody.has("oh yeah,通过了")||responseBody.has("票券无法使用"); string
  • 13.//暂时常用的就这些,还有一个思路要记下,购买流程时记得把下单时产生的订单号设置为环境变量,存储起来,这样结算接口的时候使用这个变量来保证每次都是产生的新订单,结算可以成功!否则只能结算一次,下次再结算可能会提示支付失败,因为已经支付成功过了
  • 14.pm.globals.set("type",parseInt(4*Math.random())+1);//针对不同类型的课程类型
    设置一个1到4的随机整数,字段名是type,parselnt 是强制转换为整数
  • 15.postman 遇到unicode的返回时如何校验?如果后台代码是php的很可能会有这个问题,html或xml是unicode的格式的,转换成json又是中文的,为难的地方是使用var jsonObject = xml2Json(responseBody);这句话并没有用,没有校验到相应的中文返回;然后想了两个迂回的方法://postman.setEnvironmentVariable("message",jsonData.message);  先把unicode的返回字段设置为变量,这个变量值保存时会为中文(至少我这边是这样子的)
    //tests["任务状态"] = jsonData.message === pm.environment.get("message"); 然后拿这个message的值的你变量时保存的值对比,一致则为pass,但是这样有一个问题,因为变量的获取和对比都是一个返回里,肯定是每次都pass的,所以要结合code返回一起查看
  • 第二种:tests["任务状态"] = jsonData.message === '任务状态或者报名状态已变更' ---这个比较直观了,不需要设置环境变量,直接在正确的返回写死了,然后拿返回字段的key值去校验,但这个也有个地方需要优化,就是当你的返回码不同但是并不属于报错时,接口返回的key肯定也不一样,所以灵活点的方法就是加个if,如果返回300则对比下面这段话,如果返回其它的而对比其它相应的返回
     
  • b3248b556199cd9d683156efc6f99821cca.jpg

转载于:https://my.oschina.net/EvanDev/blog/2980173

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值