日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

分享一款Web压力测试工具Pylot

發布時間:2023/12/10 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分享一款Web压力测试工具Pylot 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://www.cnblogs.com/limengqiang/archive/2013/02/07/Pylot.html

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 = 1 DURATION = 60 # secs RAMPUP = 0 # secs INTERVAL = 0 # millisecs TC_XML_FILENAME = 'testcases.xml' OUTPUT_DIR = None TEST_NAME = None LOG_MSGS = FalseGENERATE_RESULTS = True SHUFFLE_TESTCASES = False # randomize order of testcases per agent WAITFOR_AGENT_FINISH = True # wait for last requests to complete before stopping SMOOTH_TP_GRAPH = 1 # secs. smooth/dampen throughput graph based on an interval SOCKET_TIMEOUT = 300 # secs COOKIES_ENABLED = TrueHTTP_DEBUG = False # only useful when combined with blocking mode BLOCKING = False # stdout blocked until test finishes, then result is returned as XML GUI = 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文本文件,因此你可以導入到您最喜愛的電子表格處理數字,生成統計數據,并創建圖表。


總結

以上是生活随笔為你收集整理的分享一款Web压力测试工具Pylot的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。