PostMan接口测试实用小点

1. 接口测试变量存取操作

在Postman中有很多地方可以存储一些变量,这里只介绍经常使用的环境变量.变量设置后,在UI界面可以通过{{变量名}}获取到对应值.

在环境变量中配置变量url = https://ct.ctrip.com

在请求地址栏配置 {{url}}/SwitchAPI/Order/Ticket/

最终发起地址为https://ct.ctrip.com/SwitchAPI/Order/Ticket/

在环境变量中配置变量

appkey=test_地心侠士_key
appsecurity=test_地心侠士_sec

请求正文(Body-> raw)配置如下JSON

{
"appSecurity":"{{appsecurity}}",
"appKey":"{{appkey}}"
}

最终发起时,请求正文会替换成如下内容

{
"appSecurity":"test_地心侠士_key",
"appKey":"test_地心侠士_sec"
}

所以,我们可以通过改变环境变量值,来修改请求相关的内容,下边一段代码是获取当前环境变量值,并拼接一个字母A,在重新放回环境变量中

// ahutor 地心侠士
var env_appkey = pm.variables.get("appsecurity");
env_appkey = env_appkey +"A";
pm.environment.set("appsecurity", env_appkey);

2 常用接口测试

2.1 先获取Ticket再获取业务数据

这种情况,就是利用环境变量做中转,在获取到Ticket以后,解析响应数据,并把最新的token存回环境变量中.

A. Ticket请求正文配置

{
"appSecurity":"{{appsecurity}}",
"appKey":"{{appkey}}"
}

A. Ticket请求响应信息

{
"Status": {
"Success": true,
"ErrorCode": 0,
"Message": "调用成功。"
},
"Ticket": "6629ebc42653b0e43449b962"
}

A. PostMan Tests脚本区域直接编写js脚本,存储Ticket响应信息

// ahutor 地心侠士
var jsonData = pm.response.json();
pm.environment.set("Ticket", jsonData.Ticket);

B. 业务接口请求正文配置,这里会使用上一个接口的Ticket

{
"Auth": {
"AppKey": "{{appkey}}",
"Ticket": "{{Ticket}}"
},
"OrderID": "31015905161",
"JourneyNo":"",
"SearchType": "1"
}

2.2 业务请求动态添加签名

很多接口为了防止,请求数据被篡改,都要求在请求参数中添加签名参数.这些签名值都有一定算法处理.这个时候也可用通过环境变量,结合Pre-request Script实现

需要添加签名正文配置

{
"approveScenario": "",
"corpId": "地心侠士",
"orderId": "312056399256",
"orderStatus": "Paid",
"productType": "HotelMember",
"sign": "{{sign}}"
}

请求发起前脚本,修改环境变量值

// ahutor 地心侠士 获取请求正文值,注意这里是原始值
let reqData =JSON.parse( pm.request.body.raw);
let corpId= reqData.corpId
let orderId=reqData.orderId
let orderStatus=reqData.orderStatus
let productType =reqData.productType
// 一个有意思小游戏,地心侠士,欢迎微信搜索试玩
let secret = pm.environment.get("secret");
let str ='corpId='+corpId+'&orderId='+orderId+'&orderStatus='+orderStatus+'&productType='+productType+'&secret='+secret
let SHA1 = CryptoJS.SHA1(str).toString(CryptoJS.enc.Hex);
// 这里使用了集合变量和环境变量一样
pm.collectionVariables.set("sign", SHA1.toUpperCase());

2.3 通过Runer实现接口批量调用

某些情况下,要批量跑一些数据,也可使用postman处理,讲数据文件这里成csv文件,然后直接再Runner中上传,然后从接口集合中拉去一个集合过来,选取一个接口,就可以实现通过数据驱动接口调用.

数据文件

序号 订单号 订单状态
1 31295399256 Paid
2 31295399257 Paid
3 31295399258 Dealt

请求正文

注意{{订单号}} 和 {{订单状态}} 和数据文件列头一一对应

{
"approveScenario": "",
"corpId": "地心侠士",
"orderId": "{{订单号}}",
"orderStatus": "{{订单状态}}",
"productType": "HotelMember",
"refundType": null,
"sign": "{{sign}}",
"statusIDs": null
}

请求前置脚本(Pre-request Script),通过pm.iterationData获取数据行数据

// ahutor 地心侠士
let reqData =JSON.parse( pm.request.body.raw);
let corpId= reqData.corpId
let orderId=pm.iterationData.get("订单号")
let orderStatus=pm.iterationData.get("订单状态")
let productType =reqData.productType
let secret = pm.environment.get("secret");
let str ='corpId='+corpId+'&orderId='+orderId+'&orderStatus='+orderStatus+'&productType='+productType+'&secret='+secret
let SHA1 = CryptoJS.SHA1(str).toString(CryptoJS.enc.Hex);
pm.collectionVariables.set("sign", SHA1.toUpperCase());

3 总结

PostMan这个接口测试工具,提供常规的接口测试,还提供接口mock,支持代理抓包,功能还是蛮多的.在数据控制方面,提供后置和前置脚本,可编程性也强.接口可以直接转换成不同语言的代码,这个也很实用. 平时记录一些开发过程的小知识点,欢迎关注我的公众号[小院不小],也欢迎添加QQ:464884492直接交流



闲暇之余,做了一款有趣耐玩的消除类微信小游戏地心侠士,有兴趣可到微信搜索地心侠士玩玩,感谢支持

PostMan接口测试实用小点的更多相关文章

  1. PostMan接口测试(很全面的接口测试教程)

    一:理论部分 1. 前言 在前后端分离开发时,后端工作人员完成系统接口开发后,需要与前端人员对接,测试调试接口,验证接口的正确性可用性.而这要求前端开发进度和后端进度保持基本一致,任何一方的进度跟不上 ...

  2. Maven在Eclipse中的实用小技巧

    前言     我们在开发的工程中很多都是Maven项目,这样更加便于我们jar包的管理.而我们一般使用的IDE都是Eclipse,由于我们在日常的开发过程中会经常要用到一些Maven的操作,所以我今天 ...

  3. ANDROID开发实用小工具

    分享一些 Android开发中的实用小工具,你有发现好工具吗? 来这里分享一下呗 一.find bugs 静态检查工具 http://findbugs.sourceforge.net/ FindBug ...

  4. PHP 常用函数库和一些实用小技巧

    PHP 常用函数库和一些实用小技巧 作者: 字体:[增加 减小] 类型:转载   包括文件读取函式,文件写入函式,静态页面生成函式,目录删除函式等   文件读取函式 //文件读取函式 function ...

  5. Postman接口测试初探

    Postman接口测试 有两种安装方式: 1)Chrome插件(https://www.getpostman.com/).安装完成后,它会在chrome的应用中,如下图 2)通过下载Native ap ...

  6. postman接口测试工具3.0版本的坑

    今天用postman接口测试工具3.0版本被坑,找了半天,原来postman这个新版本有个坑啊 下面的get参数,第一行不管你填不填,都是无效的,可能是postman的一个bug吧

  7. Vim实用小技巧

    Vim实用小技巧 一些网络上质量较高的Vim资料 从我07年接触Vim以来,已经过去了8个年头,期间看过很多的Vim文章,我自己觉得非常不错,而且创作时间也比较近的文章有如下这些. Vim入门 目前为 ...

  8. #postman接口测试系列:基本操作总结

    最近项目需要接口测试,所以选择了不少工具对比,最终决定使用postman进行接口测试,这个工具目前使用比较简单,但是有点还是比较多的,如下: 方便切换不同的环境进行接口测试工作,而不用修改变量或代码 ...

  9. [经验共享] MapGIS实用小功能图解——由excel文件导成MapGIS点文件

    项目小组的几个成员都是学地下水和环境的,对于GIS懂得不是很多,于是把一些我们经常用到的mapgis实用小功能做成帮助文档,方便大家使用,发布共享! 1.整理好EXCEL文件(注意X,Y坐标的正确性( ...

  10. postman(九):postman接口测试脚本集成到jenkins

    本篇的目的是实现使用jenkins远程执行postman接口测试脚本 准备工作:一台linux服务器(可以用虚拟机搭建一个),linux服务器上安装好node.js.newman,部署好jenkins ...

随机推荐

  1. 记录--通过手写,分析async await核心原理

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 async await 语法是 ES7出现的,是基于ES6的 promise和generator实现的 generator函数 在之 ...

  2. uniapp 微信对接地图的三种操作

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 1.uni.getLocation 获取当前经维度 先上代码 let that = this // 获取用户是否开启 授权获取当前的地理位 ...

  3. Vue中点击按钮回到顶部(滚动效果)

    页面滚动到一定位置时,出现回到顶部按钮 代码如下HTML <div class="footer"> <div class="gotop" v- ...

  4. vue初学核心基础02

    8.v-bind补充 8.1v-bind绑定类名 v-bind指令给"任意标签"的"任意属性"绑定数据 对于大部分的属性而言我们只需要直接赋值即可, 例如:va ...

  5. 以最大速度将数据迁移至AWS S3存储

    数据上云,已经成为企业数据管理发展的必然趋势. 对于企业而言,数据上云"常态化"的趋势,无疑是一个巨大的技术红利.而数据规模爆发式增长的今天,移动和访问云端数据却成为困扰企业的一大 ...

  6. FCOSv2:原作的扩展版本,小修小改,性能高达50.4AP | IEEE T-PAMI 2020

    本文是对FCOS的小修小改,最终性能达到了50.4AP,可谓相当强劲了,大家在工程上可以参考其中的改进以及提升方法   来源:晓飞的算法工程笔记 公众号 论文: FCOS: A Simple and ...

  7. Games101-作业5

    说明 本次作业主要实现Whitted-光线追踪,作业框架只需要我们编写两个部分,一个是求解观测光线--从摄像机到每个像素的向量:第二个是判断射线与三角形的交点. 求解观测光线 需要对每个像素求解在实际 ...

  8. 【已解决】启动Hmaster失败 master.HMaster: Unhandled exception. Starting shutdown.

  9. 使用Apache POI和Jsoup将Word文档转换为HTML

    简介 在现代办公环境中,Word文档和HTML页面都是常见的信息表达方式.有时,我们需要将Word文档转换为HTML格式,以便在网页上展示或进行进一步的处理.本文将介绍如何使用Apache POI库和 ...

  10. Python调用动态库,获取BSTR字符串

    今天客户在用Python调用我们的动态库的时候,遇到一个问题,调用动态库中的函数,函数返回的是BSTR字符串,但是客户接收到的是一个8位长度的数字. 动态库函数原型:EXTERN_C BSTR ELO ...