Pylot——跨平台的网站压力测试工具

这两天因为报名了一个实习生,考虑到面试时候可能问到网站并发,就准备自己做一下压力测试。

因为我是新手,所以在找工具这个阶段就用了比较长时间。最后发现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下载按钮按钮就会跳转到下载页面,然后点最上面那个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:打开以后点击numpy下载按钮按钮进行下载,下载完参照INSTALL.txt文件进行安装。

  Matplotlib:打开以后点击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有很多参数,我详细介绍一下:

  

-a, --agents=NUM_AGENTS
设置同时访问用户数量
-d, --duration=DURATION
设置总测试时间(秒)
-r, --rampup=RAMPUP
设置提升量(秒),我也没太搞懂这个是什么意思
-i, --interval=INTERVAL 
设置访问间隔(毫秒)
-x, --xmlfile=TEST_CASE_XML
设置要使用的xml文件,默认testcase.xml
-o, --output_dir=PATH
设置输出文件路径
-n, --name=TESTNAME
设置测试名称
-l, --log_msgs
设置是否需要日志信息
-b, --blocking  
设置是否开启锁定模式,如果开启会锁定输出直到测试结束
-g, --gui  
设置是否使用图形界面
-p, --port=PORT
设置xml-rpc监听的端口

  常用的就是 -a -d -i -g,其他的不太常用,有几个我也搞不太清楚是什么意思。。。大家如果有知道的可以告诉我一下。

  大家也看到了,使用-g选项的话就可以开启图形界面,图形界面我就不详细介绍了,虽然有几个英文单词吧,但是大家应该一眼就能看明白怎么用了,还是挺方便的。

  如果你不想每次都手动设置参数,可以修改core文件夹里的config.py文件,这个文件是Pylot默认加载的配置。

  好了,基本的介绍就到这里吧,对我来说知道这些已经足够用了,大家如果想看更深入的,比如设置cookie以及远程启动测试脚本等等进阶部分的话可以查看:Pylot官方教程

5、查看测试结果

  Pylot可以将测试结果转化成表格以及图的方式展示出来,测试完成后会在results文件夹中生成以当前日期命名的文件夹,打开之后可以看到一个html文件,这个就是测试结果了。

  我们来看一个Pylot官方提供的例子吧:测试结果

  pylot测试结果

  这是第一部分。

  最上面分别是结果的生成时间、测试的开始时间和测试的结束时间。

  Workingload Model里分别是测试总时间、用户数以及提升(不太懂什么意思)和间隔时间。

  Results Summary里是测试结果统计,可以看到总请求数(requests)、总错误数(errors)和总接受数据量(data received)。

  最下面是访问时间统计以及流量统计。

  avg是平均访问时间,stdev是标准差,min是最小值,max是最大值。50th %表示 排在50%位置(也就是中间位置)的访问时间,其他以此类推。

  第二部分

  这是第二部分。

  第一张图表示的是测试时间与响应时间的关系,可以看到随着测试时间增大,响应时间也在增大。

  第二张图表示的是测试时间和每秒请求数量的关系,可以看到随着测试时间增大,每秒请求数也在增大。

  第三部分我就不截图了,就是具体的每个用户的信息。

6、总结

  好了,Pylot的基本介绍就到这里了,第一次写技术文章,如果有不合适的地方欢迎大家提建议。自己技术有限,如果有什么错误或者遗漏的地方也欢迎大家指正!

  谢谢。

 

 

posted @ 2013-04-19 09:07 numbbbbb 阅读(...) 评论(...) 编辑 收藏