一个简单的接口压力测试

最近接到一个需求,对一个微信公众号上的一个登录进行压力测试,看是否存在压力问题。

刚拿到需求有点瞢,1.这个程序不是公司的开发做的,是第三方做的2.没有问题说明,只能自己想把法。

好吧,领导要求完成任务,只能自己想办法了。

初步评估了下。有2种方法可行:

第一种是使用badboy录制整个交互的过程,生成jmter接口脚本直接调用。

第二种可以通过捉包工具wireshark,指定本地ip捕捉整个登录过程,然后提取,请求地址、端口、协议等信息。

由于第一张比较简单,选择第一种方法,获取脚本如下

一个简单的接口压力测试_第1张图片

但是回放时候出错了。返回{"msg":"未知异常,请联系管理员","code":500}

一个简单的接口压力测试_第2张图片

由于没有后台查看日志,没有文档查看,也没有开发人员问询,所以没方法解决。

由于第一种办法不行,只能通过第二种办法,先捉包查看交互过程

一个简单的接口压力测试_第3张图片

一个简单的接口压力测试_第4张图片

对比了下通过badboy录制的脚本,发现bodboy录制的头信息没完整,所以猜测是头信息有问题。

所以在HTTP Header Manager处按正常交互的信息添加。发现只要包含Content-Type: application/json

脚本就能正常交互,所以可以断定,后台服务是有约定头信息的,如果没包含这个参数就做错误处理。

一个简单的接口压力测试_第5张图片

脚本调试正常后,开启压力测试。

首先要确定下测试目标有2个,第一是要确定下服务器瓶颈在那里,第二个是在极端情况下服务器是否会出错。

第一个测试目标实现的方法使用逐级增加用户的场景,多次测试可得出结果。

需要设置的地方有2处。

设置线程数

一个简单的接口压力测试_第6张图片

设置qps

一个简单的接口压力测试_第7张图片

经过测试,当并发请求达到每秒60用户登录时候,登录会有报错出现,同时让第三方人员查看了下cpu使用率已经达到80%以上。所以推测瓶颈是cpu使用率,服务器心性能为50Qps。

第二个测试目标测试方法。时间使用1000用户循环登录,让服务器在高负荷情况下运行。

一个简单的接口压力测试_第8张图片

一个简单的接口压力测试_第9张图片

测试结果。运行后出现大量错误,再次登录失败,说明服务器在高负荷运行存在问题,需要优化

 

 

 

 

 

 

转载于:https://my.oschina.net/u/3833580/blog/1809395

你可能感兴趣的:(一个简单的接口压力测试)