目錄
引言
背景說(shuō)明
步驟1:安裝插件JMeter WebSocket Samplers
步驟2:采集器使用
步驟3:腳本執(zhí)行
?結(jié)語(yǔ)
引言
在當(dāng)今高并發(fā)的網(wǎng)絡(luò)環(huán)境下,WebSocket協(xié)議已經(jīng)成為了最受歡迎的實(shí)時(shí)通信技術(shù)之一。然而,對(duì)于開發(fā)人員來(lái)說(shuō),如何有效地壓測(cè)WebSocket協(xié)議仍是一個(gè)挑戰(zhàn)。
Jmeter是一款功能強(qiáng)大、易用的負(fù)載測(cè)試工具,而它也可以輕松地對(duì)WebSocket協(xié)議進(jìn)行壓測(cè)。通過(guò)使用Jmeter測(cè)試WebSocket協(xié)議,您可以驗(yàn)證您的應(yīng)用程序在高并發(fā)場(chǎng)景下的性能表現(xiàn),并及時(shí)發(fā)現(xiàn)和解決潛在的性能問(wèn)題。
因此,如果您正在尋找一種可靠且高效的方式來(lái)測(cè)試WebSocket協(xié)議,那么使用Jmeter進(jìn)行WebSocket協(xié)議壓測(cè)將是您不錯(cuò)的選擇!
背景說(shuō)明
目前市面上的協(xié)議種類繁多,我們可以通過(guò)Jmeter添加插件實(shí)現(xiàn)腳本編寫,這里以WebSocket協(xié)議的業(yè)務(wù)壓測(cè)為例來(lái)說(shuō)明。
WebSocket的插件較多,本文以JMeter WebSocket Samplers為例來(lái)進(jìn)行壓測(cè)。JMeter WebSocket Samplers具有以下特性:
- 提供 6 個(gè)不同的 WebSocket 采樣器
- 采樣器不會(huì)創(chuàng)建額外的線程,因此可以使用大量的 JMeter 線程,
- 支持 wss(基于 TLS 的 WebSocket)
- wss 支持與 JMeter 的 SSLManager 完全兼容,包括客戶端證書
- 支持二進(jìn)制 WebSocket 幀
- 用于檢查二進(jìn)制響應(yīng)的斷言
- 在“查看結(jié)果樹”中查看二進(jìn)制結(jié)果
- 與 JMeter 的 Header Manager 集成以在 WebScoket 升級(jí)請(qǐng)求上設(shè)置額外的 HTTP 標(biāo)頭
- 在每次升級(jí)請(qǐng)求(即發(fā)起 WebSocket 連接的 HTTP 請(qǐng)求)時(shí)發(fā)送由 JMeter 的 Cookie Manager 定義的 cookie
- 代理支持
- 提供用于丟棄與測(cè)試無(wú)關(guān)的幀的過(guò)濾器
- 許多示例 JMeter 測(cè)試計(jì)劃說(shuō)明了各種功能。
步驟1:安裝插件JMeter WebSocket Samplers
- 下載地址:JMeter WebSocket Samplers,建議下載最新版本。
- 將下載的插件 .jar包存放在<JMeter安裝目錄>/lib/ext路徑下。
- 打開JMeter工具,查看插件是否安裝成功:
線程組->添加->取樣器,可以看到以下添加的采樣器選擇,具體說(shuō)明如下:
采集器名稱 |
說(shuō)明 |
---|---|
WebSocket Close |
用于正常關(guān)閉 websocket 連接 |
WebSocket Open Connection |
用于顯式設(shè)置websocket連接 |
WebSocket Ping/Pong |
用于發(fā)送ping和接收pong請(qǐng)求 |
WebSocket Single Read Sampler |
用于接收一個(gè)(文本或二進(jìn)制)WebSocket 幀 |
WebSocket Single Write Sampler |
用于發(fā)送一個(gè)(文本或二進(jìn)制)WebSocket 幀 |
WebSocket request-response Sampler |
用于執(zhí)行基本的請(qǐng)求-響應(yīng)請(qǐng)求 |
步驟2:采集器使用
下面對(duì)JMeter WebSocket Samplers各采集器的配置與使用進(jìn)行說(shuō)明
- 首選創(chuàng)建一個(gè)線程組,添加到測(cè)試計(jì)劃中,添加->線程(用戶)->線程組
- 添加一個(gè)WebSocket Open Connection采集器,線程組->添加->取樣器->WebSocket Open Connection,該采集器為建立WebSocket連接
相關(guān)配置說(shuō)明:
配置項(xiàng) |
說(shuō)明 |
---|---|
協(xié)議 |
協(xié)議可以是WS或WSS,WSS是進(jìn)行加密連接。 |
Server name or IP |
域名或IP地址 |
Port |
端口號(hào) |
Path |
路徑,可為空 |
Connection timeout(ms) |
建連的超時(shí)時(shí)間 |
Read timeout(ms) |
等待服務(wù)器響應(yīng)的超時(shí)時(shí)間 |
3. 添加一個(gè)WebSocket Ping/Pong采集器,線程組->添加->取樣器->WebSocket Ping/Pong,該采集器用于發(fā)送ping和接收 pong請(qǐng)求
相關(guān)配置說(shuō)明:
配置項(xiàng) |
說(shuō)明 |
---|---|
ping/pong(send ping,expect pong) |
用于發(fā)送ping和接收pong |
pong(just send pong) |
僅發(fā)送未經(jīng)請(qǐng)求的pong |
pong(read) timeout(ms) |
表示如果JMeter在20秒內(nèi)沒(méi)有收到Pong消息,則Sampler將失效。此Sampler會(huì)復(fù)用已有連接 |
4. 添加一個(gè)WebSocket Single Read Sampler采集器,線程組->添加->取樣器->WebSocket Single Read Sampler,用于接收一個(gè)(文本或二進(jìn)制)WebSocket 幀
配置項(xiàng) |
說(shuō)明 |
---|---|
use existing connection |
復(fù)用已有連接 |
setup new connection |
創(chuàng)建新的連接 |
Response (read) timeout (ms) |
響應(yīng)超時(shí)時(shí)間 |
5. 添加一個(gè)WebSocket Single Write Sampler采集器,線程組->添加->取樣器->WebSocket Single Write Sampler,用于發(fā)送一個(gè)(文本或二進(jìn)制)WebSocket 幀
配置項(xiàng) |
說(shuō)明 |
---|---|
use existing connection |
復(fù)用已有連接 |
setup new connection |
創(chuàng)建新的連接 |
Request data |
填寫請(qǐng)求數(shù)據(jù) |
6. 添加一個(gè)WebSocket request-response Sampler采集器,線程組->添加->取樣器->WebSocket request-response Sampler,用于執(zhí)行基本的請(qǐng)求-響應(yīng)請(qǐng)求
配置項(xiàng) |
說(shuō)明 |
---|---|
use existing connection |
復(fù)用已有連接 |
setup new connection |
創(chuàng)建新的連接 |
Request data |
填寫請(qǐng)求數(shù)據(jù) |
Response (read) timeout (ms) |
響應(yīng)超時(shí)時(shí)間 |
7. 添加一個(gè)WebSocket Close采集器,線程組->添加->取樣器->WebSocket Close,用于正常關(guān)閉 websocket 連接
配置項(xiàng) |
說(shuō)明 |
---|---|
Close Status |
關(guān)閉連接時(shí)定義的狀態(tài)碼,數(shù)據(jù)幀的頭兩個(gè)字節(jié) |
Response (read) timeout (ms) |
響應(yīng)超時(shí)時(shí)間 |
8. 右鍵單擊線程組,選擇添加 -> 監(jiān)聽(tīng)器 -> 查看結(jié)果樹,在線程組中添加監(jiān)聽(tīng)器查看結(jié)果樹,用于接收服務(wù)端的消息響應(yīng)。
步驟3:腳本執(zhí)行
根據(jù)上面步驟二選擇需要的采集器進(jìn)行腳本編輯完成后,單擊頁(yè)面頂部的開始按鈕,運(yùn)行腳本。
通過(guò)查看結(jié)果樹查看腳本是否運(yùn)行正常。在左側(cè)導(dǎo)航樹中,選擇查看結(jié)果樹,查看請(qǐng)求結(jié)果是否符合預(yù)期。如果出現(xiàn)請(qǐng)求失敗的,需要根據(jù)步驟二重新調(diào)整腳本。
---------------------------------------
?獲取方式:留言【軟件測(cè)試學(xué)習(xí)】即可
?結(jié)語(yǔ)
這篇貼子到這里就結(jié)束了,最后,希望看這篇帖子的朋友能夠有所收獲。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-620054.html
如果你覺(jué)得文章還不錯(cuò),請(qǐng)大家 點(diǎn)贊、分享、留言 下,因?yàn)檫@將是我持續(xù)輸出更多優(yōu)質(zhì)文章的最強(qiáng)動(dòng)力!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-620054.html
到了這里,關(guān)于“Jmeter WebSocket協(xié)議壓測(cè)”,助你輕松應(yīng)對(duì)高并發(fā)場(chǎng)景!的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!