利用apache ab命令完成性能测试

本文涉及的产品
性能测试 PTS,5000VUM额度
简介:

ab是什么


ab的全称是ApacheBench,是 Apache 附带的一个小工具,专门用于 HTTP Server 的benchmark testing,可以同时模拟多个并发请求。


ab的用法


ab 的用法是:ab [options] [http://]hostname[:port]/path


例如:

ab -n 1000 -c 200 http://xqtesting.blog.51cto.com/

上例表示总共访问小强的博客这个脚本1000次,200并发同时执行。


ab -n 1000 -c 100 -w http://xqtesting.blog.51cto.com/ >>/root/xiaoqiang.html

上面的测试用例表示100并发的情况下,共测试访问index.php脚本1000次,并将测试结果保存到xiaoqiang.html文件中。


ab常用参数的介绍:

-n :总共的请求执行数,缺省是1;

-c: 并发数,缺省是1;

-t:测试所进行的总时间,秒为单位,缺省50000s


ab结果分析


运行上面命令之后的结果太多了?看不懂?不知道看哪个?每个是什么意思?你心中又有十万个为什么了!打住,我们只需关注如下几个指标就好:

  • Requests per second (mean) 相当于 LR 中的 每秒事务数 

  • Time per request (mean)相当于 LR 中的 平均事务响应时间

  • Percentage of the requests served within a certain time (ms)


如何传递参数?


ab -n 1 -c 1 "http://localhost/xiaoqiangshop/goods.php?id=20"

一定要有双引号


ab可以完成post操作吗?


ab -n 10 -c 10 -k -p "login.ab" -T "application/x-www-form-urlencoded" "http://localhost/xiaoqiangshop/user.php"


-p 文件中是post的内容(可以是json格式,可以是&格式)

-T 指定post文件的编码方式使用urlencode

-k keepalive连接


login.ab中的内容为登录所需要的信息组合,如下:

username=xiaoqiang&password=123123&act=act_login


注意事项


  • 可以利用ab完成不复杂的性能测试,或者造数据,比较适用于单一URL的测试

  • ab判断成功与否只通过2xx的状态码作为依据,不接收服务器的返回值,但lr却接收服务器完整的返回。所以在同样的响应时间下,ab测试支持的并发数会大于lr,tps也会大于lr。

  • ab运行并发的时候和所在运行机器上的cpu颗数有关,越多则并发越大。所以在linux下支持的并发大于在Windows下

  • 大并发下数据不准,更多的是看ab本身的性能了而不是服务端的性能











本文转自 小强测试帮 51CTO博客,原文链接:http://blog.51cto.com/xqtesting/1962213,如需转载请自行联系原作者
相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
2月前
|
SQL 消息中间件 大数据
大数据-159 Apache Kylin 构建Cube 准备和测试数据(一)
大数据-159 Apache Kylin 构建Cube 准备和测试数据(一)
72 1
|
2月前
|
SQL 大数据 Apache
大数据-159 Apache Kylin 构建Cube 准备和测试数据(二)
大数据-159 Apache Kylin 构建Cube 准备和测试数据(二)
84 1
|
2月前
|
存储 大数据 Apache
大数据-146 Apache Kudu 安装运行 Dockerfile 模拟集群 启动测试
大数据-146 Apache Kudu 安装运行 Dockerfile 模拟集群 启动测试
24 0
|
7月前
|
测试技术 Apache Windows
如何使用apache的ab压力测试小工具传参数
该内容是关于在Windows环境下使用PHPStudy中的Apache集成的ab工具进行性能测试的简要教程。
70 9
|
7月前
|
关系型数据库 MySQL 测试技术
sysbench 对MySQL压测100分钟的命令
使用 `sysbench` 对 MySQL 数据库进行性能测试(压测)时,首先确保 `sysbench` 和 MySQL 数据库已经安装,并且你有一个测试数据库可以使用。下面是一个针对 MySQL 数据库进行压测的示例命令,测试时长为 100 分钟(6000 秒)。 在运行此命令之前,请确保以下内容: - 使用适当的数据库连接参数(主机、端口、用户名、密码、数据库名)。 - 根据你的需求调整测试参数(如并发数、线程数、事务数等)。 以下是一个示例命令,使用 `sysbench` 对 MySQL 数据库进行压测 100 分钟: ```shell sysbench --db-driver=m
149 0
|
7月前
|
Shell Linux Apache
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 apachectl命令 使用教程
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 apachectl命令 使用教程
246 1
|
7月前
|
SQL Apache 流计算
Apache Flink官方网站提供了关于如何使用Docker进行Flink CDC测试的文档
【2月更文挑战第25天】Apache Flink官方网站提供了关于如何使用Docker进行Flink CDC测试的文档
788 3
|
7月前
|
SQL 消息中间件 Kafka
Apache Hudi测试、运维操作万字总结
Apache Hudi测试、运维操作万字总结
291 1
|
7月前
|
Shell Linux 网络安全
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 httpd命令 使用指南
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 httpd命令 使用指南
104 0
|
SQL 分布式计算 测试技术
从 Clickhouse 到阿里云数据库 SelectDB 版内核 Apache Doris:有赞业务场景下性能测试与迁移验证
从 Clickhouse 到阿里云数据库 SelectDB 版内核 Apache Doris 迁移实践:有赞查询提速近 10 倍,OLAP 分析更实时高效!
从 Clickhouse 到阿里云数据库 SelectDB 版内核 Apache Doris:有赞业务场景下性能测试与迁移验证

推荐镜像

更多