压力测试——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,比较少了

在Windows下使用Python进行网站压力测试可以使用PyLot框架。PyLot是一个基于Python的轻量级HTTP性能测试工具。它可以模拟多个用户同时访问目标网站,从而测试网站的性能。 下面是详细步骤: 1. 安装Python和PyLot 首先需要安装Python和PyLot,可以从官网下载Python安装包并安装,然后使用pip命令安装PyLot。 ``` pip install pylot ``` 2. 编写测试脚本 接下来需要编写测试脚本,使用Python代码模拟多个用户同时访问目标网站。下面是一个简单的示例代码: ```python from pylot import HTTPClient, TaskSet, locust class MyTaskSet(TaskSet): @locust.task def my_task(self): self.client.get("/") class MyLocust(HTTPClient): task_set = MyTaskSet ``` 这个测试脚本定义了一个TaskSet和一个HTTPClient,并在TaskSet中定义了一个任务,即访问网站的根路径。可以根据需要编写更复杂的测试脚本。 3. 运行测试 使用命令行工具进入测试脚本所在目录,然后执行以下命令来运行测试: ``` locust -f my_script.py ``` 这个命令会启动一个Web界面,可以在Web界面中设置并启动测试。在测试运行过程中,可以实时查看测试结果和性能指标。 4. 分析结果 测试运行结束后,可以在Web界面中查看测试结果和性能指标。可以根据需要对测试结果进行分析和优化。 总的来说,使用Python和PyLot进行网站压力测试非常方便和灵活,可以根据需要编写复杂的测试脚本,并实时查看测试结果和性能指标,从而对网站进行优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值