为了达到压力测试的效果,需要申请一台线上机器,并且安装压力测试的工具siege。

安装新版siege。资料说yum安装的版本2.70对于post方式支持的不好,验证后发现请求可以正常发过去,但是打开debug模式也拿不到返回值。

wget  http://download.joedog.org/siege/siege-3.1.3.tar.gz

【如果下载地址不对,请登录官网查看最新的版本。https://www.joedog.org/

下载完后,解压进入目录。如下操作是在普通用户下进行的

# sudo ./configure --prefix=/usr/local/siege --mandir=/usr/local/man

# sudo make

# sudo make install

如下的这些参数含义,自行查阅相关资料,不再赘述。

Usage: siege [options]

siege [options] URL

siege -g URL

Options:

-V, --version

-h, --help

-C, --config

-v, —verbose

-q, —quiet

-g, --get

-c, --concurrent=NUM

-i, --internet

-b, --benchmark

-t, --time=NUMm

-r, --reps=NUM

-f, --file=FILE

-R, --rc=FILE

-l, --log[=FILE]

-m, --mark="text"

-d, --delay=NUM

-H, --header="text"

-A, --user-agent=“text"

-T, --content-type="text"

我当时是需要对电话会议通行能力提供商的服务接口进行压力测试,验证其是否能够提供稳定的服务。

表单提交的方式是post,提交的内容是xml格式的内容,废了一些周折,最后写出如下的命令。

siege命令运行的格式:

siege --debug -c10 -t10M -H'Authorization:ZmY4MDgwODEzZTljYjMxZTAxM2ViMTc2NjFiYjAxNTQ6MjAxNDA2MTcxNDMzMzY=' ' https://sandboxapp.***.com/ivr/createconf?sig=C0E95E8EEDB9A3C&maxmember=10 POST </tmp/createconf.xml ' >>/tmp/siege2.log

参数说明

-c10  :10个并发。

-t10M:压力测试持续10分钟,还可以按次数。

-H:http请求的header。

url:https://***。url中的POST </tmp/createconf.xml 是post提交请求的文件路径。

最终的思路:用php脚本先生成siege运行的参数,然后运行

(1)生成url+sig ,header+sig 【sig是服务商提供的账号应用id等信息和时间戳生成的一个校验参数】

(2)生成post的body,写入tmp/createconf.xml 中

(3)运行 siege 。并发数按照2的N次方递增,一次运行时间固定10分钟。

压力测试的结果包括如下内容:

Transactions: 访问次数

Availability: 成功次数

Elapsed time: 测试用时

Data transferred: 测试传输数据量

Response time: 平均响应时间

Transaction rate:每秒事务处理量

Throughput: 吞吐率

Concurrency: 并发用户数

Successful transactions: 成功传输次数

Failed transactions: 失败传输次数

Longest transaction: 最长响应时间

Shortest transaction: 最短响应时间

结果分析:

siege的结果参数,整理形成报告。

by hyb

使用siege对web接口进行post方式的压力测试的更多相关文章

  1. 如何使用 JMeter 调用你的 Restful Web Service?进行简单的压力测试和自动化测试

    表述性状态传输(REST)作为对基于 SOAP 和 Web 服务描述语言(WSDL)的 Web 服务的简单替代,在 Web 开发上得到了广泛的接受.能够充分证明这点的是主流 Web 2.0 服务提供商 ...

  2. Web Application Stress 对网站进行压力测试

    打开Microsoft web Application Stress工具按下图顺序操作: 1. 2.点击Record 3. 4.在浏览器中输入要测试的URI地址 5.在设置中设置参数,如发起请求线程数 ...

  3. Mac下使用Web服务器性能/压力测试工具webbench、ab、siege

    Web开发,少不了的就是压力测试,它是评估一个产品是否合格上线的基本标准,下面我们来一一剖析他们的使用方式. 测试前,前面先把系统的端口限制数改大,看看Mac下面的默认限制 ulimit -a ope ...

  4. web接口的开发

    老样子,抛出一个问题:什么是接口? 不解释了,百度吧. 了解起来先从HTTP开始说起吧. HTTP协议的特点: 1,无连接,就是指每次连接都仅仅只处理一个请求,服务器处理完客户的请求之后,收到客户的应 ...

  5. Linux下的压力测试工具:ab、http_load、webbench、siege

    一.ab 1.1 介绍 ab是apache自带的一款功能强大的测试工具.      安装了apache一般就自带了. 1.2 下载 同apache. 1.3 安装 同apache. 1.4 安装结果 ...

  6. Mac下的Web性能压力测试工具:ab(ApacheBench)

    Web开发,少不了的就是压力测试,它是评估一个产品是否合格上线的基本标准. ab是一种用于测试Apache超文本传输协议(HTTP)服务器的工具.apache自带ab工具,可以测试Apache.IIS ...

  7. VS2008压力测试时web测试记录器无显示

    系统:win7 浏览器:IE8 web测试记录器:Web Test Recorder   在运行vs2008Web压力测试时一直在浏览器左侧的web测试记录器无显示. 解决办法:     在IE工具栏 ...

  8. Linux下四款Web服务器压力测试工具(http_load、webbench、ab、siege)介绍

    一.http_load程序非常小,解压后也不到100Khttp_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把 ...

  9. JMeter基于http请求的web接口性能测试总结

    [本文出自天外归云的博客园] 基于http请求的web接口性能测试总结 压测的目的:对于Web接口压测的目的最终是要在对数据库造成压力的情况下观察压测服务器的cpu是否达到预警值.memory是否发生 ...

随机推荐

  1. 编译make的出错提示解决方案

    编译出错笔记:start.s:20: Error: no such instruction: `ldr r0,=WTCON' 错误:没有这样的指令 解决:编译文件后缀名必须为大写S,改为start.S ...

  2. poj 1384完全背包

    题意:给出猪罐子的空质量和满质量,和n个硬币的价值和质量,求猪罐子刚好塞满的的最小价值. 思路:选择硬币,完全背包问题,塞满==初始化为无穷,求最小价值,min. 代码: #include<io ...

  3. 转: 深入Java虚拟机】之二:Class类文件结构

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/17675609 平台无关性 Java是与平台无关的语言,这得益于Java源代码编译后生成的存 ...

  4. MongoDB学习之路(三)

    数据库 一个MongoDB可以建立多个数据库. MongoDB的默认数据库为"db",该数据库存储在data目录中. MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自 ...

  5. 201521123050 《Java程序设计》第7周学习总结

    1. 本周学习总结 2. 书面作业 1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 代码: public boolean contains(Object o) ...

  6. 201521123068 《java程序设计》 第10周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 本次PTA作业题集异常.多线程 1.finally 题目4-2 1.1 截图你的提交结果(出 ...

  7. jQuery 简介,与js的对比

    jquery可以说是js的封装,大多数情况下jquery比js简单,它们两个可以相互写对方的里面,使用jquery需要导入jquery文件. <script src="jquery-1 ...

  8. 多线程面试题系列(14):读者写者问题继 读写锁SRWLock

    在第十一篇文章中我们使用事件和一个记录读者个数的变量来解决读者写者问题.问题虽然得到了解决,但代码有点复杂.本篇将介绍一种新方法--读写锁SRWLock来解决这一问题.读写锁在对资源进行保护的同时,还 ...

  9. JS判斷文件大小

    function findSize(file) { var dom = document.getElementById("file"); var fileSize = dom.fi ...

  10. android动画的实现过程

    先上自己的测试代码,有参考apidemo中的AnimationDrawable中的方法 public class AnimateActivity extends Activity { @Overrid ...