国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Jmeter對(duì)websocket進(jìn)行測(cè)試

這篇具有很好參考價(jià)值的文章主要介紹了Jmeter對(duì)websocket進(jìn)行測(cè)試。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

JMeterWebSocketSampler-1.0.2-SNAPSHOT.jar下載

公司使用websocket比較奇怪,需要帶認(rèn)證信息進(jìn)行長連接,通過websocket插件是請(qǐng)求失敗,如下圖,后面通過代碼實(shí)現(xiàn)隨再打包jar包完成websocket測(cè)試

Jmeter對(duì)websocket進(jìn)行測(cè)試,jmeter,websocket,網(wǎng)絡(luò)協(xié)議

本地實(shí)現(xiàn)代碼如下:

package com.fangdd.socket;

import io.socket.client.IO;
import io.socket.client.Socket;
import io.socket.emitter.Emitter;
import java.net.URI;
import java.net.URISyntaxException;
import java.io.IOException;

public class SocketIOExample {
	
    public static void main(String[] args) throws URISyntaxException, IOException {
    	IO.Options options = new IO.Options();        
        options.query="tid=wwwww1231&uid=12352547&ticket=mxLqAgCaq7R";
        Socket socket = IO.socket(URI.create("http://localhost:9092"), options);

        socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
            @Override
            public void call(Object... args) {
                System.out.println("connect");

// 如果需要發(fā)消息參考此代碼 連接成功后發(fā)送具有body的自定義事件,公司暫不需要注釋此代碼
//                JSONObject body = new JSONObject();
//                try {
//                    body.put("message", "Hello, Server!");
//                } catch (JSONException e) {
//                    e.printStackTrace();
//                }
//
//                // 發(fā)送事件到服務(wù)器--需要與開發(fā)確認(rèn)事件(customEvent)
//                socket.emit("customEvent", body);
            }
        });

        socket.on(Socket.EVENT_CONNECT_ERROR, new Emitter.Listener() {
            @Override
            public void call(Object... args) {
                System.out.println("connect_error: " + args[0]);
            }
        });

        socket.on(Socket.EVENT_DISCONNECT, new Emitter.Listener() {
            @Override
            public void call(Object... args) {
                System.out.println("disconnect due to: " + args[0]);
            }
        });

        socket.connect();
     // 監(jiān)聽服務(wù)器返回的自定義事件----需要與開發(fā)確認(rèn)監(jiān)聽事件(messageEvent)
        socket.on("messageEvent", new Emitter.Listener() {
            @Override
            public void call(Object... args) {
                // 處理服務(wù)器返回的數(shù)據(jù),如果是json需要數(shù)據(jù)處理
                //JSONObject response = (JSONObject) args[0];
                System.out.println("Server response: " + args[0].toString());
            }
        });
    }

   
}

顯示如下:

Jmeter對(duì)websocket進(jìn)行測(cè)試,jmeter,websocket,網(wǎng)絡(luò)協(xié)議

?開發(fā)代碼打包到lib/ext目錄,通過Jmeter對(duì)本地方法進(jìn)行測(cè)試,具體實(shí)現(xiàn)代碼如下:

底層實(shí)現(xiàn)代碼:


import java.net.URI;
import io.socket.client.IO;
import io.socket.client.Socket;
import io.socket.emitter.Emitter;

public class NomalTools {	

	public static void  IOsocket(String url,String tid) {
		IO.Options options = new IO.Options();        
        options.query="tid="+tid+"&uid=12352547&ticket=mxLqA";
        Socket socket = IO.socket(URI.create(url), options);

        socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
            @Override
            public void call(Object... args) {
                System.out.println("connect");
              
            }
        });

        socket.on(Socket.EVENT_CONNECT_ERROR, new Emitter.Listener() {
            @Override
            public void call(Object... args) {
                System.out.println("connect_error: " + args[0]);
            }
        });

        socket.on(Socket.EVENT_DISCONNECT, new Emitter.Listener() {
            @Override
            public void call(Object... args) {
                System.out.println("disconnect due to: " + args[0]);
            }
        });

        socket.connect();
     // 監(jiān)聽服務(wù)器返回的自定義事件
        socket.on("messageEvent", new Emitter.Listener() {
            @Override
            public void call(Object... args) {
                // 處理服務(wù)器返回的數(shù)據(jù)
//                JSONObject response = (JSONObject) args[0];
                System.out.println("Server response: " + args[0].toString());
            }
        });
        
               //10秒后自動(dòng)關(guān)閉連接
//        try {
//			Thread.sleep(10000);
//			System.out.println("10秒自動(dòng)關(guān)閉連接");
//		} catch (InterruptedException e) {
//			e.printStackTrace();
//		}
//        socket.close();
	}
	

}

Jmeter封裝代碼:


import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;
import Common.NomalTools;



public class socketTest extends AbstractJavaSamplerClient{
	private NomalTools nomalTools;
	private String url;
	private String tid;
	private static long start = 0;
	private static long end = 0;
	
	public Arguments getDefaultParameters() {
        Arguments params = new Arguments();
        params.addArgument("url", "");
        params.addArgument("tid", "");
        return params;
    }
	
	//每個(gè)線程測(cè)試前執(zhí)行一次,做一些初始化工作;
    public void setupTest(JavaSamplerContext arg0) {
    	nomalTools=new  NomalTools();
    	url = arg0.getParameter("url");
    	 tid = arg0.getParameter("tid");
    	start = System.currentTimeMillis();
    }
    
	public SampleResult runTest(JavaSamplerContext arg0) {
		SampleResult sr = new SampleResult();
        sr.setSamplerData("請(qǐng)求參數(shù)num1:"+url+"\n請(qǐng)求參數(shù)num2:"+tid);
		
        try {
            sr.sampleStart();// jmeter 開始統(tǒng)計(jì)響應(yīng)時(shí)間標(biāo)記
            // 通過下面的操作就可以將被測(cè)方法的響應(yīng)輸出到Jmeter的察看結(jié)果樹中的響應(yīng)數(shù)據(jù)里面了。
            nomalTools.IOsocket(url, tid);            
//             System.out.println(resultData);
            sr.setSuccessful(true);
        } catch (Throwable e) {
            sr.setSuccessful(false);
            e.printStackTrace();
        } finally {
            sr.sampleEnd();// jmeter 結(jié)束統(tǒng)計(jì)響應(yīng)時(shí)間標(biāo)記
        }
        return sr;
	}

	//測(cè)試結(jié)束時(shí)調(diào)用;
    public void teardownTest(JavaSamplerContext arg0) {
    	end = System.currentTimeMillis();
        // 總體耗時(shí)
        System.err.println("cost time:" + (end - start) + "毫秒");
    }
	
    public static void main(String[] args) {
    	Arguments params = new Arguments(); 
        params.addArgument("url", "http://localhost:9092");//設(shè)置參數(shù),并賦予默認(rèn)值1 
        params.addArgument("tid", "qwe123");//設(shè)置參數(shù),并賦予默認(rèn)值2
        JavaSamplerContext arg0 = new JavaSamplerContext(params); 
        socketTest test = new socketTest(); 
        test.setupTest(arg0); 
        test.runTest(arg0);
        test.teardownTest(arg0); 
    }
}

集成到Jmeter的效果:

Jmeter對(duì)websocket進(jìn)行測(cè)試,jmeter,websocket,網(wǎng)絡(luò)協(xié)議

?

?參考文獻(xiàn):

【JMeter】Jmeter進(jìn)行webSocket接口測(cè)試_千重萌的博客-CSDN博客

https://github.com/socketio/socket.io-client-java/blob/main/src/test/java/io/socket/Fiddle.java文章來源地址http://www.zghlxwxcb.cn/news/detail-664283.html

到了這里,關(guān)于Jmeter對(duì)websocket進(jìn)行測(cè)試的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 性能進(jìn)階:使用JMeter進(jìn)行websocket測(cè)試【建議收藏】

    性能進(jìn)階:使用JMeter進(jìn)行websocket測(cè)試【建議收藏】

    本次測(cè)試案例主要是分享如何使用JMeter進(jìn)行websocket協(xié)議下的聊天接口性能測(cè)試。 包含websocket插件的下載安裝、線程組及sampler的設(shè)置、csv參數(shù)化和組建分布式測(cè)試的方法、如何通過調(diào)整參數(shù)來獲得發(fā)壓機(jī)的最大并發(fā)數(shù)以及對(duì)測(cè)試過程的總結(jié)。 整篇文章只側(cè)重介紹進(jìn)行websocket測(cè)

    2024年02月08日
    瀏覽(24)
  • 全網(wǎng)最詳細(xì),Jmeter性能測(cè)試-性能進(jìn)階, 多協(xié)議實(shí)戰(zhàn)Websocket/Dubbo(七)

    全網(wǎng)最詳細(xì),Jmeter性能測(cè)試-性能進(jìn)階, 多協(xié)議實(shí)戰(zhàn)Websocket/Dubbo(七)

    Jmeter是目前主流的性能測(cè)試工具,原因除了他是開源的、免費(fèi)的之外,還有它的拓展性非常強(qiáng)。Jmeter默認(rèn)使用的協(xié)議是Http/HTTPS協(xié)議,但這并不是唯一的協(xié)議,通過加載插件,可以讓Jmeter支持更多協(xié)議的腳本開發(fā)。 webservice(soap)協(xié)議 webservice是一個(gè)web的應(yīng)用程序,使用xml想外

    2023年04月20日
    瀏覽(24)
  • jmeter工具測(cè)試和壓測(cè)websocket協(xié)議【杭州多測(cè)師_王sir】

    jmeter工具測(cè)試和壓測(cè)websocket協(xié)議【杭州多測(cè)師_王sir】

    一、安裝JDK配置好環(huán)境變量,安裝好jmeter 二、下載WebSocketSampler發(fā)送請(qǐng)求用的 ,地址:https://bitbucket.org/pjtr/jmeter-websocket-samplers/downloads/?spm=a2c4g.11186623.2.15.363f211bH03KeI 下載解壓后的jar包放到D:JMeterapache-jmeter-3.3libext目錄下 三、如果需要在jmeter中安裝那么就需要下載jmeter的插件

    2024年02月13日
    瀏覽(22)
  • Jmeter接口測(cè)試-websocket測(cè)試

    Jmeter接口測(cè)試-websocket測(cè)試

    壹 Jmeter接口測(cè)試-websocket測(cè)試 測(cè)試之前的準(zhǔn)備工作,需要websocket插件 方式一: 去github下載: https://github.com/maciejzaleski/JMeter-WebSocketSampler/wiki/Dependencies jetty-http-9.1.2.v20140210.jar jetty-io-9.1.2.v20140210.jar jetty-util-9.1.2.v20140210.jar websocket-api-9.1.1.v20140108.jar websocket-client-9.1.1.v20140108.jar websoc

    2024年02月06日
    瀏覽(20)
  • 【接口測(cè)試】JMeter測(cè)試WebSocket接口

    【接口測(cè)試】JMeter測(cè)試WebSocket接口

    目錄 一、WebSocket簡(jiǎn)介 二、JMeter測(cè)試WebSocket接口 三、WebSocket和Socket的區(qū)別 最近老被問到WebSocket,突然想到以前大學(xué)時(shí)上Java課的時(shí)候,老師教我們socket連接,一個(gè)同學(xué)電腦做客戶端,一個(gè)同學(xué)電腦做服務(wù)端,當(dāng)雙方消息發(fā)送成功,第一次感覺到代碼的奇妙~ 畢竟抄代碼都不利索

    2024年02月08日
    瀏覽(22)
  • JMeter websocket接口測(cè)試

    JMeter websocket接口測(cè)試

    前言 在一個(gè)網(wǎng)站中,很多數(shù)據(jù)需要即時(shí)更新,比如期貨交易類的用戶資產(chǎn)。在以前,這種功能的實(shí)現(xiàn)一般使用http輪詢,即客戶端用定時(shí)任務(wù)每隔一段時(shí)間向服務(wù)器發(fā)送查詢請(qǐng)求來獲取最新值。這種方式的弊端顯而易見: 有可能造成數(shù)據(jù)更新不及時(shí),如果前端輪詢頻率為5s,

    2024年02月16日
    瀏覽(22)
  • jmeter如何測(cè)試websocket接口?

    jmeter如何測(cè)試websocket接口?

    jmeter做接口測(cè)試,很多人都是做http協(xié)議的接口,就有很多人問websocket的接口怎么測(cè)試?。?首先,我們要明白,websocket接口是什么接口。 然后,我們?cè)趺从胘meter測(cè)試? jmeter要測(cè)試websocket接口,需要先下載安裝一個(gè)websocket samplers by peter doornbosch?的插件,插件安裝成功后,再次

    2024年02月08日
    瀏覽(23)
  • “Jmeter WebSocket協(xié)議壓測(cè)”,助你輕松應(yīng)對(duì)高并發(fā)場(chǎng)景!

    “Jmeter WebSocket協(xié)議壓測(cè)”,助你輕松應(yīng)對(duì)高并發(fā)場(chǎng)景!

    目錄 引言 背景說明 步驟1:安裝插件JMeter WebSocket Samplers 步驟2:采集器使用 步驟3:腳本執(zhí)行 ?結(jié)語 在當(dāng)今高并發(fā)的網(wǎng)絡(luò)環(huán)境下,WebSocket協(xié)議已經(jīng)成為了最受歡迎的實(shí)時(shí)通信技術(shù)之一。 然而,對(duì)于開發(fā)人員來說,如何有效地壓測(cè)WebSocket協(xié)議仍是一個(gè)挑戰(zhàn)。 Jmeter是一款功能強(qiáng)

    2024年02月14日
    瀏覽(18)
  • 【接口測(cè)試】Jmeter接口實(shí)戰(zhàn)-TCP及Websocket接口,打通接口測(cè)試...

    【接口測(cè)試】Jmeter接口實(shí)戰(zhàn)-TCP及Websocket接口,打通接口測(cè)試...

    Jmeter測(cè)試TCP接口 1、TCP接口結(jié)構(gòu) TCP接口:只有ip和port 傳參數(shù)據(jù)類型根據(jù)開發(fā)定義的類型 需要添加一個(gè)ascii碼的十進(jìn)制字節(jié)結(jié)束符,tcp才會(huì)關(guān)閉 2、TCP接口環(huán)境搭建 在testfan-tcp-server.jar目錄下,啟動(dòng)cmd命令行,輸入:java -jar testfan-tcp-server.jar 3、Jmeter測(cè)試tcp接口 1)添加tcp取樣器

    2024年02月03日
    瀏覽(22)
  • Jmeter 實(shí)現(xiàn) mqtt 協(xié)議壓力測(cè)試

    Jmeter 實(shí)現(xiàn) mqtt 協(xié)議壓力測(cè)試

    1. 下載jmeter,解壓 https://jmeter.apache.org/download_jmeter.cgi 以 5.4.3 為例,下載地址: https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.3.zip linux下解壓: unzip apache-jmeter-5.4.3.zip 2. 下載mqtt-jmeter插件 下載地址: https://github.com/emqx/mqtt-jmeter/releases https://github.com/emqx/mqtt-jmeter/releases/downloa

    2024年02月08日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包