ab压力测试
Apache Bench安装与使用
Apache Bench简介
ApacheBench 是 Apache 服务器自带的一个web压力测试工具,简称ab。ab又是一个命令行工具,对发起负载的本机要求很低,根据ab命令可以创建很多的并发访问线程,模拟多个访问者同时对某一URL地址进行访问,因此可以用来测试目标服务器的负载压力。总的来说ab工具小巧简单,上手学习较快,可以提供需要的基本性能指标,但是没有图形化结果,不能监控。
安装
windows下安装
下载地址:https://www.apachelounge.com/...
以管理员身份运行cmd,命令行进入到Apache的bin目录,输入 httpd -k install 完成安装。在apache的bin目录下测试。
#### 修改Apache 端口
如果是windows部署,多数情况下80端口已经被iis占用了,这时候需要修改conf/httpd.conf 找到listen 80 改为你要设置的端口,如: 8090
Ubuntu下安装
sudo apt-get install apache2-utils
Apache Bench使用
格式:ab [options] [http://]hostname[:port]/path
参数很多,一般我们用 -c 和 -n 参数就可以了
ab -n 1000 -c 100 https://www.baidu.com/ #注意这里最后的斜杠一定要加
-n 表示测试请求数目
-c 表示并发度
-t timelimit 测试时间限制,单位秒
-s timeout 每个请求时间限制,单位秒
-v verbosity 日志输出级别,可以选择1, 2等,调试使用
-T content-type POST/PUT接口的content-type
-p postfile POST请求发送的数据文件
结果分析
Concurrency Level: 1000 | 并发度 |
---|---|
Time taken for tests: 1.190 seconds | 总时间, 处理1000个并发请求总共花了1.19秒, |
Complete requests: 1000 | 完成的请求数量 |
Failed requests: 0 | 失败次数 |
Write errors: 0 Non-2xx | |
responses: 1000 | 响应了1000次 |
Total transferred: 164000 bytes | 总共传输了多少流量 HTML |
transferred: 0 bytes | 传递了多少字节 |
Requests per second: 840.58 [#/sec] (mean) | QPS, 每秒完成的请求数目 , 是系统最重要的指标 |
Time per request: 1189.651 [ms] (mean) | 每组请求用时 |
Time per request: 1.190 [ms] (mean, across all concurrent requests) | 每个请求实际运行时间的平均值 ms是毫秒 |
Transfer rate: 134.62 [Kbytes/sec] received | 传输速率 可以帮助排除是否存在网络流量过大导致响应时间延长的问题 |
测试POST请求
以x-www-form-urlencoded形式发送
ab -n 1000 -c 100 -p post.txt -T 'application/x-www-form-urlencoded' http://www.test.com/test/api
注: post.txt文件内容: name=hello,world
以multipart/form-data形式发送
ab -n 1000 -c 100 -p post.txt -T 'multipart/form-data; boundary=--WebKitFormBoundaryE19zNvXGzXaLvS5C' http://www.test.com/test/api
总结
吞吐率(Requests per second),缩写RPS,是服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大的请求数,称之为最大吞吐率。
性能测试得到的最重要的指标就是QPS(Query per second),每秒查询率,qps相当于最大吞吐率。反映了接口的并发承受能力,也就是系统的峰值性能。如果对接口的调用超过了这一限制,就要考虑提升硬件或者做一些优化了。
145 声望
13 粉丝
推荐阅读
linux下typora安装
{代码...}
rayzz阅读 2.7k
最近较火的RunnerGo 与Jmeter优劣势分析
最近有一款较火的测试产品RunnerGo,它是一个基于go语言研发的开源测试平台。在这里我想从性能测试方面、结构方面以及功能方面对比两款产品。
大雨治水阅读 381
RunnerGo可视化场景管理,还原真实场景
在进行性能测试时,测试场景的正确配置至关重要。我们需要先根据业务场景和需求设计合理的测试场景,然后使用相应的工具进行配置,以实现自动化的性能测试。
大雨治水阅读 358
想快速入门性能测试?试试RunnerGo!
当前性能测试已经是一名软件测试工程师必须要了解、甚至熟练使用的一项技能。在工作时可能每次发版都要跑一遍性能,跑一遍自动化。性能测试入门容易,深入则需要太多的知识量,今天这篇文章给大家带来:怎么入门...
大雨治水阅读 340
推荐一个好用的开源测试平台RunnerGo
作为一名工作多年的测试工程师一直希望有一款可以颠覆目前测试工具的平台,相较于研发岗位有各种工具可以覆盖他们整个的工作流程,而测试工具比如:jmeter,它的功能更突出在性能测试方面,其他方面更依赖于各种...
大雨治水阅读 310
如何使用RunnerGo做自动化测试
RunnerGo支持自动化测试功能,其工作流程是:接口管理-场景管理-性能测试-自动化测试,所以自动化测试的运行内容为场景下的用例,我们可以在“场景管理”中预先配置好该场景下的用例,也可以在自动化测试中创建用例。
大雨治水阅读 304
性能测试插件太多影响测试?全栈式测试平台RunnerGo全部搞定!
在用jmeter做性能测试时想看完整一点的测试报告,想配置阶梯模式来压测,想配置不同的接口并发这些都需要安装插件并且影响机器性能,想做自动化测试还得放到jenkins,这些配置起来太繁琐。今天给大家推荐一款全栈...
大雨治水阅读 294
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。