压测:apache bench
压力测试
什么是压力测试
模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能、可靠性、稳定性等,主要是得到系统的处理峰值。
下面是压力测试相关的一些概念。
吞吐率(Requests per second) 概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。 计算公式:总请求数 / 处理完成这些请求数所花费的时间。
并发连接数(The number of concurrent connections) 概念:某个时刻服务器所接受的请求数目。
并发用户数(The number of concurrent users,Concurrency Level) 概念:要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。
用户平均请求等待时间(Time per request) 计算公式:处理完成所有请求数所花费的时间/ (总请求数 / 并发用户数)
服务器平均请求等待时间(Time per request: across all concurrent requests) 计算公式:处理完成所有请求数所花费的时间 / 总请求数,是吞吐率的倒数。
apache bench
apache bench简称为ab,是Apache出品的HTTP的性能测试工具,安装简单,使用方便。
比如,我们想要对某个接口进行一次“并发数为10,总请求数为100”的一次测试,只需要使用如下命令:
常用参数如下:
参数 | 说明 |
-n | 在一次会话中所执行的请求个数。默认为1。 |
-c | 并发数,一次产生的请求个数。默认是一次一个。 |
-t | 测试进行的最大秒数 |
-s | 响应等待的最大秒数,默认30s |
-p | 执行post请求时,需要提交的数据,需要同时使用-T来指定content-type |
-u | 执行put请求时,需要提交的数据,需要同时使用-T来指定content-type |
-T | 执行POST/PUT请求时,指定content-type |
-C | 添加Cookie,可以重复使用该参数 |
-H | 添加HTTP头部属性 |
-m | 指定执行请求时的方法: |
-w | 以HTML表格的方式输出结果 |
-k | 使用KeepAlive长连接,默认不启用 |
-i | 使用HEAD请求(默认为GET请求) |
更多示例
参考
Last updated