postman-newman+jekins持续集成/断言对象/变量作用域

newman的安装就不说了主要说怎么使用

  • newman执行postman collections:
    • 第1步,导出collections的json文件,collections对应的环境变量文件,collections对应的数据驱动文件
    • 第2步,  在命令行窗口,cd到collections的json文件所在目录,执行newman命令运行测试集
  • 报告样式---html文档
  • 报告样式---命令行
  • 具体命令:
    • 输出html格式的报告
      newman run ddt-login-api.postman_collection.json -d Ddt.csv -r cli,html --reporter-json-export tesidingreport.html
      #ddt-login-api.postman_collection.json 
      #Ddt.csv. -d
      #cli,html -r
      #--reporter-json-export 文件名.html
      #-e 这里的例子没有用到环境变量,环境变量文件格式一般也用json 比如 -e environment_logins.json
    • 输出json格式的报告
    • #把命令行里的html换成json就可以了,其他不变
      newman run ddt-login-api.postman_collection.json -d Ddt.csv -r cli,json --reporter-json-export tesidingreport.html
      #ddt-login-api.postman_collection.json 
      #Ddt.csv. -d
      #cli,json -r
      #--reporter-json-export 文件名.json
      #-e 这里的例子没有用到环境变量,环境变量文件格式一般也用json 比如 -e environment_logins.json

postman断言

​​​​​​​在 postman 中封装了我们常见的断言(Tests),当然 Tests 除了可以作为断言,还可以当做后置处理器,经常应用于:

【1】获取当前接口的响应,传递给下一个接口
【2】控制多个接口间的执行顺序。

断言对象有哪些?如何使用?

  • ​​​​​​​1】校验接口响应的状态码,常见的有 200、404、500当然也包括前面鉴权学到的 401 等等。
    • pm.test("Status code is 200", function () {
          pm.response.to.have.status(200);
      });
  • 2】检查响应信息中是否包含某些指定的字符串;
    • pm.test("Body matches string", function () {
          pm.expect(pm.response.text()).to.include("string_you_want_to_search");
      });
  • ​​​​​​​3】检查从JSON响应中获取到某个字段,判断其是否与预期字段一致;
    • pm.test("Your test name", function () {
          var jsonData = pm.response.json();
          pm.expect(jsonData.value).to.eql(100);
      });
  • ​​​​​​​4】检查实际获取的响应体(即 Body 信息)与预期结果的响应体是否一致;
    • pm.test("Body is correct", function () {
          pm.response.to.have.body("response_body_string");
      });
  • ​​​​​​​5】检查响应中的头域信息(Headers)是否与预期一致。
    • pm.test("Content-Type is present", function () {
          pm.response.to.have.header("Content-Type");
      });
  • ​​​​​​​6】判断实际响应时间是否与低于预期时间。
    • pm.test("Response time is less than 200ms", function () {
          pm.expect(pm.response.responseTime).to.be.below(200);
      });
  • ​​​​​​​7】检查响应码是否与预期集合中的某个值一致。
    • pm.test("Successful POST request", function () {
          pm.expect(pm.response.code).to.be.oneOf([201,202]);
      });
  • 8】检查响应信息中是否包含某个预期值
    • pm.test("Status code name has string", function () {
          pm.response.to.have.status("Created");
      });
  • 9】转化XML格式的响应成JSON对象
    • var jsonObject = xml2Json(responseBody);

postman中变量作用域

  • global变量:作用域最广,在整个postman中都会生效
  • collection变量:在collection中设置,也只有在当前collection中才会生效
  • environment变量:只有选择了相应的environment来执行执行send,才会
  • environment中设置的变量值。这个场景类似于,在sit环境中测试或者在uat环境中测试,post可以用environment来管理两个测试环境及其相应的变量参数
  • data变量:这是引用外部文件,例如CSV或者json文件,用于参数化
  • local变量:由于postman支持同步协作,local变量是只在本地生效,不会同步。这个场景适用于,你在本地调试接口,你不想影响其他人调用接口的参数,就可以设置local变量值
  • 以上各种变量尽量不要同名,如果同名,postman会默认取global的变量值。
  • 以两个花括号引用:{{变量名}}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值