测试目的
测试服务器单机性能
测试API性能瓶颈
使用工具
ab 测试服务器单机性能
locust 测试服务器单机性能;HTTP API测试
tsung HTTP API测试;websocket API测试
locust
Locust是一个用Python编写的可扩展的负载测试框架。安装简单,提供web操作界面。使用Python编写用户测试场景,容易理解。
官网:http://locust.io
安装:
入门示例:
locustfile.py
例子里测试了三个接口:
POST /login
GET /
GET /about/
命令行执行一个测试服务:
会在本地打开8089端口,可以使用浏览器访问:http://127.0.0.1:8089 输入模拟用户数、每秒并发用户数即可开启请求。
默认情况下,接口响应状态码返回200视为成功,否则失败。可以根据需要修改判断逻辑:https://docs.locust.io/en/stable/writing-a-locustfile.html
tsung
安装复杂些,使用erlang编写。配置是XML文件,且配置较多,理解起来比较复杂。支持HTTP,WebDAV,SOAP,PostgreSQL,MySQL,LDAP和Jabber/XMPP类型测试。 另外支持代理方式录制脚本,模仿用户行为测试。需要对从测试生成的日志文件进行后处理来分析性能。
http://tsung.erlang-projects.org/user_manual/index.html
安装 安装依赖: yum install gd libpng zlib
erlang安装:
gnuplot安装:
template-toolki安装:
tsung安装:
启动测试:
通过浏览器http://127.0.0.1:8091可以看请求日志和图表。
停止测试:
源码包里examples目录有部分配置样例。
使用代理录制脚本:
先启动录制器:
会监听本地8090端口,通过设置客户端代理为该端口,录制器可以抓取请求,并保存在当前的例如tsung_recorder20170316-1611.xml文件里。
ab
使用简单,测试结果一目了然;缺点是无法全链路测试。
常规使用示例:
表示并发1000,总共1000次请求。
结果示例:
Requests per second: 16.54 [#/sec] (mean)
表示当前测试的服务器每秒可以处理16.54个静态html的请求事务,后面的mean表示平均。这个数值表示当前机器的整体性能,值越大越好。
Time per request: 60443.585 [ms] (mean)
单个并发的延迟时间,后面的mean表示平均。
参考
1、Locust - A modern load testing framework
http://locust.io/
2、Tsung录制测试脚本 - Linux - 棒棒糖-博客
http://www.bbtang.info/linux/584.html
3、Welcome to Tsung’s documentation! — Tsung 1.6.0 documentation
http://tsung.erlang-projects.org/usermanual/index.html
4、使用TSung对Jabber服务器openfire进行压力测试 - Tilter的博客 - 博客频道 - CSDN.NET
http://blog.csdn.net/Tilter/article/details/51698056
5、machinezone/tcpkali: Fast multi-core TCP and WebSockets load generator.
https://github.com/machinezone/tcpkali
6、WebSocket的性能与压力测试 [ 不可能不确定 ]
https://chensd.com/2015-07/websocket-stress-test-and-performance-test.html?utmsource=tuicool&utm_medium=referral
领取专属 10元无门槛券
私享最新 技术干货