Web效能測試自動化方案

來源:互聯網
上載者:User

常見的效能測試是這樣的:

有人開發了百度知道,然後,想知道單機的最大並發處理量是多少。這就需要效能測試了。然後,我們常見的效能測試方法是:

1.apache的ab;

2.JMeter;

3.loadrunner;

4.自己開發的工具。

先大致的評價下上面的幾個方法:1.apache的ab。這東西,用起來很簡單,就一個命令。缺點就是,可定製差,使用不是很方便。2.JMeter真的很強大,我們的效能測試自動化,就是使用JMeter實現的;3.loadrunner,這東西要收費的,功能很強大,但是自動化方面,不清楚。直接入正題,看看怎麼實現效能測試自動化。

效能測試是很耗費時間、人力的事情,每次測試都需要有人來值守。在這裡,提供一個JMeter和JMeter plugins,一起配合使用達到的效能測試自動化。

 

一、什麼是JMeter?

 

JMeter是開源的效能測試工具,能夠完成很多的測試工作。詳細的可以參考:http://jmeter.apache.org。

1.1安裝

先安裝JMeter plugins,按照這裡的步驟來安裝。https://code.google.com/p/jmeter-plugins/wiki/PluginInstall

1.2 編寫case

在windows下開啟jmeter.bat,就可以看到編輯頁面了。如:

第二步:右鍵測試計劃,建立線程,配置線程數及迴圈次數。這裡我們配置100*100 =10000次請求。

 

第三步:線上程上右鍵,選擇add->sampler->Http Request Sampler。然後,配置好伺服器位址,連接埠地址,get或者post的參數。

第四步:線上程組上右鍵,選擇add->Assertions->Response Assertion. 配置斷言的參數,這樣就可以讓Jmeter為我們判斷哪些請求是錯誤的。

 

第五步:在測試計劃上右鍵,選擇add->Timer->Constant Throughput Timer,配置每分鐘的流量。這樣就可以有一個穩定的壓力。這裡要注意,在測試計劃上右鍵,而不是線上程組,這樣這個timer才會生效。我們要400的壓力,就需要400*60 = 24000.然後,下面的計算選擇:all active threads.

最後,可以點擊運行,查看是否我們需要的壓力值,查看地址是否正確。 如果OK,就可以點擊儲存了,儲存為performance.jmx。到這裡,我們就完成case的編寫了。對於複雜的case,可以添加cookie manager等來支援。

二、在linux上執行

我們可以直接執行,然後查看壓力等情況。但是,個人的PC機難免會有很多的限制,壓力可能起不上去,而且不方便我們持續整合,這裡可以在linux上跑。

         將jmeter的tar.gz包放到機器上,然後配置好java,這裡需要java5以上,公司機器的預設java是不符合要求的。

         可以使用如下命令:

                   sh  ./jmeter.sh  -n  –t  performance.jmx  -l  log.jlt

上面的命令,-n是不適用ui介面,也就是在linux下跑,-t是選擇指定的測試計劃;-l是將產生的結果儲存為log.jlt,這也是我們後面提供給hudson的結果檔案。

         就可以看到Jmeter已經開始運行了。

三、hudson外掛程式安裝 為了分析jmeter的結果,我們需要在hudson上安裝一個Hudson Performance Plugin外掛程式,

然後,在job的配置裡面,就可以規定我們認為OK的壓力值。

四、hudson執行結果 可以看到中,有很多直觀的資料,讓我們對代碼的效能有直觀的瞭解。另外,點擊Performance Trend,就可以看到更多的資料。比如那些請求是失敗的,結果是什麼。

至此,完整的壓力測試就OK了。

五、後續提升

上面的測試,最多隻算是壓力測試自動化,而不能成為效能測試自動化。真正的效能測試自動化,應該包含對CPU, IO, Mem等伺服器資源的詳盡分析。另外,還需要給出其最大的瓶頸是什麼,能夠承受的極限壓力是什麼。還需要自動的調節壓力,並且在某些情況下,還需要分布式的壓力測試。

         所以,後期還會繼續研究,如何完成:

         1.服務端CPU、IO、Mem資源監控;

         2.自動壓力調節;

         3.分布式壓測

         如此,便可以讓效能測試完全自動化,並且有一個詳盡的報表,能夠將人力從手工的效能測試解放出來,提高效能測試的準確度及縮短效能測試的時間,並且可以不用三更半夜的壓環境了~
這個就可以查看JMeter plugins的代碼,然後,寫一個外掛程式,來支援。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.