为了达到压力测试的效果,需要申请一台线上机器,并且安装压力测试的工具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. 关于JS正则——你知道多少?

    正则表达式 1. 使用正则 创建正则表达式有两种方式,一种是以字面量方式创建,另一种是使用RegExp构造函数来创建. var expression = / pattern / flags; var ...

  2. js 你所不知道的一面

    你真的知道JavaScript吗 JavaScript是一门奇怪的语言,要真正掌握并不容易.废话不多说,来一个快速测试,5道题目,看看你对JavaScript是否真正掌握.准备好了吗?开始咯

  3. windows下使用密钥登录Linux及xshell代理转发

    1.密钥登录原理 一般我们使用xshell访问远程主机(Linux主机)时,都是先请管理员给我们开一个账户,即为我们设置一个一个用户名和对应的密码,然后我们就可以使用下面的方式登录到远程主机了: 在这 ...

  4. java中null的类型匹配

    null作为一个特殊的参数匹配为String对象

  5. 团队作业4——第一次项目冲刺(Alpha版本)第一天 and 第二天

    第一天冲刺 一.Daily Scrum Meeting照片 二.每个人的工作 1.今天计划完成的任务 徐璨 申悦:查找关于安卓开发资料,环境搭建 连永刚 林方言:设计项目所要实现的功能,并对功能进行详 ...

  6. Java第十四周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自 ...

  7. java基础知识2--String,StringBufffer,StringBuilder的区别

    String,StringBufffer,StringBuilder的区别 1.可变不可变方面 String类中使用字符数组保存字符串  ,final 修饰当然是不可变的,用String来操作字符串的 ...

  8. java 如何判断操作系统是Linux还是Windows

    String os = System.getProperty("os.name"); if(os.toLowerCase().startsWith("win") ...

  9. vue+element搭建的后台管理系统

    最近工作不是很忙,自己在学习vue,在网上找了一个简单的项目练练手..... 这是本人的gitHub 上的项目地址:https://github.com/shixiaoyanyan/vue-admin ...

  10. MapReduce执行过程

    Mapper任务的执行过程: 第一阶段是把输入文件按照一定的标准分片(InputSplit),每个输入片的大小是固定的.默认情况下,输入片(InputSplit)的大小与数据块(Block)的大小是相 ...