高级性能测试系列《31.性能测试工具:wrk》

2022-12-02 21:55:02 浏览数 (1)

目录

  • 一、性能测试工具
  • 二、wrk
    • 1.安装wrk
    • 2.wrk参数选项
    • 3.wrk演练
    • 4.用wrk做性能测试得到的结果
  • 三、wrk性能报告

一、性能测试工具

性能测试:需要使用工具。

性能测试工具:企业中主流性能测试工具是jmeter。

「jmeter」:java开发的、开源的、能够使用线程的这种方式、学习成本很低。

能做接口、自动化、性能测试。第三方的性能测试工具能从jmeter扩展。

「loadrunner」:商业版loadrunner, 要付费购买并发用户数,脚本是c语言,性能比较好,性能指标值比较准确,性能测试的标杆软件。

「wrk」:快速响应性能测试工具,但是不能做很复杂事情。

「ab」:快速响应性能测试工具,但是不能做很复杂事情。

「ngrinder」:做性能测开平台、性能工程的平台(groovy、jython)。

「python locust」:python语言进行性能测试。

网络适配器:选择nat模式。

二、wrk

1.安装wrk:

代码语言:javascript复制

# 全空系统,初始化安装的一些软件。
yum install git vim gcc wget unzip -y
# 使用git下载wrk的源码。
git clone https://gitee.com/mirrors/wrk.git
# 安装make,防止系统没有make这个命令。
yum install make -y
cd wrk/
make

# 验证wrk是否安装成功。
./wrk -v

2.wrk参数选项:

图片来自网络:重点关注-c,-d,-t这3个参数。

「线程数:」 同时允许的并发数是多少。

「连接数:」 客户端和服务端一直保持着网络连接,没有断开网络连接的数量有多少。

3.wrk演练:

代码语言:javascript复制
get请求:1:./wrk -t4 -c100 -d60s --latency https://www.baidu.com/

2:看当前有多少个线程数:
top -H |grep wrk

3:查看当前有多少个处于建立的连接:
netstat -ane|grep 网站ip | grep ESTABLISHED |wc -l


post请求:./wrk -t4 -c 100  -d 60s  ./data.lua  --latecy
http://192.168.114.131:8080/app/mobile/api/user/login

data.lua文件:

wrk.method="POST'
wrk.headers“Content-Type”="application/json’
wrk.body="{"mobilephonel”:"1356778877","pwd”:"123456"}'

4.用wrk做性能测试得到的结果:

代码语言:javascript复制
[root@centos7 wrk]# ./wrk -t4 -c100 -d60s --latency https://www.baidu.com/
Running 1m test @ https://www.baidu.com/
  4 threads and 100 connections
  Thread Stats   Avg      Stdev     Max    /- Stdev
    Latency   330.39ms  165.67ms   1.87s    85.44%
    Req/Sec    77.72     34.75   200.00     66.05%
  Latency Distribution
     50%  270.19ms
     75%  353.73ms
     90%  562.05ms
     99%  944.58ms
  18472 requests in 1.00m, 276.92MB read
  Socket errors: connect 0, read 4, write 0, timeout 5
Requests/sec:    307.47
Transfer/sec:      4.61MB

得到的这些值,都是平均值。因为并发用户数没有变,所以得到的平均值是有参考价值的。

三、wrk性能报告

Thread Status:

  • Avg平均响应,Stdev标准方差,Max最大值, /-Stdev偏差比。
  • Latency 响应时间分布。
  • Reg/sec每秒请求数。

文章中除标明“图片来自网络”的图片,皆为小编本人所画所截图,计算机知识都一样,如有雷同,纯属巧合。「文章是清菡编写的,如有转载,请标明出处!」

0 人点赞