支持上传文件的web压力测试方法 |
发布: 2012-09-03 10:38 |
1。常用的web压力测试工具有ab(apachebench)和webbench、siege。 常用的web调试工具有wget,curl。 本篇从压力测试的角度讲,以前两者为主,后两者主要列举它们的几个相应的用法。 2、由于网络上少见关于ab 的POST上传文件文章,就先从这个用法说起。 在post上传文件时,需要使用multipart/form-data模式上传,这样服务器端才能正确识别上传的文件信息。 命令行:ab -v 2 -T "multipart/form-data; boundary=---1234abcd" -p ~/abpost.txt http://yourhost/upload.php 在进行压力测试的时候,可以添加-n 500 -c 5参数,执行并发为5的请求,累计发出500次请求。 3、abpost.txt文件内容(注意不需要带==的头尾两行): 注:前面3个是普通的字符串值,最后一个是文件上传域。 =====开始========== -----1234567890 Content-Disposition: form-data; name="p1" 123444444444444444 -----1234567890 Content-Disposition: form-data; name="p2" 7543545647667567567 -----1234567890 Content-Disposition: form-data; name="p3" 1346402565.9724 -----1234567890 Content-Disposition: form-data; name="Filedata"; filename="ab1_pod.jpg" Content-Type: image/jpeg [base64 encoded file content here] --1234567890-- =====结束========== 4、对于普通的post请求,去掉文件的abpost.txt的文件上传域一段,并且把 -T 参数改为常用的'application/x-www-form-urlencoded'。 5、webbench不支持POST请求,不再细说,GET压力测试的用法与结果和ab相似。 6、seige的特点是支持批量访问url列表, 不需要编写额外的脚本。 通过Siege 配置生成工具 sproxy,可方面生成测试结果表格。 7、curl版本的文件上传命令: curl -F "Filedata=@abcd.jpg" -F "p1=1234fggdg" -F "p2=dhdg57" -F "p3=1346402565" -F "p4=026" http://yourhost/upload.php 8、wget -d 可输出http协议头信息。 |
原文: http://qtchina.tk/?q=node/680 |
Powered by zexport
|