websocket实战经验(200人在线直播)

1.继上篇学习到了如何利用fiddler抓取websocket,那么如何模拟多少人同时在房间来loading test

2.查看各类google和百度文档,csdn,博客园之类的,踩了很多坑

3.开始吧

下载jmeter最新版,目前(4.0):

Download Apache JMeter

下载jdk1.8双击安装在C盘,配置好环境变量(自行百度)

cmd中输入java -version 查看jdk是否安装成功

4.jmeter本身不能压websocket,需要用到扩展的jar包(我们用最新的)

(1)先下请求模板

pjtr / JMeter WebSocket Samplers / Downloads

(2)下载6个jar包

org.eclipse.jetty " jetty-http

org.eclipse.jetty " jetty-io

org.eclipse.jetty " jetty-util

org.eclipse.jetty.websocket " websocket-api

org.eclipse.jetty.websocket " websocket-client

org.eclipse.jetty.websocket " websocket-common

#将你下载的所有jar包(1个请求模板+6个jar包),复制到该目录下:

apache-jmeter-4.0\lib\ext

5.跟开发的兄弟深入沟通+fiddler抓包,了解你们的websocket是怎么结构

我现在这个项目是先app登录获取用户token,然后进入房间的时候请求Gata服务器(反向代理用)动态获取到ip和port,之后自动断开websocket,再请求connect服务器,建立websocket

6.打开jmeter.bat

新建线程组,添加sample的时候发现有我们之前添加的jar包生效了,多出了几个websocket,常用的多的就是websocket open connection(打开连接),websocket request-response sample(websocket请求和响应)

还有一个只请求,一个只返回的sample暂时我们用不到,可能你还会需要后面一个微博socket close (客户端手动关闭)

7.websocket sample界面介绍

websocket open connection(打开连接):

ws/wss :wss是ws的加密形式,需要问一下你们开发,ip ,port,path 这些都是抓包能拿到

连接超时

响应超时

websocket request-response sample(websocket请求和响应):

分为三部分 connection:

第一个是使用当前连接

第二个是创建一条新的websocket

serverURL:

跟之前一样,如果选择使用当前连接,这个的地方是不需要填写的

Data:

传的值,响应时间调大一点,应该会比get/post稍微长一点

8开始实战

根据上面说到的,websocket是怎么结构

我现在这个项目是先app登录获取用户token,然后进入房间的时候请求Gata服务器(反向代理用)动态获取到ip和port,之后自动断开websocket,再请求connect服务器,建立websocket

最后把线程组设置为200,分20秒进入(每秒进10个人,一次进快了,用户会存在假死状态)执行1次,持续900秒(15分钟),你就可以在app端的房间里面看到200个用户在线了,(新建循环控制器很重要,保持连接不断,长连接)

你可能感兴趣的:(websocket实战经验(200人在线直播))