jmeter做接口測試,很多人都是做http協議的接口,就有很多人問websocket的接口怎么測試啊?
首先,我們要明白,websocket接口是什么接口。
然后,我們怎么用jmeter測試?
jmeter要測試websocket接口,需要先下載安裝一個websocket samplers by peter doornbosch 的插件,插件安裝成功后,再次啟動jmeter,會在jmeter取樣器最下面顯示6個socket相關的取樣器
websocket close 用於正常關閉websocket連接;
websocket open connection 用於顯式設置websocket連接;
websocket ping-pong 用於發送ping和接收 pong請求;
websocket single read sampler 用於接收一個文本或二進制的websocket請求;
websocket single write sampler 用於發送一個文本或二進制的websocket請求;
websocket request-response sampler 用於執行基本的請求-響應請求;
日常測試時,使用websocket request-Response sampler就足夠了。
日常測試時,使用websocket request-Response sampler就足夠了。
connection,有兩個單選,一個是使用已經建立的連接,如果選擇這種,那么,在該取樣器之前要使用 websocket opnen connection先連接;
如果選擇新建一個連接,則該取樣器中,需要配置serverURL信息。
serverURL中,首先是協議,下拉框有兩個選項,ws和wss. ws是明文數據傳輸,wss是密文數據傳輸,相當於http和https的差別。
server name or ip 就填寫服務器的域名或ip地址
server name or ip 就填寫服務器的域名或ip地址;
port 對應服務的端口;
path 對應服務路徑,可以用 /;
data 就是發送的數據,支持兩種,text文本,和binary 二進制;
request data為發送的數據,當數據類型為文本式,可以帶jmeter的參數,如果為binary 二進制時,則輸入的為二進制內容。
工具的配置就是這些,如果你只配置了websocket request-Response sampler 請求結束后,websocket連接不會關閉。
但是會在下次運行時,GC(垃圾收集)會自動回收資源關閉連接。
如果期望,測試結束時,立馬關閉,可以使用websocket close 取樣器
也可以修改jmeter.properties文件,設置:websocket.thread.stop.policy = wsClose;
若設置為:
websocket.thread.stop.policy=tcpClose則要在關閉jmeter時關閉連接。
接下來我們搭建一個demo,測試websocket接口。
首先,在linux服務器上下載websocketd:https://github.com/joewalnes/websocketd/releases 在這個頁面中,找到你系統對應的包,下載后安裝,並配置好環境變量。
然后,在服務器依然地方,創建一個soc.py文件:
然后,在linux服務器上執行:
最后,檢查下你的服務器防火牆,開放你配置的端口。
此時,一個websocket的服務器已經搭建好,可以用jmeter來測試了。
這樣就實現了用jmeter測試websocket接口
