PostMan使用小结

18 篇文章 0 订阅
5 篇文章 0 订阅

PostMan 方便了开发和测试进行接口测试,这里总结几个常见的使用方法。

环境变量分组

分组
每组包含多个变量和值
可以看到PostMan是支持变量分组的。这样可以开发、测试、生产环境的变量个分一个组,各组中都会用到相同的参数就可以放到全局变量里。

举个栗子
测试的接口有get也有post,都是restful的接口。如下一个post接口的body参数:
接口地址:http://192.168.1.1/sendPDF

{
"systemId":"bb01",
"curTime":"1231231233",
"sign":"12312312313",
"fileInfoList":[
{
"fileId":"PostManTest001",
"creatorId":"li001",
"fileType":"002",
"fileName":"PostManTest001.pdf",
"fileData":"JVBERi0xLjMKJf8KMSAwIG9iago8PCAvVGl0bGUgKENoYW5nZSB0aGUgTXlTUUwgVGVtcG9yYXJ5IEZpbGVzIERpcmVjdG9yeSkKL0NyZWF0b3IgKFByYXduIDEuMC4wKQovUHJvZHVjZXIgKFByYXduIDEuMC4wKQovQ3JlYXRpb25EYXRlIChEOjIwMTUxMDMwMTU1MzI0KzAxJzAwJykKL01vZERhdGUgKEQ6MjAxNTEwMzAxNTUzMjQrMDEnMDAnKQo...",
}]
}
  • 很明显这是一个发送PDF文件的接口。其中systemId不仅在这个接口,也出现在其他多个接口。在一次连续请求时,这个参数是要相同的,表明访问的系统id。将这个systemId的值用变量代替,可以在systemId变动时,不用每个接口的修改这个值。PostMan在参数使用变量的方法是双括号包裹变量名,比如
{{systemid}}
  • 接口地址不同开发环境使用不同的IP,则可以用把接口地址加入变量:
http://{{host}}/sendPDF
  • curTime参数需要传时间戳,则可以使用PostMan内置的时间戳变量{{$timestamp}},但PostMan里的时间戳不是以毫秒计的,所以可以在后面加000来补全。
  • fileData要传一个文档的base64字符串。文档再小,字符串其实都很大。如果直接复制到body里,PostMan的输入框在滚动时会非常慢,甚至卡死。所以把这种大数据量的值放到变量里是再好不过了。
  • fileId是不可以重复,我们希望每次请求,fileId都会变化与之前不同。一种做法就是把时间戳或者随机数加进去。但是时间戳和随机数都是比较随机的,如果需要有顺序的自增的话,可以使用一个fileNum变量,然后在pre-request-Script里自增这个变量:
var docNum = postman.getGlobalVariable("docNum");
    docNum++;
    postman.setGlobalVariable("docNum", docNum);

注意:这里的使用的语法算是Older style of writing Postman tests,可以使用编辑框右边的snippets获取最新的语法风格。

  • sign参数传的是前一步getToken接口获取到的token值。getToken接口的返回值如下:
{
    "returnCode": "001",
    "token": "6e19d34c7f104452bc02e1ed617cfb44"
}

这样可以在getToken返回数据后,在Tests环节做个判断:

var jsonData = pm.response.json();
if(jsonData.returnCode == '001'){
    pm.globals.set("token", jsonData.token);
}

注意事项

  • 当返回结果数据量过大,建议使用preview显示返回的结果。否则可能导致PostMan卡顿或卡死。
    数据量大用preview

关于PostMan

众所周知,PostMan有两个版本。一个是插件版,就是chrome浏览器的插件。我这里用的桌面版。其实桌面版也是使用chrome V8引擎的。桌面版是基于Electron这个框架开发的。而Electron是一个用html和javascrpt开发桌面应用的项目。Electron提供了很好的跨平台、可移植、热更新和快速开发等特性,是非常好的一款桌面应用开发框架。很多出名的桌面工具是基于他,如Atom,VSCode等等。Electron项目是由GitHub的一位中国开发大神zcbenz主导的。具体可以参考他在知乎上的回答
内存占用大

在使用PostMan的过程中会发现,占用的系统内存很大。这可能是Electron项目的通病,用过Atom或者VSCode就知道,这些Editor内存的占用和NotePad++根本不是一个量级的,跟Eclipse这样的IDE有的一拼。不过可能国外开发者的PC配置普遍比较高,内存的优化看来一直不是重点。。。
所以,我给出的建议就是尽量使用完就关闭PostMan,反正所有变量都会保存,即使PostMan关闭了。桌面版的PostMan还会自动更新,时刻保持最新的状态。

Postman是一款非常流行的API开发和测试工具,用于发送HTTP请求并查看响应。它可以帮助开发人员和测试人员更方便地进行API调试和测试工作。 Postman提供了一个用户友好的界面,允许用户轻松创建、发送和管理HTTP请求。用户可以选择不同的请求方法(如GET、POST、PUT、DELETE等),设置请求头、请求参数和请求体,并发送请求来与API进行交互。用户还可以查看请求的响应,包括状态码、响应头和响应体等信息。 此外,Postman还提供了一些级功能,比如环境变量管理、集合管理、测试脚本编写和断言等。用户可以使用环境变量来管理不同的环境(如开发、测试、生产环境),方便切换不同的API终点。而集合管理功能可以将一组相关的API请求组织在一起,方便进行批量测试和自动化测试。 对于需要批量运行Postman脚本的情况,可以使用Newman插件来实现命令行执行。Newman是Postman官方提供的命令行工具,可以通过它来运行Postman的集合和环境,从而实现自动化测试和持续集成。用户需要先安装Node.js,然后通过npm安装Newman。 在持续集成构建方面,可以将Postman集成到Jenkins中。Jenkins是一款开源的持续集成工具,可以通过配置构建任务来自动运行Postman集合。用户可以在Jenkins中配置定时触发、触发条件和报告生成等功能,实现自动化的API测试和集成测试。 总结起来,Postman是一款功能强大的API开发和测试工具,可以帮助开发人员和测试人员更效地进行API调试和测试工作。使用Postman可以方便地发送HTTP请求、查看响应,并提供了一些级功能如环境变量管理、集合管理和测试脚本编写等。同时,还可以通过Newman插件实现命令行执行和通过Jenkins进行持续集成构建。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Postman使用教程.pdf](https://download.csdn.net/download/hong521520/12614253)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Postman使用教程详解](https://blog.csdn.net/weixin_45781774/article/details/120355183)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值