zoukankan      html  css  js  c++  java
  • Apache ab测试工具使用方法(无参、get传参、post传参)

    Ab测试工具是apache自带的测试工具,具有简单易上手的特性,下面我总结一下我的使用方法,首先去官方下载apache程序包,我下的最新版本apache2.4.23,下载地址http://httpd.apache.org/download.cgi

    我下载的windows版本,解压后放到某一目录即可。

    1、呼出控制台

    可以使用系统自带cmd或者Xshell工具均可

    2、进入apache下的bin目录ab.exe就在此处

    3、使用方法

    直接在此目录下输入ab回车就会罗列出使用帮助

    使用方式:ab [options] [http://]hostname[:port]/path

    这里我只介绍常用命令

    -n:总请求次数(最小默认为1)

    -c:并发次数(最小默认为1且不能大于总请求次数,如:10个请求,10个并发,实际就是1人请求1次)

    -p:post参数文档路径(-p和-T参数要配合使用)

    -T:header头内容类型(此处切记是大写英文字母T)

    后面直接写请求路径即可:http://www.test.com/xxx/xxx.html

    4、无参方式请求

    输入:ab -n 10 -c 10 http://paycenter.gotrip8.com/querypay.aspx

    5、Get方式请求

    输入:ab -n 10 -c 10 "http://paycenter.gotrip8.com/querypay.aspx?Version=1.0&InputCharset=GBK&SignType=MD5&PlatFormCode=CPOTA&OrderNo=TEST0123456784&Sign=185FA68CA23AAE7B3A02A226ABD30297"

    注意:请求URL要使用双引号括起来,否则ab无法识别&符号

    6、Post方式请求

    参数文档:参数文档内容使用“key=value&key=value&key=value...”方式进行拼接,还有json的方式,但我实验没有成功,接收不到参数,具体原因未知

    输入:ab -n 10 -c 10 -p d: estquerypay.txt -T application/x-www-form-urlencoded http://paycenter.gotrip8.com/querypay.aspx

    注意:-p是参数文档路径,-T是大写英文字母,post表单格式为:application/x-www-form-urlencoded

    7、测试结果

    主要看三个数据

    Requests per second:吞吐率

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

    Time per request:上面的是用户平均请求等待时间

    处理完成所有请求数所花费的时间/ (总请求数 / 并发用户数),即
    Time per request = Time taken for tests /( Complete requests / Concurrency Level)

    Time per request:下面的是服务器平均请求处理时间

    处理完成所有请求数所花费的时间 / 总请求数,即
    Time taken for / testsComplete requests
    可以看到,它是吞吐率的倒数。
    同时,它也=用户平均请求等待时间/并发用户数,即
    Time per request / Concurrency Level

    可以根据固定并发数,增加请求次数或者固定请求次数,调整并发数来查看上面三个值得变化来调优服务器

    8、未解决问题

    在使用中我发现两个问题

    一是无法传递json的post参数,网上的方法都试过了,接不到参数

    二是传参时无法改变参数,或者说无法传递不同参数,比如下单接口测试,每次都应该传递不同的订单号,或者注册接口,每次都应该传递不同的账号密码,但在参数文档中如何写也实现不了,还望高手解答,谢谢

    安装ab工具

     yum install httpd-tools 

    参数说明

    -n:执行的请求个数,默认时执行一个请求

    -c:一次产生的请求个数,即并发个数

    -p:模拟post请求,文件格式为gid=2&status=1,配合-T使用

    -T:post数据所使用的Content-Type头信息,如果-T 'application/x-www-form-urlencoded'

    1.模拟get请求
    直接在url后面带参数即可

    ab -c 10 -n 10 http://www.test.api.com/?gid=2

    2.模拟post请求

    在当前目录下创建一个文件post.txt

    编辑文件post.txt写入

    cid=4&status=1

    相当于post传递cid,status参数

    ab -n 100  -c 10 -p 'post.txt' -T 'application/x-www-form-urlencoded' 'http://test.api.com/ttk/auth/info/'
  • 相关阅读:
    六. 异常处理5.多重catch语句的使用
    六. 异常处理4.try和catch的使用
    六. 异常处理3.未被捕获的异常
    六. 异常处理2.异常类型
    对mysql数据库中字段为空的处理
    mysql 中实现多条数据同时更新
    java 用PDFBox 删除 PDF文件中的某一页
    java7 java MethodHandle解析
    【十四】jvm 性能调优实例
    【十三】jvm 性能调优工具之 jstack
  • 原文地址:https://www.cnblogs.com/ExMan/p/8490536.html
Copyright © 2011-2022 走看看