使用apache的ab压力测试post请求

转载自:http://blog.csdn.net/jianfyun/article/details/6431716

参考:http://www.jb51.net/article/59469.htm

基本使用方法:

ab -c 10 -n 100 http://www.test.com/index.php

-c10表示并发用户数为10
-n100表示请求总数为100
http://www.test.com/index.php 表示请求的目标URL
这行表示同时处理100个请求并运行10次index.php文件
如果是https的网址,需要使用abs工具,与ab工具在同一目录中。

网上有很多介绍apache的ab的,却很难找到-p选项具体怎么用,简单实践并总结一下:

-p选项指定post文件的位置;-T选项指定post文件的编码方式,默认是明文,如果指定-T ‘application/x-www-form-urlencoded’,则表示post文件使用urlencode

一个小例子

命令: cd /usr/local/apache2/bin
sudo ./ab -c 10 -n 100 -p /home/post -T ‘application/x-www-form-urlencoded’http://www.abc.cn/test

/home/post文件内容: requestData=a%3A1%3A%7Bs%3A7%3A%22topicID%22%3Bs%3A12%3A%22101305598452%22%3B%7D

(根据echo ‘requestData=’ . urlencode(serialize(array(‘topicID’ => ‘101305598452’)));得到)

如何解决并发问题:

加锁

<?php
$fp = fopen("/tmp/lock.txt", "w+");

if (flock($fp, LOCK_EX)) { // 进行排它型锁定
    fwrite($fp, "Write something here\n");
    flock($fp, LOCK_UN); // 释放锁定
} else {
    echo "Couldn't lock the file !";
}

fclose($fp);
?>

《使用apache的ab压力测试post请求》上有1条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注