欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

Pylot网站Web服务器性能和负载压力测试-适用Windows可绘制图表

为了能够准确地评估网站服务器对网络流量的承受能力,我们一般会采取模拟网站用户访问,通过不断地增加并发数,延长访问时长,从而最终得出网站Web服务器的性能和负载能力。当然也可以通过Web压力测试,来完善和改进网站代码设计。

网站服务器压力Web性能测试中有提到常用的三个Web服务压力测试工具:Apache Bench,Webbench,http_load,这也是大家使用得比较多的负载测试软件,只不过,Apache Bench,Webbench,http_load适合于Linux平台上运行。

有没有可以在自己的本地PC的Windows系统运行网站Web压力测试软件呢?今天要说的Pylot,就是一款适合在Windows电脑上运行的服务器压力测试程序,这是一款开源的用以测试 Web Service性能和扩展性的工具,它运行HTTP负载测试,这对于制定容量计划、确定基准点、分析系统瓶颈以及系统调优都非常有用。

在使用过程中,Pylot会发起并发请求(HTTP Requests),检验服务器响应,以及带有相关指标的报表。它通过GUI或者Shell/Console来执行和监视对被测试网站的测试过程,如果配合上numpy、matplotlib就可以自动绘制图表,形象地展示服务器压力测试全过程。

Pylot这款Web压力测试软件的特点是:HTTP和HTTPS(SSL)支持、多线程负载生成器、自动cookie处理、响应验证与正则表达式、执行/监控控制台、实时统计、结果报告和图形、定制的timer、GUI模式、外壳/控制台模式、跨平台。

为了避免网络延时等各方面的原因干扰服务器压力测试过程,一般选择同网络之间的服务器相互测试,更多的压力测试工具和服务器搭建平台有:

Pylot网站Web服务器性能和负载压力测试-适用Windows可绘制图表

一、运行Pylot测试前的相关准备工具

1、下载并安装python,这是python下载地址

下载并安装python

2、设置环境变量。安装好了python后,进入Windows的“环境变量”设置界面。

Pylot设置环境变量

3、在“系统变量”中编辑“Path”。

Pylot编辑Path

4、在“变量值”最后加上 ;C:\Python25 (注:这里python是默认安装在C盘中)

Pylot添加路径在后面

5、设置完成后,执行Windows的运行,输入 python 。

Pylot执行命令

6、如果显示以下内容,则表示python已经成功在你的Windows电脑上安装并运行了。

Pylot成功显示

7、下载并安装numpy,这是numpy下载地址。(32位)

8、下载并安装matplotlib,这是matplotlib下载地址。(32位)

9、注:numpy和matplotlib是可选的,不安装numpy和matplotlib,直接使用python+Pylot也可以进行压力测试,只不过不会自动绘制出图表出来。

10、下载并解压  ,这是Pylot下载地址

Pylot进入文件目录

二、Pylot运行测试方法

1、解压Pylot,进入到pylot_1.26文件夹中,打开 testcases.xml,把“https://www.example.com/”改为你要测试的网址,然后保存文件。

Pylot修改网址

2、点击“开始”-“运行”,输入cmd,点击“确定”,打开DOS窗口,进入pylot的目录。

Pylot进入DOS

3、Pylot测试的命令是:python run.py -a 20 -d 10,其中-a表示是20个并发连接,-d表示持续测试时间10秒。

4、运行命令后,你会看到命令执行过程,运行结束后,就可以看到基本的压力测试数据,如请求数、错误数、响应时间、接收数据量等等。(点击放大)

Pylot开始进行压力测试

三、Pylot网站压力测试结果报告解读

1、Pylot运行完成后,会在Pylot程序的目录results中生成一个按照时间命令的文件夹,这里就是详细的Pylot测试报告。

Pylot详细报告

2、在Pylot报告中,Results Summary是概况,总请求数、错误请求数、数据流量,Response Time (secs)是指随着测试完成度增加而变化响应时间,Throughput (req/sec)是指随着测试完成度的增加而显示的每秒请求数。

Pylot报告解读

3、下方有Response Time图表。(点击放大)

Pylot响应时间图表

4、还有Throughput请求数图表。(点击放大)

Pylot请求图表

5、Agent Details就是详细列出每一个客户连接时服务器的响应时间、请求流量等。

Pylot客户连接详情

6、在最后,Pylot还会列出响应的最短时间和最长时间。

Pylot最长响应时长

四、Pylot网站压力测试软件小结

1、Pylot实际上只需要python就可以正常运行,如果不安装numpy和matplotlib,则在Pylot的压力测试报告中不会显示图表,python成功运行的关键设置好Windows环境变量。

Pylot不显示图表

2、经过部落测试,python 2.5、python 1.26、numpy-1.4.1(32位)、matplotlib-1.1.0(32位)在Windows XP中测试通过,其它的版本会出现莫名的不兼容性问题。

文章出自:免费资源部落 https://www.freehao123.com/ 版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。

域名注册
域名注册
 

您或许对下面这些文章有兴趣:                    本月吐槽辛苦排行榜

在这个部落村庄里,已经有59 位神马家族成员冒出泡来在农场开始干活了
  • 小哀 1

    沙发~~~~~~~~

    这是农场的第 1 块农田,部落批准 [小哀] 在[2014-2-25 18:12]开垦完成.
  • 小猫猫

    python 显示不是内部命令。

    ksharpdabu 回复:

    @小猫猫, 你要安装python,并且设置系统变量。否则只能用绝对路径,或者在ide中调用

    KK 回复:

    @ksharpdabu, 按照步骤一步步来的,到了“二、Pylot运行测试方法”的“3、Pylot测试的命令是:python run.py -。。”就提示python不是内部命令。。。。

    qi 回复:

    @KK, 有没有先进入到python目录?[img]https://www.freehao123.com/wp-content/uploads/2014/02/pylot_09.gif[/img]

    小呗 回复:

    @qi, 不需要进入,Python配置好就可以了

    KK 回复:

    @小猫猫, 装了Python,也设置了系统变量,完全按照步骤来的。但还是运行python run.py -a 20 -d 10时提示,python不是内部命令

    qi 回复:

    @KK, 重启电脑了吧?先确认一下python是否成功在你的Windows电脑上安装并运行了?

    KK 回复:

    @qi, 确认了成功安装并运行了哟

    这是农场的第 2 块农田,部落批准 [小猫猫] 在[2014-2-25 18:17]开垦完成.
  • 有时很无奈 1

    地板

    这是农场的第 3 块农田,部落批准 [有时很无奈] 在[2014-2-25 18:19]开垦完成.
  • 逗妇乳 19

    尼玛,啥都没了

    arno 回复:

    @逗妇乳, 挤挤

    不认识 回复:

    @逗妇乳, 挤挤

    一实不二 回复:

    @逗妇乳, 留名

    小白兔 回复:

    @逗妇乳, 插

    这是农场的第 4 块农田,部落批准 [逗妇乳] 在[2014-2-25 18:20]开垦完成.
  • 余人 9

    火钳

    这是农场的第 5 块农田,部落批准 [余人] 在[2014-2-25 18:32]开垦完成.
  • 潮流台 11

    :eek: 表示看不懂

    这是农场的第 6 块农田,部落批准 [潮流台] 在[2014-2-25 18:38]开垦完成.
  • Kung 23

    好吧..我试试自己的网站- –

    这是农场的第 7 块农田,部落批准 [Kung] 在[2014-2-25 18:49]开垦完成.
  • 疯子 12

    求测试 .. sharebar.org

    这是农场的第 8 块农田,部落批准 [疯子] 在[2014-2-25 18:52]开垦完成.
  • 小清新头像吧 4

    挺给力的呀。。

    这是农场的第 9 块农田,部落批准 [小清新头像吧] 在[2014-2-25 18:57]开垦完成.
  • 后排,表示没条件做此事……

    这是农场的第 10 块农田,部落批准 [无纯洁] 在[2014-2-25 18:59]开垦完成.
  • 陌羽 3

    觉得又是DD类型的,哈哈

    qi 回复:

    @陌羽, 也可以用作此类用途。

    陌羽 回复:

    @qi, 另求论坛邀请码 :twisted:

    qi 回复:

    @陌羽, 用这个:a379ww

    陌羽 回复:

    @qi, :twisted: :twisted: 蟹蟹

    这是农场的第 11 块农田,部落批准 [陌羽] 在[2014-2-25 19:51]开垦完成.
  • 小新 6

    虚拟空间就不参与了哈

    qi 回复:

    @小新, 这个是在本地电脑上使用的。

    小新 回复:

    @qi, 其实我的意思是不敢弄我这小空间 万一挂了我就哭了。。

    qi 回复:

    @小新, 博主不是用的VPS吗?

    小新 回复:

    @qi, 不是的呢 暂时用不到 只是虚拟空间。。

    这是农场的第 12 块农田,部落批准 [小新] 在[2014-2-25 20:09]开垦完成.
  • Chun Yu 2

    搶前排

    这是农场的第 13 块农田,部落批准 [Chun Yu] 在[2014-2-25 22:22]开垦完成.
  • 不认识 17

    建议虚拟空间不要测试,可能会被当成攻击,封掉了

    qi 回复:

    @不认识, 对,可能会导致网站无法访问。

    这是农场的第 14 块农田,部落批准 [不认识] 在[2014-2-26 10:07]开垦完成.
  • 夕虚 4

    努力码字中0.0语文渣表示作文是我的弱项0.0

    这是农场的第 15 块农田,部落批准 [夕虚] 在[2014-2-26 16:58]开垦完成.
  • ksharpdabu 3

    现在web卡卡有了压力测试和负载测试。可以用这个测自己网站能抗多少并发量

    qi 回复:

    @ksharpdabu, 大一点的好像要验证网站权限。

    ksharpdabu 回复:

    @qi, 验证很快的。而且即使不验证,用那些用户并发,很多博客其实都扛不住的。除非有防火*或者性能真的不错,又或者限制了同一个人的发送请求数。

    qi 回复:

    @ksharpdabu, 一般的虚拟主机估计扛不住并发50的访问量。

    小呗 回复:

    @qi, 我用了1000访问量

    qi 回复:

    @小呗, 扛住了?

    这是农场的第 16 块农田,部落批准 [ksharpdabu] 在[2014-2-26 17:52]开垦完成.
  • Pang 5

    签到

    这是农场的第 17 块农田,部落批准 [Pang] 在[2014-2-26 18:29]开垦完成.
  • 可爱颂 4

    可以过来多瞧瞧了。

    这是农场的第 18 块农田,部落批准 [可爱颂] 在[2014-3-7 12:28]开垦完成.
  • Aivier 8

    负载测试首先要有个性能足够的服务器…这就是个问题

    qi 回复:

    @Aivier, 是的,不过也可以在本地PC上测试。

    Aivier 回复:

    @qi, 那也要有足够快的网络…

    这是农场的第 19 块农田,部落批准 [Aivier] 在[2014-3-13 17:27]开垦完成.
  • 听雨剑主

    ab好像本地机器也可以用,只不过功能没有Pylot这么强大

    这是农场的第 20 块农田,部落批准 [听雨剑主] 在[2014-3-26 14:52]开垦完成.
  • 小寒

    什么都弄好了,好像结果不对。

    qi 回复:

    @小寒, 有什么错误提示?

    这是农场的第 21 块农田,部落批准 [小寒] 在[2014-7-17 11:04]开垦完成.
  • 小曲

    cmd窗口的requests和results文件中的requests怎么还不一样?

    qi 回复:

    @小曲, 生成结果时会有变动。

    小曲 回复:

    @qi, 我设计了100个并发连接,持续40s,怎么有1000多个请求?results里面的数据不懂,平均响应时间,是指处理一个request的时间还是出来一个agent的时间?
    test duration (secs) 78
    agents 100
    rampup (secs) 0
    interval (millisecs) 0

    Results Summary
    requests 1321
    errors 0
    data received (bytes) 50677523

    Response Time (secs)
    avg 3.304
    stdev 7.699
    min 0.205
    Throughput (req/sec)
    avg 20.968
    stdev 13.481
    min 1

    qi 回复:

    @小曲, 是处理一个request的响应时间。并发连接不等于请求,一个连接可以发出多个请求。

    chris 回复:

    @qi, E:\learning\pylot_1.26>python run.py -a 20 -d 10
    Traceback (most recent call last):
    File “run.py”, line 118, in
    import ui.console as pylot_console
    File “E:\learning\pylot_1.26\ui\console\__init__.py”, line 1, in
    from pylot_console import *
    File “E:\learning\pylot_1.26\ui\console\pylot_console.py”, line 28, in
    import win.cpos as cpos
    File “E:\learning\pylot_1.26\ui\console\win\cpos.py”, line 25, in
    getpos = _consolepos.getpos
    NameError: name ‘_consolepos’ is not defined
    请问怎么回事啊

    qi 回复:

    @chris, 好像是软件没有正常安装。

    杰哥 回复:

    @chris版本问题 python2.5或2.6才可以 你可以cmd里打python可以看版本的

    这是农场的第 22 块农田,部落批准 [小曲] 在[2015-7-30 10:56]开垦完成.
  • 丹丹

    为什么我测试完毕告诉我有很多错误数据?c:\pylot_1.26>python run.py -a 800 -d 20

    ————————————————-
    Test parameters:
    number of agents: 800
    test duration in seconds: 20
    rampup in seconds: 0
    interval in milliseconds: 0
    test case xml: testcases.xml
    log messages: False

    Started agent 800

    All agents running…

    [################100%##################] 20s/20s

    Requests: 4732(请求)
    Errors: 4177(错误)
    Avg Response Time: 2.526(平均响应时间

    Avg Throughput: 235.69(Avg 吞吐量)
    Current Throughput: 162(当前的吞吐量

    Bytes Received: 1386390(数据接收字节)
    急求啊

    qi 回复:

    @丹丹, 表示服务器的压力已经达到一定的瓶颈了,尝试把连接数降低一下测试看看。

    丹丹 回复:

    @qi, 好的,我试试,20s大约使用于多少的并发你知道吗?并发是只能导致网络慢吗?不会出现空白页面还是什么错误吧?不好意思哈,我刚接触压力测试,问题有点多 :arrow:

    这是农场的第 23 块农田,部落批准 [丹丹] 在[2016-1-13 14:53]开垦完成.
 

普通分类: