上海做网站设计,阿里巴巴官网电脑版登录入口,精准营销的概念是什么,青岛市住房和城乡建设局网站场景
Jmeter进行http接口压力测试#xff1a;
Jmeter进行http接口压力测试_接口压测两万量-CSDN博客
上面讲压测工具Jmeter的使用#xff0c;下面介绍另外一个ab(Apache Bench)压测工具的使用。
apache bench
apache bench是apache自带的压力测试工具。
ab不仅可以对ap…场景
Jmeter进行http接口压力测试
Jmeter进行http接口压力测试_接口压测两万量-CSDN博客
上面讲压测工具Jmeter的使用下面介绍另外一个ab(Apache Bench)压测工具的使用。
apache bench
apache bench是apache自带的压力测试工具。
ab不仅可以对apache服务器进行网站访问压力测试也可以对或其它类型的服务器进行压力测试。
ab工具上手学习较快可以提供需要的基本性能指标但没有图形化结果不能监控。
因此可以用作临时紧急任务和简单测试。
Apache的ab命令模拟多线程并发请求测试服务器负载压力也可以测试nginx、lighthttp、IIS等其它Web服务器的压力。
ab命令对发出负载的计算机要求很低既不会占用很多CPU也不会占用太多的内存但却会给目标服务器造成巨大的负载。
在带宽不足的情况下最好是本机进行测试建议使用内网的另一台或者多台服务器通过内网进行测试这样得出的数据准确度会高很多。
远程对web服务器进行压力测试往往效果不理想因为网络延时过大或带宽不足。
进入apache官网
Welcome! - The Apache HTTP Server Project
Download-Files for Microsoft Winodws这里是在windows电脑上 点击Apache Lounge 下载对应的zip并解压即可在bin目录下打开cmd,输入
ab -V
则是下载运行成功。 注
博客霸道流氓气质-CSDN博客
实现
interfake模拟get和post接口
使用接口模拟工具模拟一个get和post请求
方式比较多这里使用如下方式。
HTTP JSON接口模拟工具interfake的使用(模拟接口返回json数据)
HTTP JSON接口模拟工具interfake的使用(模拟接口返回json数据)-CSDN博客
其中interfake模拟post请求的写法为
interfake.post(/badaoPost).status(200)
.body({ id: 123,name: 霸道的程序猿,age: 100,address:青岛,banji:一班}
);
interfake.listen(666);
完整的js
var Interfake require(interfake);
var interfake new Interfake();interfake.get(/badao).status(200)
.body({ id: 123,name: 霸道的程序猿,age: 100,address:青岛,banji:一班}
);
interfake.post(/badaoPost).status(200)
.body({ id: 123,name: 霸道的程序猿,age: 100,address:青岛,banji:一班}
);
interfake.listen(666);
使用ab压力测试get请求接口
接口模拟成功后对get请求接口进行压测
在上面bin下ab.exe所在的目录下打开的cmd中输入
ab -n 100 -c 10 http://127.0.0.1:666/badaoStu
其中-n表示请求数-c表示并发数
其它参数
-n
即requests用于指定压力测试总共的执行次数。
-c
即concurrency用于指定压力测试的并发数。
-t
即timelimit等待响应的最大时间(单位秒)。
-b
即windowsizeTCP发送/接收的缓冲大小(单位字节)。
-p
即postfile发送POST请求时需要上传的文件此外还必须设置-T参数。
-u
即putfile发送PUT请求时需要上传的文件此外还必须设置-T参数。
-T
即content-type用于设置Content-Type请求头信息例如application/x-www-form-urlencoded默认值为text/plain。
-v
即verbosity指定打印帮助信息的冗余级别。
-w
以HTML表格形式打印结果。
-i
使用HEAD请求代替GET请求。
-x
插入字符串作为table标签的属性。
-y
插入字符串作为tr标签的属性。
-z
插入字符串作为td标签的属性。
-C
添加cookie信息例如Apache1234(可以重复该参数选项以添加多个)。
-H
添加任意的请求头例如Accept-Encoding: gzip请求头将会添加在现有的多个请求头之后(可以重复该参数选项以添加多个)。
-A
添加一个基本的网络认证信息用户名和密码之间用英文冒号隔开。
-P
添加一个基本的代理认证信息用户名和密码之间用英文冒号隔开。
-X
指定使用的代理服务器和端口号例如:126.10.10.3:88。
-V
打印版本号并退出。
-k
使用HTTP的KeepAlive特性。
-d
不显示百分比。
-S
不显示预估和警告信息。
-g
输出结果信息到gnuplot格式的文件中。
-r
指定接收到错误信息时不退出程序。
-e
输出结果信息到CSV格式的文件中。
-h
显示用法信息其实就是ab -help。
虽然ab可以配置的参数选项比较多但是一般情况下我们只需要使用形如ab -n 数字 -c 数字 url路径的命令即可。
ab压测结果说明
上面的压测结果 server开头的三个是web服务器的信息。
Document开头的两个是请求的文档的位置以及大小/http响应的正文长度。
中间重要部分说明
Concurrency Level: 100
//并发请求数
Time taken for tests: 50.872 seconds
//整个测试持续的时间
Complete requests: 1000
//完成的请求数
Failed requests: 0
//失败的请求数
Total transferred: 13701482 bytes
//整个场景中的网络传输量
HTML transferred: 13197000 bytes
//整个场景中的HTML内容传输量
Requests per second: 19.66 [#/sec] (mean)
//吞吐率大家最关心的指标之一相当于 LR 中的每秒事务数后面括号中的 mean 表示这是一个平均值
Time per request: 5087.180 [ms] (mean)
//用户平均请求等待时间大家最关心的指标之二相当于 LR 中的平均事务响应时间后面括号中的 mean 表示这是一个平均值
Time per request: 50.872 [ms] (mean, across all concurrent requests)
//服务器平均请求处理时间大家最关心的指标之三
Transfer rate: 263.02 [Kbytes/sec] received
//平均每秒网络上的流量可以帮助排除是否存在网络流量过大导致响应时间延长的问题
最后面的这段是每个请求处理时间的分布情况50%的处理时间在8ms内66%的处理时间在8ms内...
重要的是看90%的处理时间。
ab中压测post请求
cmd中执行如下
ab -n 100 -c 10 -T application/json -p D:/test/payload.json http://127.0.0.1:666/badaoPost
其中-p代表请求的body,其文件内容为 { id: 123,name: 霸道的程序猿,age: 100,address:青岛,banji:一班}
压测结果