http压力测试
2015-12-28 17:30
477 查看
一、简介
Siege是一个压力测试和评测工具,设计用于WEB开发这评估应用在压力下的承受能力:可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。Siege是一个多线程http负载测试和基准测试工具。
Siege:这是Linux系统下的一个测试工具,完全使用C语言实现,可以对HTTP和FTP服务器进行负载和性能测试。通过使用Siege 提供的功能,可以很容易的制定测试计划:包括规定使用并发用户数、重复数量,从而可以模拟在服务器、网络或者其它对象上附加负载以测试他们提供服务的受压能力,方便的测试服务器的性能。最后,利用Siege提供的测试结果来分析性能指标或者分析他们提供的服务在不同负载条件下的性能情况,分析测试结果,找出影响系统性能的瓶颈。
功能
模拟多用户对Web应用系统进行访问测试,从而达到性能的测试和评价。
二、Siege使用方式
Siege有3种操作模式:1.Regression(when invoked by bombardment) siege 从配置文件中读取URLs,按递归方式,逐个发送请求
2. Internet simulation (Siege从配置文件中读取URLs,随机选取URL发送请求)
3. Brute force (在命令行上写上一个单独的URL,发送请求)
参数说明
-V, --version
打印版本信息
-h, --help
打印帮助信息
-C, --config
显示配置信息。
-v, --verbose
打印冗余配置信息。
-g, --get
显示HTTP交易。
-c, --concurrent=NUM
设置并发用户数
-u, --url="URL"
设置被测Web的URL
-i, --internet
用户模拟、随机访问URL
-b, --benchmark .
基准测试。
-t, --time=NUM
设置测试时间。
-r, --reps=NUM
设置测试次数
-f, --file=FILE
更改配置文件存档
-R, --rc=FILE
更改siegerc文件和环境变量
-l, --log
测试日志
-m, --mark="text"
标记测试日志
-d, --delay=NUM
设置时间延迟
-H, --header="text"
增加测试头文件
-A, --user-agent="text"
设置代理测试请求
输出项
输出名称
解释说明
Transactions:
访问次数
Availability:
成功次数
Elapsed time:
测试用时
Data transferred:
测试传输数据量
Response time:
平均响应时间
Transaction rate:
每秒事务处理量
Throughput:
吞吐率
Concurrency:
并发用户数
Successful transactions:
成功传输次数
Failed transactions:
失败传输次数
Longest transaction:
最长响应时间
Shortest transaction:
最短响应时间
缺陷
在多次的web测试实践中,发现Siege只输出了测试结果。存储了概要测试测试结果。没有详细的测试过程存储。无法分析在何时出现了问题,无法详细了解测试过程的细节问题。使得无法进一步对web的性能进行分析和评价。
Siege 是轻量的测试框架,脚本所处理的测试用例构成简单,其实质就是通过HTTP 协议,发送请求来完成测试用例,所以很困难处理业务逻辑关系强的测试用例,例如,登录测试。
三、实例测试
测试一个tomcat进程和一个自有框架进程。100个并发连接发送10000个http请求, tomcat一个进程,自有框架进程也一个进程
(1)tomcat压测结果 (内网不同机器测试)
设置并发用户数
siege -c 2000 -r 10 -f tomcat.txt
Transactions: 1459 hits (访问次数)
Availability: 42.60 % (成功次数)
Elapsed time: 4.15 secs (测试用时)
Data transferred: 5.06 MB (测试传输数据量)
Response time: 0.66 secs (平均响应时间)
Transaction rate: 351.57 trans/sec (每秒事务处理量)
Throughput: 1.22 MB/sec (吞吐率)
Concurrency: 230.56 (并发用户数)
Successful transactions: 1459 (成功传输次数)
Failed transactions: 1966 (失败传输次数)
Longest transaction: 3.07 (最长响应时间)
Shortest transaction: 0.00 (最短响应时间)
(2)自有框架进程压测结果 (内网不同机器测试)
siege -c 2000 -r 10 -f url.txt
Transactions: 20000 hits(访问次数)
Availability: 100.00 % (成功次数)
Elapsed time: 10.41 secs (测试用时)
Data transferred: 0.61 MB (测试传输数据量)
Response time: 0.02 secs (平均响应时间)
Transaction rate: 1921.23 trans/sec (每秒事务处理量)
Throughput: 0.06 MB/sec (吞吐率)
Concurrency: 34.14 (并发用户数)
Successful transactions: 20000 (成功传输次数)
Failed transactions: 0 (失败传输次数)
Longest transaction: 0.53 (最长响应时间)
Shortest transaction: 0.00 (最短响应时间)
(3)本机测试
(fetches/sec Qpt-每秒响应用户数; msecs/connec response time,每连接响应用户时间)
tomcat: 1121.21 fetches/sec, msecs/connect: 1.41181 mean
自有框架: 13370.3 fetches/sec, msecs/connect: 0.0497765 mean
相关文章推荐
- http请求流程
- 进程间通信之TCP demo1
- http://www.dexcoder.com/selfly/article/3961
- Android使用OkHttp post 键值对
- TCP服务端和客户端的框架
- 判断有线网络连接的方式
- 理解 HTTPS 的工作原理
- 装饰者模式对HttpServletRequest进行增强
- 网络请求,get和post
- Http协议具体解释
- iOS开发-https免证书验证
- nginx+django httpresponse返回中文编码问题
- 芒果iOS开发之Unable to add a source with url `https://github.com/CocoaPods/Specs.git` named `master`.
- iOS9网络请求错误的原因
- 智能家居网络系统设计(五)
- android开发通过基站手机网络实现定位功能(Google实现)
- 小米 https
- Linux抓包工具tcpdump详解
- iOS中 HTTP/Socket/TCP/IP通信协议详解 韩俊强的博客
- iOS中 HTTP/Socket/TCP/IP通信协议详解 韩俊强的博客