这是我参与「第三届青训营 -后端场」笔记创作活动的第2篇笔记
网上已经有很多关于postman压力测试的文章,在查找之余发现由于版本的不同,有些选项的位置不是很对的上。本文结合字节青训营极简抖音app开发项目,使用ubuntu16.04、postman9.21.2,力求为没有接触过postman压力测试用户提供一些参考。
测试接口的编写
首先为需要测试的接口建立一个collecetions,并添加接口
为接口添加tests
这一步是为了判断返回的body是否是正确的,postman依照这一步的判断把结果分为Passed(通过测试)和Failed(没有通过测试)
选中一个接口,进入Tests一栏
tests的编写可以参考博文blog.csdn.net/weixin_4682… 里边有初步的描述。
本文在这里只用了几个比较简单的功能,分别是响应状态码判断,时间延迟,接收参数返回值是否在预期内,下边是这三个功能的分别举例。
- HTTP响应状态码
tests["返回状态是否等于200"] = responseCode.code == 200;
其中tests是内置的map,"返回状态是否等于200"是定义的key,等号后边是一个判别式,为真则Tests结果通过测试,假则不通过测试。
responseCode.code包含了返回状态码的值。
- 时延
tests["返回时间是否小于10毫秒"] = responseTime < 50
responseTime返回时延,单位是ms
- 返回Body的参数是否在预期范围内
这里假定返回的body是JSON格式
//返回Body
//"status_code": 1 代表执行失败
//"status_code": 0 代表执行成功
{
"status_code": 1,
"status_msg": "Repeat favorite action."
}
执行代码如下
var jsonData = JSON.parse(responseBody)
tests["请求成功"] = jsonData["status_code"] == 0;
其中var jsonData = JSON.parse(responseBody)
负责把接收到的Body转化成JSON格式,jsonData就是所保存的数据,我们可以通过jsonData["status_code"]
直接获取对应key的值。用该值来判断
进入测试
值得注意的是,在进入测试之前,需要先在每一个需要测试的接口编写tests文件。
点击collections表头,在右上角有一个Run
选项
进入之后会有一个RUN ORDER
,用来选择测试接口以及发送报文的顺序,打勾代表需要测试,红色圈1代表该处可以点击并拉动,用来排序。Iterations
表示一共执行多少次迭代,Delay
代表两次迭代之间的时间间隔,一次Iteration
会把RUN ORDER
中打勾的所有报文都执行一次。
点击Run pressure test
开始进行压力测试。
结果展示
由于本文一共测试了四个接口,每个接口进行两个测试参数,一共迭代10次,所以总共的测试数量是4x2x10 = 80,一共通过了80个测试,0个失败,如图5所示。