`

【转】Apache AB 如何传递参数

阅读更多

AB使用时,网上通篇一律,在进行示例时使用的连接一般都是http://*.com,这种写法是没有带参数,如果你想测试一个写入的Case,那需要传递参数给后台,如何传递参数呢?

这里有一个登录的请求,需要登录名和密码,路径是这样的:

http://*/login.action?userName=admin&userPassWord=admin

使用该连接进行测试:ab -n 1 http://*/login.action?userName=admin&userPassWord=admin

发现由于存在特殊字符 & ,虽然命令执行成功,但是并不能处理 & 后的参数

 

关于AB使用的官网:http://httpd.apache.org/docs/2.0/programs/ab.html

他有两个参数:p(小写),T(大写),注意区分大小写,一个是用于指定POST请求时的参数文件,一个用于指定请求的类型Content-type,关于Content-type的类型,大家可以百度。

在AB命同级目录建立一个文件:para.txt,在里面写入要传递的参数:userName=admin&userPassWord=admin

指定请求类型为:application/x-www-form-urlencoded

 

完整的命令为:ab -n 1 -p para.txt -T application/x-www-form-urlencoded http://*/login.action 

如此就可以将需要的两个参数传递到后台

 

结果如下 。。


D:\Apache\bin>ab -n 10 -c 10 http://192.168.1.3/index.html
(以上是输入的命令)

Benchmarking 192.168.1.3 (be patient).....done
Server Software:        Apache/2.0.63
(目标服务器Apache版本号)

Server Hostname:        192.168.1.3
(目标服务器主机头名称)

Server Port:            80
(目标服务器Apache端口)

Document Path:          /index.html
(目标网页相对地址)

Document Length:        292 bytes
(目标网页大小)

Concurrency Level:      10
(并发线程数)

Time taken for tests:   0.140625 seconds
(使用时间)

Complete requests:      10
(成功的请求数量)

Failed requests:        0
(失败的请求数量)

Write errors:           0
(发生错误数量)

Total transferred:      5750 bytes
(全部使用的流量)

HTML transferred:       2920 bytes
(Html文件使用的流量)

Requests per second:    71.11 [#/sec] (mean)
(指标一 平均每秒请求数)

Time per request:       140.625 [ms] (mean)
(指标二 平均事务响应时间)

Time per request:       14.063 [ms] (mean, across all concurrent requests)
(每秒请求时间)

Transfer rate:          35.56 [Kbytes/sec] received
(传输速率)

Connection Times (ms)
             min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       0
Processing:   109  124  16.3    140     140
Waiting:      109  124  16.3    140     140
Total:        109  124  16.3    140     140
(所有请求的响应情况)

Percentage of the requests served within a certain time (ms)
50%    140
66%    140
75%    140
80%    140
90%    140
95%    140
98%    140
99%    140
100%    140 (longest request)
每个请求都有一个响应时间 。。
比如 其中 50% 的用户响应时间小于 140 毫秒 。。
最大的响应时间小于 140 毫秒 (100% 处) 。。


ab 参数说明

-n requests     Number of requests to perform
//在测试会话中所执行的请求个数。默认时,仅执行一个请求

-c concurrency Number of multiple requests to make
//一次产生的请求个数。默认是一次一个。

-t timelimit    Seconds to max. wait for responses
//测试所进行的最大秒数。其内部隐含值是-n 50000。它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限制。

-p postfile     File containing data to POST
//包含了需要POST的数据的文件.

-T content-type Content-type header for POSTing
//POST数据所使用的Content-type头信息。

-v verbosity    How much troubleshooting info to print
//设置显示信息的详细程度 - 4或更大值会显示头信息, 3或更大值可以显示响应代码(404, 200等), 2或更大值可以显示警告和其他信息。 -V 显示版本号并退出。

-w              Print out results in HTML tables
//以HTML表的格式输出结果。默认时,它是白色背景的两列宽度的一张表。

-i              Use HEAD instead of GET
// 执行HEAD请求,而不是GET。

-x attributes   String to insert as table attributes
//

-y attributes   String to insert as tr attributes
//

-z attributes   String to insert as td or th attributes
//

-C attribute    Add cookie, eg. ‘Apache=1234. (repeatable)
//-C cookie-name=value 对请求附加一个Cookie:行。 其典型形式是name=value的一个参数对。此参数可以重复。

-H attribute    Add Arbitrary header line, eg. ‘Accept-Encoding: gzip’
Inserted after all normal header lines. (repeatable)

-A attribute    Add Basic WWW Authentication, the attributes
are a colon separated username and password.

-P attribute    Add Basic Proxy Authentication, the attributes
are a colon separated username and password.
//-P proxy-auth-username:password 对一个中转代理提供BASIC认证信任。用户名和密码由一个:隔开,并以base64编码形式发送。无论服务器是否需要(即, 是否发送了401认证需求代码),此字符串都会被发送。
-X proxy:port   Proxyserver and port number to use
-V              Print version number and exit
-k              Use HTTP KeepAlive feature
-d              Do not show percentiles served table.
-S              Do not show confidence estimators and warnings.
-g filename     Output collected data to gnuplot format file.
-e filename     Output CSV file with percentages served
-h              Display usage information (this message)
//-attributes 设置 属性的字符串. 缺陷程序中有各种静态声明的固定长度的缓冲区。另外,对命令行参数、服务器的响应头和其他外部输入的解析也很简单,这可能会有不良后果。它没有完整地实现 HTTP/1.x; 仅接受某些’预想’的响应格式。 strstr(3)的频繁使用可能会带来性能问题,即, 你可能是在测试ab而不是服务器的性能。

 

 

参考:http://cuisuqiang.iteye.com/blog/1936047

            http://wangshuaibo.iteye.com/blog/935454

分享到:
评论

相关推荐

    基于进化(遗传 算法)优化技术 的深度神经网络(Deep MLP)股票交易系统_java_代码_下载

    然后将优化的参数传递给 深度 MLP 神经网络进行买入-卖出-持有预测。选择道琼斯 30 支股票进行模型验证。使用 1996-2016 年间的每日收盘价分别训练每只道琼斯指数股票,并在 2007-2016 年间进行测试。结果表明,优化...

    php页面静态化学习笔记.doc

    动态网址则是通过参数传递,如.php、.asp等,需要服务器执行脚本并从数据库中获取数据,速度相对较慢,且可能存在SQL注入风险。而伪静态网址,虽然看起来像静态网址,但实际上仍需经过服务器解析,访问速度未得到...

    《大数据平台搭建与配置管理》期末试题试卷及答案AB卷2套.docx

    Doug Cutting是Apache Nutch项目的主要开发者之一,在Nutch项目的基础上,他创建了Hadoop项目。 2. **终止用户所有进程的命令** - 使用`pkill`命令可以终止指定用户的所有进程。例如: `pkill -u username` 可以...

    struts的标签库参考表

    - `paramId`和`paramName`用于传递参数,其中`paramId`表示参数名,`paramName`表示参数值。 - **html:img**:用于显示图片。 ```jsp <html:img src="ab.jpg"/> ``` #### 六、Bean标签详解 Bean标签主要用于...

    php全局变量大全有用的php文档

    2. **$_GET**: 此变量用于处理URL中的查询字符串参数。例如,如果URL是`http://www.example.com/index.html?cat=apache&id=157`,那么可以通过`$_GET['cat']`获取"apache",通过`$_GET['id']`获取"157"。这是获取GET...

    java反序列化漏洞入门总结.pdf

    - **网络通信**:对象可以通过序列化在客户端和服务端之间进行传递。 - **持久化存储**:将对象的状态保存到文件中,以便将来恢复。 - **对象克隆**:利用序列化和反序列化机制来实现对象的深度克隆。 - **远程调用*...

    PHP架构师 指南 设计

    - **AB**: Apache Bench,用于测试Web服务器性能。 - **MySQLTuner**: 用于MySQL服务器的配置优化工具。 **提取网页中的所有链接** ```php $html = file_get_contents('http://example.com'); preg_match_all('/...

    php抽奖小程序的实现代码

    然后可以通过工具(例如ab,即ApacheBench)来进行压力测试,评估程序在高并发下的表现和稳定性。 文章的内容不仅涉及了PHP抽奖小程序的实现代码,还隐含了对一些基础PHP编程知识的介绍,如函数的定义、参数的传递...

    MySQL5.1参考手册官方简体中文版

    1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么...

    新版Android开发教程.rar

    程序可以采用 JAVA 开发,但是因为它的虚拟机 (Virtual Machine) Dalvik ,是将 JAVA 的 bytecode 转成 自 己的格式,回避掉需要付给 SUN 有关 JAVA 的授权费用。 对手机制造者的影响 � Android 是款开源的移动计算...

    MySQL 5.1参考手册

    1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么...

    mysql官方中文参考手册

    1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么...

    MYSQL中文手册

    1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 ...

    MySQL 5.1参考手册中文版

    1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1...

    MySql 5.1 参考手册.chm

    1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么...

    MySQL 5.1参考手册 (中文版)

    1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么...

Global site tag (gtag.js) - Google Analytics