其他性能测试工具


其他性能测试工具

一、wrk

1、k 开源,它的脚本可以写lua,可以进行快速的性能测试,得到一个大概的性能情况,不能做很复杂的脚本来进行测试

2、特点:高并发低资源消耗;安装部署简单;原生支持LuaJIT脚本;不适合做多协议、复杂场景的性能测试

3、安装

  3.1  若服务器未安装git先安装git:yum -y install git  make gcc ----->> 下载wrk:git clone https://gitee.com/mirrors/wrk.git  ---->> 进入下载后的文件夹cd wrk  -->> 执行make --->> 就有一个 wrk的可执行文件

注意:没有安装解压工具执行make会报错--make: unzip:命令未找到,解决方式:yum install unzip #提示输入时,请输入y;

./wrk --help
Usage: wrk  
Options:
-c, --connections  Connections to keep open 建立连接数量
-d, --duration  Duration of test 性能测试时长
-t, --threads  Number of threads to use 性能测试的并发用户
数
-s, --script  Load Lua script file 你的lua脚本
-H, --header  Add header to request 指定消息头
--latency Print latency statistics
--timeout  Socket/request timeout
-v, --version Print version details
Numeric arguments may include a SI unit (1k, 1M, 1G)
Time arguments may include a time unit (2s, 2m, 2h)

  3.2 测试:执行./wrk -t4 -c100 -d30s --latency https://www.baidu.com/`

-t4 用4个并发用户数
-c100 建立100个连接通道
-d30s 持续运行30秒
--latency 显示概要报告
url: 被测地址

Thread Stats Avg Stdev Max +/- Stdev
Latency 113.03ms 110.05ms 1.64s 86.40%
Req/Sec 274.79 45.77 505.00 73.97%
Latency Distribution
50% 79.65ms
75% 124.45ms
90% 258.63ms
99% 501.60ms
32793 requests in 30.07s, 328.43MB read
Socket errors: connect 0, read 132, write 0, timeout 0
Requests/sec: 1090.41
Transfer/sec: 10.92MB

....90%.... : 90%的请求响应时间少于等于这个时间

二、ab

1、是apache自带一个性能测试工具

2、安装:centos系统安装 yum install httpd-tools -y

3、ab --help帮助

-c 并发用户数
-t 持续运行时长
-n 总共运行多少次,默认是5w次
-m 请求方法

4、测试

  4.1 请求写法:ab 选项参数 URL

  4.2 指定并发用户数与请求次数:ab -c10 -t30 https://www.baidu.com/ 用10个并用户数 持续运行 30s钟

  4.3 指定并发用户数:ab -c10 https://www.baidu.com/ 用10个并发用户数,持续请求 5w次,运行的时长不确定

  4.4 post请求:ab -c 10 -n1000 -m POST -p user.json -T "application/json" http://ip:port/

测试报告:Finished 4195 requests


Server Software:        BWS/1.1
Server Hostname:        www.baidu.com
Server Port:            443
SSL/TLS Protocol:       TLSv1.2,ECDHE-RSA-AES128-GCM-SHA256,2048,128

Document Path:          /
Document Length:        227 bytes

Concurrency Level:      10 并发用户数
Time taken for tests:   34.240 seconds
Complete requests:      4195
Failed requests:        0
Write errors:           0
Total transferred:      4660160 bytes
HTML transferred:       952265 bytes
Requests per second:    122.52 [#/sec] (mean)
Time per request:       81.621 [ms] (mean)
Time per request:       8.162 [ms] (mean, across all concurrent requests)
Transfer rate:          132.91 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       26   34   6.4     32     129
Processing:     8   12   6.9     11     238
Waiting:        7   12   6.7     10     238
Total:         34   45  10.8     43     269

Percentage of the requests served within a certain time (ms)
  50%     43
  66%     45
  75%     46
  80%     47
  90%     51 总的请求量中90%的请求,时间是小于等于这个时间的
  95%     59
  98%     78
  99%     94
 100%    269 (longest request)

三、ngrinder

1、是一款开源的性能测试工具,做性能平台开发,可以基于这个工具进行开发,它的脚本语言为Jython、Groovy ,这两门语言,都是java的衍生版本

  1.1 jython: java + python, 就是把python的脚本,放到jvm中运行,目前只支持python2.7

  1.2 groovy: 纯java的衍生版本,其基础语法类似python,高级用法中集成了java和 python优点,性能与java性能不相上下

    1.2.1 jenkins中pieple 需要用groovy来写

    1.2.2 jmeter中性能脚本写代码使用JSR223元件+groovy语言

    1.2.3 ngrinder写脚本 使用groovy语言

    1.2.4 gradle也需要有groovy语言

2、ngrinder做性能测试,是用进程 + 线程 的组合模式来模拟多用户并发

  2.1 jmeter只能用线程模拟多用户并发

  2.2 loadrunner,是用线程或进程模拟多用户并发

  2.3 locust 使用协程来模拟并发用户数:协程---比线程更细的执行单元;进程---资源拥有者;线程---执行任务的基本单元

3、工具

  3.1 ngrinder-Controller

1、工具主体,提供web管理界面
2、创建、维护脚本
3、进行性能测试
4、显示性能测试过程和数据
5、服务对外默认端口8080;内部服务默认端口16001,用于和agent交互数据

  3.2 ngrinder-Agent: 产生压力

  3.3 ngrinder-controller安装

    3.3.1 ava运行环境 一般推荐jdk1.8

    3.3.2 把ngrinder-controller-3.5.2.war包上传到一个空linux机器

    3.3.3 启动: 可以把包放到 tomcat的webapps中,启动tomcat; 或者java -jar ngrinder-controller-3.5.2.war

      建议用 java命令来启动,这种方式启动速度要快一些,如果你用 tomcat来启动,可能需要2分钟左右

    3.3.4 登录http://ngrinder_ip:8080 账号:admin    密码:admin

    3.3.5 右上角的admin用户名上:下载代理  

      1、这种方式,自动给我们修改好了agent的配置文件
      2、将文件上传到一台机器,可以是ngrinder-controller机器也是可以是其他的
      3、解压包 tar -xvf ngrinder-agent-xxxxx.tar
      4、第一次: run_agent_internal.sh
            run_agent_bg.sh 把agent放到后台运行
            run_agent.sh 运行

  3.4 写脚本

    3.4.1 顶部功能栏---》脚本----》创建----》新建脚本 ----》选择语言----》填写测试URL,body,请求头等------》点击保存

  3.5 创建测试

    3.5.1 顶部功能栏---》性能测试 ---》创建测试 ---》输入代理,虚拟用户数 ---》目标主机 ---》点击保存并运行

    3.5.2 修改selinux:服务器输入: vi /etc/selinux/config ---》按i切换为插入模式 ---》将 SELINUX=改为permissive ---》输入:x退出保存

相关