压测工具Webbench和ab

发布于 2020-09-25  490 次阅读


一.Webbench

Webbench是知名的网站压力测试工具,它是由Lionbridge公司(http://www.lionbridge.com)开发。
Webbench能测试处在相同硬件上,不同服务的性能以及不同硬件上同一个服务的运行状况。webbench的标准测试可以向我们展示服务器的两项内容:每秒钟相应请求数和每秒钟传输数据量。webbench不但能具有便准静态页面的测试能力,还能对动态页面(ASP,PHP,JAVA,CGI)进 行测试的能力。还有就是他支持对含有SSL的安全网站例如电子商务网站进行静态或动态的性能测试。
Webbench最多可以模拟3万个并发连接去测试网站的负载能力。

1、WebBench安装
# yum install -y gcc ctags
# wget http://www.ha97.com/code/webbench-1.5.tar.gz
# tar zxvf webbench-1.5.tar.gz
# cd webbench-1.5
# make
# make install

2、WebBench使用
webbench -c 1000 -t 60 http://test.domain.com/phpinfo.php
webbench -c 并发数 -t 运行测试时间 URL

3、测试实例结果
当并发300时:
向http://test.domain.com/phpinfo.php发起300个线程请求,持续时间60秒
webbench -c 300 -t 60 http://test.domain.com/phpinfo.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://test.domain.com/phpinfo.php
300 clients, running 60 sec.

Speed=24525 pages/min, 20794612 bytes/sec. 
Requests: 24525 susceed, 0 failed.
速度:每秒钟响应请求数:24525 pages/min,每秒钟传输数据量20794612 bytes/sec.
返回数:24525次返回成功,0次返回失败

当并发1000时:
webbench -c 1000 -t 60 http://test.domain.com/phpinfo.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://test.domain.com/phpinfo.php
1000 clients, running 60 sec.
Speed=24920 pages/min, 21037312 bytes/sec.
Requests: 24833 susceed, 87 failed.

当并发1000时,已经显示有87个连接failed了,说明超负荷了。

备注:
1、压力测试工作应该放到产品上线之前进行
2、测试时尽量跨公网模拟正式环境进行
3、测试时并发应当由小逐渐加大,比如并发100时观察一下网站负载是多少、打开是否流程,并发200时又是多少、网站打开缓慢时并发是多少、网站打不开时并发又是多少

二.ab

ab是apache自带的压力测试工具,ab是apachebench命令的缩写。
ab不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。
ab是一个httpd自带的很好用的压力测试工具,ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。
可以用来测试apache的负载压力,也可以 用来测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力负载性能。
官网:https://httpd.apache.org/docs/2.4/programs/ab.html
示例:http://www.cnblogs.com/qmfsun/p/6476290.html

安装ab
yum -y install httpd-tools
查看版本
[root@gzf~]# ab -V
[root@gzf~]# which ab

Get请求
ab -n1 -c1 "http://192.168.32.46:8081/"
-n 要执行请求数,默认会执行一个请求
-c 一次执行多个请求的数量,默认是一次一个请求。

Post请求

ab -n1 -c1   -p "/root/gzf/ab_test/post.txt" -T "application/json" "http://192.168.32.76:81/tokenServer/get/token"

-p 包含数据到POST的文件。 还请记住设置-T

-T Content-type用于POST / PUT数据的内容类型内容类型标题,例如:'application/x-www-form-urlencoded' 默认是'text/plain
post.txt
&clientId=098f6bcd4621d373cade4e832627b4f6&userName=admin&password=123456