超实用压力测试工具-ab工具

在学习ab工具之前,我们需了解几个关于压力测试的概念


  1. 吞吐率(Requests per second)
    概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。
    计算公式:总请求数 / 处理完成这些请求数所花费的时间,即
    Request per second = Complete requests / Time taken for tests

  2. 并发连接数(The number of concurrent connections)
    概念:某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。

  3. 并发用户数(The number of concurrent users,Concurrency Level)
    概念:要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。

  4. 用户平均请求等待时间(Time per request)
    计算公式:处理完成所有请求数所花费的时间/ (总请求数 / 并发用户数),即
    Time per request = Time taken for tests /( Complete requests / Concurrency Level)

  5. 服务器平均请求等待时间(Time per request: across all concurrent requests)
    计算公式:处理完成所有请求数所花费的时间 / 总请求数,即
    Time taken for / testsComplete requests
    可以看到,它是吞吐率的倒数。
    同时,它也=用户平均请求等待时间/并发用户数,即
    Time per request / Concurrency Level

  

ab工具简介

  ab是Apache超文本传输协议(HTTP)的性能测试工具。其设计意图是描绘当前所安装的Apache的执行性能,主要是显示你安装的Apache每秒可以处理多少个请求。

下载ab工具


  进入apache官网 http://httpd.apache.org/ 下载apache即可

  

开始测试


  输入命令 ( 进入ab.exe 目录 )
  ab -n 100 -c 10 http://test.com/
  其中-n表示请求数,-c表示并发数

  其余命令请参见 http://apache.jz123.cn/programs/ab.html

  

关于登录的问题


  有时候进行压力测试需要用户登录,怎么办?
  请参考以下步骤:

  1. 先用账户和密码登录后,用开发者工具找到标识这个会话的Cookie值(Session ID)记下来

  2. 复制Cookie信息

    ab -n 100 -c 100 -H "Cookie: JSESSIONID=01BCDA8D30F3011A1C8136ED9B0A3ED6.server;USER.oooooooooooooooo=ab84b0125a24ecb263c6b677b989683ca26da6b4076ae09e1d5ccb8595a92a6d28233e61d860c9d0b745b0dfd8426494"  http://127.0.0.1:8007/shopCenter/zcyAccount/checkZcyAccount.do

 

关于(GET带参数的请求),加引号" "


  ab -n 2000 -c 150 "http://127.0.0.1:8007/app/appShopGoods/allow/getGoodsDetail.action?areaid=2013&detailid=50353974"  >>c:wap_good.html

总结


  总的来说ab工具ab小巧简单,上手学习较快,可以提供需要的基本性能指标,但是没有图形化结果,不能监控。因此ab工具可以用作临时紧急任务和简单测试。
  同类型的压力测试工具还有:webbench、siege、http_load等







链接:https://www.jianshu.com/p/43d04d8baaf7