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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用Jmeter的Websocket:获取性能数字

發(fā)布時間:2023/12/3 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Jmeter的Websocket:获取性能数字 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

問題:

我最近遇到了一個問題,該問題需要針對多個用戶測試SockJs / Stomp Spring Websocket代理的性能。 由于WebSocket本質(zhì)上是異步的,因此它比常規(guī)的http / https請求-響應(yīng)測試更加棘手。

解:

好了,無需解釋為什么Jmeter是執(zhí)行這種測試的很好的工具,但是需要一個插件使用stomp協(xié)議與Jmeter建立與服務(wù)器的websocket連接。

在這里,我發(fā)現(xiàn)此插件非常有用,因?yàn)樗_實(shí)處理了與服務(wù)器層建立Stomp協(xié)議連接的樣板代碼。

但是這個插件有一個局限性,一旦它創(chuàng)建了連接并訂閱了一個websocket主題,它便進(jìn)入睡眠狀態(tài),一旦它出來,它將在睡眠時間內(nèi)打印所有接收到的消息并結(jié)束其執(zhí)行。

這通常不適用于交互式應(yīng)用程序,在這些應(yīng)用程序中,我們的Websocket會根據(jù)其他用戶的各種活動/當(dāng)前用戶執(zhí)行的活動不斷接收通知,而不會停止其他屏幕功能。

因此,我們需要對上述插件進(jìn)行更改,以便websocket繼續(xù)監(jiān)聽消息,而我們的應(yīng)用程序繼續(xù)執(zhí)行其他各種活動。

實(shí)現(xiàn)方法非常簡單:

a)更改SockJsSampler.java文件,以最后刪除websocket的休眠和關(guān)閉。 它基本上是181和182行。

b)編寫一個擴(kuò)展AbstractJavaSamplerClient.java的新Java類。 該類負(fù)責(zé)偵聽進(jìn)入您的網(wǎng)絡(luò)套接字的消息。

c)現(xiàn)在我們有2個Sampleres(一個用于websocket,一個用于從websocket監(jiān)聽,它們可以通過隊(duì)列連接。在我的情況下,我使用ArrayBlockingQueue) 。

d)修改SockJsSampler以將消息放入此ArrayBlockingQueue中 。 這可以在handleframe方法中的插件的SockJsWebsocketSubscriptionHandler類中完成。

因此,想法是在線程組執(zhí)行開始時創(chuàng)建一次Websocket連接,并繼續(xù)用傳入消息填充隊(duì)列,并且在測試計劃的各個點(diǎn)上,使用在(b)點(diǎn)中創(chuàng)建的新示例作為Jmeter Java Request Sampler來讀取消息從隊(duì)列中驗(yàn)證數(shù)據(jù)。

關(guān)于在websocket上接收消息所花費(fèi)的時間,我們可以開始捕獲自定義采樣器啟動時的時間,并減去接收到其預(yù)期消息時的時間。 使用SampleResult API的result.sampleStart()和result.sampleEnd()可以更輕松地完成此操作,當(dāng)您從AbstractJavaSamplerClient擴(kuò)展此類時,該方法將在runTest方法中繼承。

注意 :如果要運(yùn)行多于1個線程的線程組來模擬多個用戶,則可能必須為每個線程設(shè)置1個ArrayBlockingQueue ,以便不同線程的偵聽器無法讀取消息。 這很重要,因?yàn)槲覀冃枰涀?#xff0c;我們只有1個websocket連接,所有線程都共享。 如果您打算讓所有線程都擁有自己的websocket連接,那么您不必?fù)?dān)心這一點(diǎn)。

翻譯自: https://www.javacodegeeks.com/2019/08/websockets-jmeter-getting-performance-numbers.html

總結(jié)

以上是生活随笔為你收集整理的使用Jmeter的Websocket:获取性能数字的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。