使用siege对web接口进行post方式的压力测试
为了达到压力测试的效果,需要申请一台线上机器,并且安装压力测试的工具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方式的压力测试的更多相关文章
- 如何使用 JMeter 调用你的 Restful Web Service?进行简单的压力测试和自动化测试
表述性状态传输(REST)作为对基于 SOAP 和 Web 服务描述语言(WSDL)的 Web 服务的简单替代,在 Web 开发上得到了广泛的接受.能够充分证明这点的是主流 Web 2.0 服务提供商 ...
- Web Application Stress 对网站进行压力测试
打开Microsoft web Application Stress工具按下图顺序操作: 1. 2.点击Record 3. 4.在浏览器中输入要测试的URI地址 5.在设置中设置参数,如发起请求线程数 ...
- Mac下使用Web服务器性能/压力测试工具webbench、ab、siege
Web开发,少不了的就是压力测试,它是评估一个产品是否合格上线的基本标准,下面我们来一一剖析他们的使用方式. 测试前,前面先把系统的端口限制数改大,看看Mac下面的默认限制 ulimit -a ope ...
- web接口的开发
老样子,抛出一个问题:什么是接口? 不解释了,百度吧. 了解起来先从HTTP开始说起吧. HTTP协议的特点: 1,无连接,就是指每次连接都仅仅只处理一个请求,服务器处理完客户的请求之后,收到客户的应 ...
- Linux下的压力测试工具:ab、http_load、webbench、siege
一.ab 1.1 介绍 ab是apache自带的一款功能强大的测试工具. 安装了apache一般就自带了. 1.2 下载 同apache. 1.3 安装 同apache. 1.4 安装结果 ...
- Mac下的Web性能压力测试工具:ab(ApacheBench)
Web开发,少不了的就是压力测试,它是评估一个产品是否合格上线的基本标准. ab是一种用于测试Apache超文本传输协议(HTTP)服务器的工具.apache自带ab工具,可以测试Apache.IIS ...
- VS2008压力测试时web测试记录器无显示
系统:win7 浏览器:IE8 web测试记录器:Web Test Recorder 在运行vs2008Web压力测试时一直在浏览器左侧的web测试记录器无显示. 解决办法: 在IE工具栏 ...
- Linux下四款Web服务器压力测试工具(http_load、webbench、ab、siege)介绍
一.http_load程序非常小,解压后也不到100Khttp_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把 ...
- JMeter基于http请求的web接口性能测试总结
[本文出自天外归云的博客园] 基于http请求的web接口性能测试总结 压测的目的:对于Web接口压测的目的最终是要在对数据库造成压力的情况下观察压测服务器的cpu是否达到预警值.memory是否发生 ...
随机推荐
- C语言中指针*p[N], (*P)[N],及**p的区别
在C语言编程中指针经常困扰着我们,但是若能灵活运用指针的话,将会使得我们编程变得更加轻松与高效.这里讲下*p[N], (*P)[N],及**p的区别,这也是之前经常困扰我的地方. 这三者的定义分别为: ...
- 轻谈 return i++
在写函数的时候,发现了又一个很有意思的事情 先上代码 public class Test{ static int number = 2; public static void main(String ...
- Http协议详解,获取doPost,doGet提交的数据,以及编码问题
一 什么是Http协议 http协议: 浏览器客户端 和 服务器端 之间数据传输的格式规范 二 如何查看Http协议的内容 1)使用火狐的firebug插件(右键->firebug->网 ...
- 【Alpha】第四次Daily Scrum Meeting
GIT 一.今日站立式会议照片 二.会议内容 1.采取老师提出的建议,考虑对送礼对象进行一个分类,这个在服务功能模块中完善. 2.回顾之前几次会议的内容,做一个小的总结,各抒己见,对每个人哪方面做得比 ...
- sudoku--SE第二次作业
git传送门 编译环境: windows10.vs2017 所用语言: c++ 首先作为一个晚上闭眼的玩家,我先来讲一下我的心路历程: 最开始接到作业的时候心里是拒绝的,刚出了一趟小远门就这样,就很难 ...
- Sublime text 3编辑python时出现方框的解决办法
如图: 经过探究发现,出现这个问题的原因是我在Sublime text 3中,安装了Anaconda这款用来增强Python 编辑的插件导致了标题即图片中的问题,解决方法也非常简单,如果是因为使用an ...
- 201521123055 《Java程序设计》第14周学习总结
1. 本章学习总结 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自己的学号.姓名) 在自己建立的数据库上执行常见SQL语句(截图) 利 ...
- JAVA课程设计 学生成绩管理
学生成绩管理 可实现功能: 添加学生功能:姓名.学号.性别.出生年月日.(学号自动生成且唯一) 添加学生成绩功能:每个人都有数学.Java与体育四门课,可分课程输入成绩. 根据学生学号查找学生成绩功能 ...
- 201521123118《java程序与设计》第11周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容 2. 书面作业 1. 互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1.1 除了使用synch ...
- es6中对象的类与继承方法
对于对象,我一直搞不清楚到底是该如何去继承,如何去书写.在熟练es6之后,终于会尝试写出来了. 代码如下: //我们假定父类为person,子类为man class person{ construct ...