西西软件下载最安全的下载网站、值得信赖的软件下载站!

首页西西教程其它教程 → Web压力测试工具Pylot 安装使用教程

Web压力测试工具Pylot 安装使用教程

相关软件相关文章发表评论 来源:西西整理时间:2013/2/7 20:09:12字体大小:A-A+

作者:李蒙强点击:0次评论:1次标签: 测试工具

  • 类型:硬件优化大小:34.6M语言:中文 评分:5.0
  • 标签:
立即下载

1、什么是Pylot?

Pylot是一个免费的开源工具,用于测试Web服务的性能和可扩展性。它运行HTTP负载测试,这是有用的容量规划,基准,分析和系统调整。

Pylot产生并发负载(HTTP请求),验证服务器的响应,并制作报告的度量。测试套件的执行和监测,从一个GUI或shell /控制台。

Pylot基于Python开发,和著名的Apache压力测试工具ab一样,默认在命令行运行,也可以通过参数触发GUI界面,当然前提是安装了wxPython的。

2、Pylot如何工作?

你开始在一个XML文件(testcases.xml)中定义你的测试用例。测试用例是验证你指定的请求(URL,Method,Body等)。可以验证服务器响应的正则表达式匹配的内容,HTTP状态码。您可以通过调整负载的工作量控制GUI或命令行设置,然后再开始测试运行(数目的代理,请求的时间间隔,上升时间,测试时间)。这些设置,您可以根据不同的负载情况下的模型试验。在运行加载的情况下,并传递到负载产生引擎。代理调度和运行,同时发送HTTP请求到你的web服务。它在执行过程中生成实时的统计和错误报告,通过这个报告可以很方便的进行监控。

3、Pylot应用场景

开发人员,测试人员和性能工程师需要测试和调整他们的Web服务的性能和可扩展性。也可以使Python程序员集成到更大的测试套件。使用这个工具可以使你更加熟悉HTTP,XML和性能测试。

4、产品特点

HTTP和HTTPS(SSL)支持

多线程负载生成器

自动cookie处理

响应验证与正则表达式

执行/监控控制台

实时统计

结果报告和图形

定制的timer

GUI模式

外壳/控制台模式

跨平台

5、入门指南

平台:

控制台和阻塞模式

控制台和隔离模式运行在所有平台上的Python 2.5 +可以安装。视窗XP,Vista中,Ubuntu 8.04/8.10,华硕Eee PC,Mac的OS测试。

GUI模式

Pylot,GUI将运行在所有平台上支持Python和wxWidgets。大多被开发的GUI测试在Windows,但Linux和Mac看起来体面。应用程序代码是纯Python和使用一个跨平台的工具包。

安装Pylot

第1步:下载并解压缩最新的Pylot发布

获取最新版本:下载Pylot

第2步:安装Python 2.5 +

获取安装程序从这里开始:http://www.python.org/download

第3步:安装wxPython(可选 - 用于GUI模式)

从这里获取安装程序:http://www.wxpython.org/download.php

第4步:安装numpy的(可选 - 用于报告以图表)

从这里获取安装程序:http://sourceforge.net/projects/numpy

第5步:安装matplotlib的(可选 - 用于报告以图表)

从这里获取安装程序:http://sourceforge.net/projects/matplotlib

第6步:运行Pylot

GUI模式:

> python run.py -G

控制台和阻塞模式 - 命令行选项:

用法:run.py [选项] ARGS-A, - 代理= NUM_AGENTS的代理数量-D, - 持续时间:测试时间以秒为单位-r时, - 斜坡上升=斜坡上升:斜坡上升在几秒钟内-I, - 间隔=间隔:间隔时间(以毫秒为单位)-X - XMLFILE = TEST_CASE_XML:测试的情况下,XML文件-O, - OUTPUT_DIR = path:输出目录-N, - = testname代表:姓名测试-L, - log_msgs:日志消息-B, - 阻塞:阻塞模式-G, - GUI:启动GUI-P, - 端口PORT:XML-RPC监听端口

远程启动Pylot:

Pylot包含一个XML-RPC服务器,可以启动,这样你就可以开始测试与远程客户端。

配置选项:

“的文件/核心/ config.py的包含了一些全局配置选项。您可以设置某些defauls和改变某些行为。如果在命令行上指定这些选项是覆盖。

AGENTS = 1DURATION = 60 # secsRAMPUP = 0 # secsINTERVAL = 0 # millisecsTC_XML_FILENAME = 'testcases.xml'OUTPUT_DIR = NoneTEST_NAME = NoneLOG_MSGS = FalseGENERATE_RESULTS = TrueSHUFFLE_TESTCASES = False # randomize order of testcases per agentWAITFOR_AGENT_FINISH = True # wait for last requests to complete before stoppingSMOOTH_TP_GRAPH = 1 # secs. smooth/dampen throughput graph based on an intervalSOCKET_TIMEOUT = 300 # secsCOOKIES_ENABLED = TrueHTTP_DEBUG = False # only useful when combined with blocking mode BLOCKING = False # stdout blocked until test finishes, then result is returned as XMLGUI = False

使用Pylot

步骤1:创建测试案例

测试案例名为“testcases.xml”的,或在命令行上指定一个不同的XML文件中声明一个XML文件。这是的格式测试引擎可以理解的。

使用下面的语法定义一个测试例。只有URL元素是必需的。

<case> <url>URL</url> <method>HTTP METHOD</method> <body>REQUEST BODY CONTENT</body> <add_header>ADDITIONAL HTTP HEADER</add_header> <verify>STRING OR REGULAR EXPRESSION</verify> <verify_negative>STRING OR REGULAR EXPRESSION</verify_negative> <timer_group>TIMER GROUP NAME</timer_group></case>

下面是一个例子,最简单的可能的测试案例文件。它包含了一个测试案例,试运行期间,将连续执行。的测试用例包含一个URL下测试的服务。由于身体没有一种方法或定义,它会默认发送一个HTTP GET到这个资源。由于没有验证的定义,它会通过/失败测试案例的基础上的HTTP状态代码(通过,如果状态是<400)。

<testcases> <case> <url>http://www.example.com/foo</url> </case></testcases>

我们可以添加正面和负面的验证。一个积极的验证是在响应主体必须包含一个字符串或正则表达式。负的验证是一个字符串或正则表达式,必须不包含在响应主体。

<case> <url>http://www.goldb.org/foo</url> <verify>Copyright.*Corey Goldberg</verify> <verify_negative>Error</verify_negative><case>

饼干:

Cookies是自动处理的。如果收到一个响应的“设置Cookie”头,cookie将被设置在头的后续请求并传回。

例:雅虎搜索的Web服务(REST API)

雅虎提供各种REST Web服务来访问搜索结果。在这个例子中,我将展示如何创建Pylot的REST API进行交互的测试用例。

下面是一个简单的GET请求对服务:

http://search.yahooapis.com/WebSearchService/V1/webSearch?appid=YahooDemo&query=foo

申请一个Pylot测试案例是这样的:

<case> <url>http://search.yahooapis.com/WebSearchService/V1/webSearch?appid=YahooDemo&amp;query=foo</url></case>

请注意符号(&)的URL逃脱的代码:“&”
这是becasue的某些字符(“<”和“&”)是非法的XML文件。由于我们是在一个XML文档definig测试用例,我们必须避开这些符号代码,或将它们放置在一个CDATA部分。

雅虎还允许POST数据块来传递查询参数。在这种情况下,我们还必须改变“内容类型”HTTP头:“应用程序/ x - www的形式,进行了urlencoded”。(Pylot默认为text / xml“)

下面是一个POST请求对服务:

<case> <url>http://search.yahooapis.com/WebSearchService/V1/webSearch</url> <method>POST</method> <body><![CDATA[appid=YahooDemo&query=webinject]]></body> <add_header>Content-type: application/x-www-form-urlencoded</add_header></case>

现在,我们知道如何创建单独的情况下,我们可以创建一个测试案例文件,其中包含几个这样的。在这个例子中,我们的测试情况下,文件包含Yahoo等搜索查询为:“富”,“酒吧”,“巴兹”

<testcases> <case> <url>http://search.yahooapis.com/WebSearchService/V1/webSearch?appid=YahooDemo&amp;query=foo</url> </case> <case> <url>http://search.yahooapis.com/WebSearchService/V1/webSearch?appid=YahooDemo&amp;query=bar</url> </case> <case> <url>http://search.yahooapis.com/WebSearchService/V1/webSearch?appid=YahooDemo&amp;query=baz</url> </case></testcases>

例如:SOAP API

谈任何HTTP API,我们可以模拟我们的测试用例。这个例子展示了如何将请求发送到一个SOAP服务。我们需要发送的SOAP信封将被封装在HTTP POST主体。

<case> <url>http://www.example.org/StockPrice</url> <method>POST</method> <add_header>Content-Type: application/soap+xml; charset=utf-8</add_header> <body><! [CDATA[ <!-- This is the SOAP Envelope --> <?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body xmlns:m="http://www.example.org/stock"> <m:GetStockPrice> <m:StockName>IBM</m:StockName> </m:GetStockPrice> </soap:Body> </soap:Envelope> ]]> </body></case>

例如:设置静态变量/参数

你可以在你的测试用例文件中定义的全局参数。这是非常有用的,如果你有一个值之间共享一些测试情况下,你经常改变。在下面的例子中,我们定义了一个“http_server”参数,然后使用该令牌在一个测试案例。

<testcases> <param name="http_server" value="http://www.example.com" /> <case> <url>${http_server}/foo</url> </case></testcases>

例如:基于文件的HTTP有效载荷

您可能希望,POST数据存储在一个外部文件中,而不是直接宣布它在你的测试用例XML文件。这是非常有用的,如果你有非常大的POST人体的或要发送的二进制数据不能被嵌入到XML。使用下面的语法将数据从一个文件,它张贴在运行。

<case> <url>http://www.example.com/foo</url> <method>POST</method> <body file="./myfile.dat"></body></case>

第2步:模型工作负载方案

定义的工作负载使用的用户界面上的控件。使用下面的选项。您可以创建一个的稳态或增加负载测试。

代理:代理(虚拟用户)来运行

斜坡上升时间跨度代理开始。他们将被均匀地分布在整个这段时间内。(参见下面的注释)

每个用户发送请求的时间间隔:间隔。每个用户代理的请求,节奏均匀的时间间隔(,除非反应,分析反应时间比较慢的文天生定义的时间间隔)

播放时间:时间跨度的测试

第3步:执行和监控

运行模式

控制台模式:在测试过程中,您可以查看实时统计在用户界面(UI)

阻塞模式:STDOUT被阻塞,直到测试结束后,返回结果为XML

GUI模式:管理和运行测试的GUI界面

测试运行结束时,自动生成一个HTML报告,表示测试结果和图表。

第4步:查看结果

当测试完成后,结果目录创建并自动生成一份报告,总结测试结果。它包括各种统计数据和图表,响应时间和吞吐量。结果报告的样本可以在这里看到:

报告样本

Pylot结果写入到CSV文本文件,因此你可以导入到您最喜爱的电子表格处理数字,生成统计数据,并创建图表。

    相关评论

    阅读本文后您有什么感想? 已有人给出评价!

    • 8 喜欢喜欢
    • 3 顶
    • 1 难过难过
    • 5 囧
    • 3 围观围观
    • 2 无聊无聊

    热门评论

    最新评论

    发表评论 查看所有评论(1)

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
    字数: 0/500 (您的评论需要经过审核才能显示)