jmeter异步请求测试_使用JMeter对异步HTTP / REST服务进行压力/负载测试
jmeter異步請求測試
盡管我一直在使用JMeter進行Web應用程序的壓力測試和負載測試好幾次,但我們還是花了一些時間才弄清楚如何使用該工具測試基于異步HTTP / REST的服務。 對我們來說,我是一個程序員的同伴– Holger Staudacher ,我很榮幸能與一個項目一起工作–以及我謙卑的自我。
當Holger根據(jù)對上述項目進行功能和集成測試的經(jīng)驗開發(fā)出Restfuse時 ,我們決定使用JMeter進行壓力和負載測試。 被測軟件的主要服務處理上傳到特定URL的數(shù)據(jù)結構。 如果上傳過程成功,則返回指向包含處理結果的資源的URL。 產(chǎn)生的資源無法立即使用-處理需要一段時間。 因此,輪詢可用于在資源可用時檢索資源1 。
我們的目標是在一次測試中測量上傳數(shù)據(jù)結構,處理數(shù)據(jù)和下載結果資源所花費的時間。 同時與多個用戶一起運行這樣的測試應該使我們對系統(tǒng)的吞吐量功能有一個良好的印象。 聽起來不太復雜,但是…
…我們使用JMeter機載功能為上一段中描述的場景編寫測試計劃的第一種方法效果不佳。 計劃既不可理解,也不是(更糟的是)使測量結果毫無意義。 特別是將上載請求和輪詢循環(huán)與事務控制器一起限制似乎會對計時器產(chǎn)生一些意外的副作用。 因此,經(jīng)過一段時間的Google額外研究后,我偶然發(fā)現(xiàn)了JavaSamplerClient API ,這是我以前所不知道的。
stackoverflow.com上有一個條目,描述了如何擴展AbstractJavaSamplerClient ( JavaSamplerClient的實現(xiàn))并在JMeter使用它。 因此,這就是解決我們的問題的方法。 我們創(chuàng)建了一個覆蓋runTest(JavaSamplerContext)的AbstractJavaSamplerClient擴展。 在該方法中,我們使用HttpClient執(zhí)行上載和輪詢請求。 一旦輪詢請求成功檢索到處理結果,所有標頭和內(nèi)容信息都將存儲在SampleResult實例中。 后者由覆蓋的測試采樣器方法返回,由JMeter進行進一步處理–非常簡單2 。
創(chuàng)建包含自定義JavaSampleClient的jar并將其放入JMeter安裝目錄下的lib/ext/文件夾后,可以將Sampler類型的Java Request添加到Thread Group 。 這使您可以選擇和配置自定義采樣器,如下圖所示:
使用JavaSamplerClient使我們的測試計劃變得非常簡單,并允許我們使用通用的JMeter結果測量功能,例如在Graph Results視圖中所示:
當然,測量結果現(xiàn)在是合理的……
由于我們不得不花很長時間才能做到這一點,所以我認為我們的解決方案也可能對其他人也很感興趣-這就是寫這篇文章的原因。 但是,如果有我們沒有注意到的更簡單的解決方案,也很高興收到您的來信。 因此歡迎提供反饋
參考:來自Code Affine博客的JCG合作伙伴 Frank Appel的JMeter對異步HTTP / REST服務進行壓力/負載測試 。
翻譯自: https://www.javacodegeeks.com/2012/11/stressload-testing-of-asynchronous-httprest-services-with-jmeter.html
jmeter異步請求測試
總結
以上是生活随笔為你收集整理的jmeter异步请求测试_使用JMeter对异步HTTP / REST服务进行压力/负载测试的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 免费网络研讨会:调试生产中Java的新方
- 下一篇: 电脑怎么设置电信宽带账号密码忘了怎么办啊