压力测试——pylot使用

压力测试,主要是针对接口来说的,一般都是使用多线程不停的访问接口,查看接口的承载能力

我们一起看看pylot这个开源的工具吧~

Pylot:
一款开源的测试web service性能和扩展性的工具,可以进行HTTP 负载测试。Pylot产生并发负载(HTTP Requests),检验服务器响应,以及产生度量的报表。

作者:Corey Goldberg
http://www.goldb.org/


How to Use:
1.准备test case(xml格式)
2.准备一些配置参数(如agent个数,持续时间等)
3.Run起来
4.查看结果html文件


Configuration:

xml文件配置

配置文件 -x 后面的参数是xml文件,注意转义

我们一定会用到&符号,这里需要大家将&符号替换成  &

当然如果不想转义,也可以使用CDATA ^_^

<body><![CDATA[appid=YahooDemo&query=webinject]]></body>

下面我们主要讲解http协议

http

1.url

顾名思义,配置url,即接口的?前面的地址

2.method
如果是get请求,请求?后面的数据可以使用add_header加进去;
如果是post请求,就是用body部分加进去。
3.verify & verify_negative
这两个参数可以验证response值。verify参数设定为string或者是一个正则表达式,response必须包含verify设定;同理,response必须排除verify_negative的值。 
4.cookie
我的做法,可以通过fiddler抓取带有cookie的包,然后将其加入到header中即可。
5.Setting Static Variables/Parameters
可以定义全局变量共所有的testcase使用,例子如下
<testcases>
<param name="http_server" value="http://www.example.com" />
<case>
<url>${http_server}/foo</url>
</case>
</testcases>
6.File-based HTTP Payloads
当然,如果你使用post方法做压力测试的话,可以将body值存储到文件中,例子如下
<case>
<url>http://www.example.com/foo</url>
<method>POST</method>
<body file="./myfile.dat"></body>
</case>
除却http协议,pylot还可以处理REST web service 和 SOAP
下面简单概述这两个web service

web service

rest和soap都是web service,各有优缺点
pylot两种都支持

other parameters:

Agents: 运行的代理(虚拟用户)个数
Rampup: 每个agent启动的时间间隔
Interval: 单个agent发送request的时间间隔
Duration: 整个压测的时间,也就是说,当duration完毕,所有agent都会被关闭

run case:

其实配置完成xml文件,在运行就ok了


results:

pylot results:
pylot会生成一份详尽的报告,里面包括了吞吐量,响应时间等很多内容,可以让你非常容易看出性能问题和瓶颈。除了从这方面着手,也可以从服务器端着手,查看当面临大压力请求接口时,服务器各个指标的变化
server performance:
1. CPU load top命令
2. TCP 链接数: netstat  – antp  | grep  6359 | wc  –l  统计6359端口启动了多少个tcp链接  netstat命令
3. QPS :可以通过日志计算  
tail -f logname |grep .do |awk '{print $4}'|uniq -c     awk命令
tail -f logname |grep .do |cut -d " " -f 4|uniq -c   cut uniq
上面两种方式都是一样的结果,如果日志中每行的不同字段通过单个空格进行分割,使用两种都ok,否则应该多利用awk


indicator:
throughput‘s
吞吐量指系统级别的负载能力,例如一个工厂一天可以生产10吨水泥
吞吐率指一个单位时间内的吞吐量,例如一个工厂1S可以生产多少水泥
QPS
Query Per Second,由吞吐率引申出来的参数,一般可以用来衡量压力;例如一次request响应时间为0.2s,那么QPS为1S内可以处理1/0.2=5,比较少了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值