定制开发Postman接口测试实战

实战

目录

一、Postman定制开发的接口关联

方式一 JSON提取器

//定制开发打印用于调试console.log(responseBody);//定制开发把返回的字符串转换成JSON对象。var baili = JSON.parse(responseBody);//取值console.log(baili.access_token);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

方式二 定制开发正则表达式提取器

//定制开发通过正则匹配值,match匹配var res= responseBody.match(new RegExp('"token":"(.*?)"'));console.log(res[1]);//设置成全局变量pm.globals.set("token", datas[1]);
  • 1
  • 2
  • 3
  • 4
  • 5

二、Postman的动态参数

方式一 系统自带的动态参数

{{$timestamp}} //动态时间戳{{$randomInt}} //动态0-1000的整形{{$guid}} //动态的guid字符串
  • 1
  • 2
  • 3

方式二 自定义的动态参数

//自定义动态参数生产随机数var times = Date.now();pm.globals.set("times", times);//定时五秒const sleep = (milliseconds) => {    const start = Date.now();    while (Date.now() <= start + milliseconds) {    }};sleep(5000);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

三、Postman的

pm.test("Status code is 200", function () {    pm.response.to.have.status(200);});pm.test("Body matches string", function () {    pm.expect(pm.response.text()).to.include("string_you_want_to_search");});pm.test("Your test name", function () {    var jsonData = pm.response.json();    pm.expect(jsonData.value).to.eql(100);});pm.test("Body is correct", function () {    pm.response.to.have.body("response_body_string");});pm.test("Content-Type is present", function () {    pm.response.to.have.header("Content-Type");});pm.test("Response time is less than 200ms", function () {    pm.expect(pm.response.responseTime).to.be.below(200);});pm.test("Successful POST request", function () {    pm.expect(pm.response.code).to.be.oneOf([201, 202]);});pm.test("Status code name has string", function () {    pm.response.to.have.status("Created");});// ps:  1.在断言中不能够使用{{}}的方式取全局变量。//      2.一般通过:pm.globals.get("times") 取全局变量的值
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

四、Postman处理加解密

//Base64位加密//把需要加密的值转换成utf-8的编码格式3var us = CryptoJS.enc.Utf8.parse("admin");var pw = CryptoJS.enc.Utf8.parse("123");//对转换后的值做Base64加密var bs64_us = CryptoJS.enc.Base64.stringify(us);var bs64_pw = CryptoJS.enc.Base64.stringify(pw);//设置为全局变量pm.globals.set("bs64_us", bs64_us.toString().toUpperCase());pm.globals.set("bs64_pw", bs64_pw.toString().toUpperCase());//Base64位解密var intermediate = CryptoJS.enc.Base64.parse(responseBody);var base64Content = intermediate.toString(CryptoJS.enc.Utf8);//对解密后的数据进⾏提取json部分var jsonValue = base64Content.substring(base64Content.indexOf("{"), base64Content.lastIndexOf("}") + 1);console.log(jsonValue);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

五、Postman持续集成

# 1.安装Node.js# 2.安装newmannpm install -g newman# 3.导出postman的脚本并执行 导出:用例,环境,全局变量。newman run "e:ewmans\yongli.json" -e "e:ewmans\huanjing.json" -g "e:ewmans\quanju.json" -r cli,html,json,junit --reporter-html-export "e:ewmans\report.html"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

六、Postman Mock测试

在前后端开发过程中,需求过来,但是后端在开发的进程中,这时候前端想调用接口无法实现,因此需要用模拟服务器模拟出所要开发接口的属性(包括返回值,请求参数等),如果每个接口都要等后端开发完成再进行测试会很浪费时间,因此使用模拟接口来测试前端代码的功能,极大的缩短了等待时间,到后期后端全部开发出来接口再配合联调测试即可。
  • 1
网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发