- VisualStudio2022插件的安装及使用-编程手把手系列文章
- pprof-在现网场景怎么用
- C#实现的下拉多选框,下拉多选树,多级节点
- 【学习笔记】基础数据结构:猫树
在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);
这种情况,就是利用环境变量做中转,在获取到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"
}
很多接口为了防止,请求数据被篡改,都要求在请求参数中添加签名参数.这些签名值都有一定算法处理.这个时候也可用通过环境变量,结合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());
某些情况下,要批量跑一些数据,也可使用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());
PostMan这个接口测试工具,提供常规的接口测试,还提供接口mock,支持代理抓包,功能还是蛮多的.在数据控制方面,提供后置和前置脚本,可编程性也强.接口可以直接转换成不同语言的代码,这个也很实用. 平时记录一些开发过程的小知识点,欢迎关注我的公众号[小院不小],也欢迎添加QQ:464884492直接交流 闲暇之余,做了一款有趣耐玩的消除类微信小游戏地心侠士,有兴趣可到微信搜索地心侠士玩玩,感谢支持 。
最后此篇关于PostMan接口测试实用小点的文章就讲到这里了,如果你想了解更多关于PostMan接口测试实用小点的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我在 postman 的预请求脚本中有以下代码——它给了我当前日期。我宁愿想要昨天的日期(current_timestamp - 1 天)。 var current_timestamp = new D
Postman Pro 可以向多个 Free Postman 用户共享无限制的请求吗? 我正在考虑设置一个 Pro 帐户作为中央请求收集存储,然后 Free Postman 用户只需克隆/读取它即可。
有可能在 postman 内部使用数组变量吗? 例如在请求正文中: { "myData" : {{arrayVariable}} } 在数据文件中: { "arrayVariable"
我有一个 postman 集合,我想将一组三个 API 调用链接在一起,并使用 runner 函数提供数据文件。可以说他们是:/prepareUpload/upload/confirmUpload并且
如何从另一个 GET API 的预请求脚本选项卡调用 POST API 请求(登录 API 具有带用户名和密码字段的请求正文),该 API 在其请求 url 中使用来自上述 API 正文的 token
当前,可以从global和environment范围以及预请求脚本中的通用variable设置和获取变量。但是,文档尚不清楚,是否可以通过编程方式设置collection作用域变量。 例如 pm.en
我正在使用 postman (v7.7.3),当我上传文件以将正文作为表单数据发送时,我收到了以下警告。 “此文件不在您的工作目录中。与您共享此请求的队友将无法使用此文件。为了使协作更容易,您可以在“
standalone Postman client在哪里?对于 Windows,离线工作时保存集合吗? 为了澄清,我想找到禁用在线同步时 Postman 默认保存集合文件的位置。我不试图 export
我之前使用过 Postman Chrome 扩展以及 Postman Interceptor Extension在 Postman 中捕获 Chrome 发出的 HTTP 请求。 但是,现在 Post
在 Postman 中单击保存的请求后,我得到的 View 如下所示: 要查看正文,我需要单击“正文”。 这不是什么大问题,除非我要处理 20 个左右的请求,并在每个请求的正文中查找特定的内容,如果能
我正在查看 Postman 快捷方式面板,但没有看到在请求正文中注释部分代码的快捷方式,复制和粘贴非常烦人 发表评论。 最佳答案 根据快捷方式面板Ctrl +/打开快捷方式面板但我不小心在请求正文中这
是否可以在我的 postman 测试用例中访问响应大小的值? 虽然我能够看到响应大小以及状态代码和响应时间(我可以在使用responseCode.code和responseTime的测试用例中使用这两
我正在尝试使用 Windows native Postman 应用程序 (V4.8.0) 将简单的 Get 命令发布到我在本地主机上运行的服务,但它们失败了。 postman 控制台显示 Error:
Newman 帮助指定集合、环境和全局变量可以作为路径或 URL 传递。我可以看到如何从 Postman 获取收藏 URL(通过转到“共享”>“收藏链接”)。 如何在 Postman 中获取 Envi
我们正在扩展到一个大型微服务构建,并通过 postman 完成更多测试(现场验证、错误测试等)。好奇...您的团队如何组织大量 API 的集合? (按 API、按测试类型、按发布等)从一个团队传递到另
Postman 对我来说是一个了不起的工具,但我对使用变量有一些疑问。在我的收藏中,我有 4 个选项卡/请求。 首先是获取用于其他三个的 token ( token 在 15 分钟后过期,因此我必须经
由于所有 Postman 集合基本上都是 .json 文件,因此很难通过代码审查工具审查在 Postman 中编写的代码。 目前我继续在GitHub上查看这样的.json文件,但是不太方便。 例如,这
我正在尝试使用 Newman 自动化 postman 测试.授权有问题。授权 bearer token 发生变化并且是动态的。有谁知道如何自动执行此操作? 最佳答案 Postman 有变量这个很好的特
Postman 允许使用 pre-defined variables 生成随机虚拟数据,例如,这个将被随机公司名称替换: {{$randomCompanyName}} 多次使用预定义变量会在每个请
我正在使用一个开放的 API。 但我只使用了 API 提供的响应中的一小部分数据。当我使用具有不同参数的 API 进行测试以查看响应时。 我不想每次发送请求时都看到整个 API 响应,我只想看到我感兴
我是一名优秀的程序员,十分优秀!