这两天因为报名了一个实习生,考虑到面试时候可能问到网站并发,就准备自己做一下压力测试。
因为我是新手,所以在找工具这个阶段就用了比较长时间。最后发现Pylot对于新手来说是一个不错的选择,简单易用好配置,考虑到Pylot没有中文版,官方的介绍也是英文,所以我准备把过程写下来,方便同样是新手的人。
0、Pylot介绍:
一个简单易用,跨平台的开源网站压力测试工具,可以从命令行运行也可以开启图形界面运行,可以设置cookie,可以将测试结果制作成图表方便查看。
1、为什么要用Pylot?
就两点:简单易用,跨平台。
我用Pylot之前也搜了很多,因为我用的是OS X,所以大部分Windows专属的工具就pass掉了。我也去Stackoverflow搜过,发现大家强烈推荐的是JMeter,什么是JMeter呢,百度百科说“是Apache组织开发的基于Java的压力测试工具”。于是我就兴冲冲地点开官方文档准备学习,然后发现。。。光文档就不是一两天能看完的。。。我只是想简单粗糙地测一下我的网站能承受住多少并发而已!
于是呢,再往下翻,就看到Pylot了。
2、Pylot配置
好了,我知道你已经迫不及待地打开Pylot的官网了,那我也就不废话了,咱们直接进入主题,从实际应用中看看Pylot到底是怎么个简单法。
如果不考虑网速问题,Pylot的配置大概要5分钟吧(什么?5分钟你都嫌多?你知道我用6k/s的速度爬完所有依赖包的痛苦吗!)。
Pylot依赖wxPython、NumPy和Matplotlib三个包,并且需要Python环境,所以我们一共需要下载5个东西。
第一步:下载Pylot自身
大家点击这个按钮就会跳转到下载页面,然后点最上面那个pylot_1.26.zip就可以下载了。
这里插一句题外话吧,大家可以看到,Pylot的最新版本就是07/06/2009,确实很旧。。。这也是我一开始不想用它的原因,感觉有点不爽。不过实际使用中发现可以满足我的需求,再加上真的很简单(你学习JMeter的时间就够我测N个网站了)所以推荐给和我有一样需求的朋友。
第二步:下载及配置Python:
Python:Pylot需要python2.5以上的版本,打开以后选择对应你的系统的版本,下载好之后双击安装。
第三步:下载三个依赖包
推荐使用
easy_install wxpython numpy matplotlib
或者
pip install wxpython numpy matplotlib
这两种方式来进行安装,简单快捷上档次!
如果你是第一次使用Python的话,强烈建议安装easy_install和pip,他们相当于Linux下的apt-get或者yum,非常好用。具体安装教程我就不写了,大家需要的可以百度一下。
如果你不愿意使用这两种方式安装,也可以分别下载三个安装包进行安装。
wxPython :打开以后选择对应你的系统以及python版本的安装包进行下载,下载完双击安装。
NumPy:打开以后点击按钮进行下载,下载完参照INSTALL.txt文件进行安装。
Matplotlib:打开以后点击按钮进行下载,下载完参照INSTALL文件进行安装。
安装好上述文件之后,我们就可以开始使用Pylot了。你没看错,Pylot本身不需要安装。
3、Pylot使用
我们先从一个实例入手,然后详细讲一下Pylot的各种参数。
首先需要配置一下testcases.xml这个文件。这个文件包含了需要测试的目标url以及具体的测试内容。
大家打开testcases.xml之后可以看到两个<case>......</case>,因为我们只是要一个简单的实例,所以我们把第二个<case>....</case>删掉,然后把第一个<case>....</case>里面的<url></url>改成你需要测试的url。我的就是<url>http://www.langman1dian.com</url>。改好之后整个文章内容是这样的
<testcases> <!-- SAMPLE TEST CASE --> <case> <url>http://www.langman1dian.com</url> </case> --> </testcases>
好了,保存关闭。
然后我们就可以开始测试了。
什么?你说太快了?没错,就是这么快!
在命令行输入
python pylot -a 50
然后回车,你就可以看到测试开始了。
这里的 -a 参数就是设置用户数,也就是你想要模拟同时访问的人数。
4、参数详细说明
Pylot有很多参数,我详细介绍一下:
|
设置同时访问用户数量 |
|
设置总测试时间(秒) |
|
设置提升量(秒),我也没太搞懂这个是什么意思 |
|
设置访问间隔(毫秒) |
|
设置要使用的xml文件,默认testcase.xml |
|
设置输出文件路径 |
|
设置测试名称 |
|
设置是否需要日志信息 |
|
设置是否开启锁定模式,如果开启会锁定输出直到测试结束 |
|
设置是否使用图形界面 |
|
设置xml-rpc监听的端口 |
常用的就是 -a -d -i -g,其他的不太常用,有几个我也搞不太清楚是什么意思。。。大家如果有知道的可以告诉我一下。
大家也看到了,使用-g选项的话就可以开启图形界面,图形界面我就不详细介绍了,虽然有几个英文单词吧,但是大家应该一眼就能看明白怎么用了,还是挺方便的。
如果你不想每次都手动设置参数,可以修改core文件夹里的config.py文件,这个文件是Pylot默认加载的配置。
好了,基本的介绍就到这里吧,对我来说知道这些已经足够用了,大家如果想看更深入的,比如设置cookie以及远程启动测试脚本等等进阶部分的话可以查看:Pylot官方教程。
5、查看测试结果
Pylot可以将测试结果转化成表格以及图的方式展示出来,测试完成后会在results文件夹中生成以当前日期命名的文件夹,打开之后可以看到一个html文件,这个就是测试结果了。
我们来看一个Pylot官方提供的例子吧:测试结果
这是第一部分。
最上面分别是结果的生成时间、测试的开始时间和测试的结束时间。
Workingload Model里分别是测试总时间、用户数以及提升(不太懂什么意思)和间隔时间。
Results Summary里是测试结果统计,可以看到总请求数(requests)、总错误数(errors)和总接受数据量(data received)。
最下面是访问时间统计以及流量统计。
avg是平均访问时间,stdev是标准差,min是最小值,max是最大值。50th %表示 排在50%位置(也就是中间位置)的访问时间,其他以此类推。
这是第二部分。
第一张图表示的是测试时间与响应时间的关系,可以看到随着测试时间增大,响应时间也在增大。
第二张图表示的是测试时间和每秒请求数量的关系,可以看到随着测试时间增大,每秒请求数也在增大。
第三部分我就不截图了,就是具体的每个用户的信息。
6、总结
好了,Pylot的基本介绍就到这里了,第一次写技术文章,如果有不合适的地方欢迎大家提建议。自己技术有限,如果有什么错误或者遗漏的地方也欢迎大家指正!
谢谢。