Websocket压测

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Websocket压测相关的知识,希望对你有一定的参考价值。

参考技术A 安装教程1:
https://www.cnblogs.com/zmsn/p/11466309.html
安装教程2:
https://help.aliyun.com/document_detail/93627.html?spm=5176.7946858.1219570.6.f6fc2542CzlJZ6

参考以上安装教程2:
一个请求可能对用多个响应,最好才用request-response;

https://docs.locust.io/en/stable/

参考: https://blog.csdn.net/u010481688/article/details/89083239

1)在scripts目录下,执行locust -f ***.py --host= http://0.0.0.0:0000(--host 测试的http服务的ip和port);
2)打开浏览器,如何是本机访问输入 http://localhost:8089/ ,输入想要并发的人数以及虚拟用户初始化的比例;

已保存文件至git仓库。

golang websocket压测示例

package main

import (
	"flag"
	"fmt"
	"log"
	"net/url"
	"time"
	"github.com/gorilla/websocket"
)

	//根据自身情况修改服务器ip地址
var addr = flag.String("addr", "localhost:12345", "http service address")

func main() 
	succCount := 0
	failCount := 0

	//建立1000个websocket连接请求某数据
	for i := 1; i < 1000; i++ 
		u := url.URLScheme: "wss", Host: *addr, Path: "/ws"
		log.Println(u.String())
		conn, _, err := websocket.DefaultDialer.Dial(u.String(), nil)

		if err != nil 
			log.Println(err)
			failCount++
			fmt.Println("Number of dialing failures:", failCount)
			fmt.Println("Number of dialing fail:", err)
			time.Sleep(time.Second)
			continue
		
		defer conn.Close()
		succCount++
		fmt.Println("Number of successful connections:", succCount)
		go Client(conn)
	

	//Stop here to prevent the program from exiting
	tick :=

以上是关于Websocket压测的主要内容,如果未能解决你的问题,请参考以下文章

一个简单的websocket压测工具tcpkail

golang websocket压测示例

golang websocket压测示例

性能工具之Jmeter压测WebSocket接口

使用jmeter进行websocket压测

WebSocket-bench分布式压测部署