使用postman进行压力测试 | 青训营笔记

6,732 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第2篇笔记

网上已经有很多关于postman压力测试的文章,在查找之余发现由于版本的不同,有些选项的位置不是很对的上。本文结合字节青训营极简抖音app开发项目,使用ubuntu16.04、postman9.21.2,力求为没有接触过postman压力测试用户提供一些参考。

测试接口的编写

首先为需要测试的接口建立一个collecetions,并添加接口

Fig1. 建立collocation并添加接口

为接口添加tests

这一步是为了判断返回的body是否是正确的,postman依照这一步的判断把结果分为Passed(通过测试)和Failed(没有通过测试)

选中一个接口,进入Tests一栏

Fig2. 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选项

Fig3. 选项Run的位置

进入之后会有一个RUN ORDER,用来选择测试接口以及发送报文的顺序,打勾代表需要测试,红色圈1代表该处可以点击并拉动,用来排序。Iterations表示一共执行多少次迭代,Delay代表两次迭代之间的时间间隔,一次Iteration会把RUN ORDER中打勾的所有报文都执行一次。

点击Run pressure test开始进行压力测试。

Fig4. 压力测试配置

结果展示

由于本文一共测试了四个接口,每个接口进行两个测试参数,一共迭代10次,所以总共的测试数量是4x2x10 = 80,一共通过了80个测试,0个失败,如图5所示。

Fig5. 压力测试结果展示