1.继上篇学习到了如何利用fiddler抓取websocket,那么如何模拟多少人同时在房间来loading test
2.查看各类google和百度文档,csdn,博客园之类的,踩了很多坑
3.开始吧
下载jmeter最新版,目前(4.0):
下载jdk1.8双击安装在C盘,配置好环境变量(自行百度)
cmd中输入java -version 查看jdk是否安装成功
4.jmeter本身不能压websocket,需要用到扩展的jar包(我们用最新的)
(1)先下请求模板
pjtr / JMeter WebSocket Samplers / Downloads
![](https://img.haomeiwen.com/i16945005/5c28e7148c3702f6.jpg)
(2)下载6个jar包
org.eclipse.jetty " jetty-http
![](https://img.haomeiwen.com/i16945005/07f915bab68083c0.jpg)
![](https://img.haomeiwen.com/i16945005/70ec437d0e85db49.jpg)
org.eclipse.jetty " jetty-util
![](https://img.haomeiwen.com/i16945005/6904bef2973a2872.jpg)
org.eclipse.jetty.websocket " websocket-api
![](https://img.haomeiwen.com/i16945005/3f45baa61b0aef0f.jpg)
org.eclipse.jetty.websocket " websocket-client
![](https://img.haomeiwen.com/i16945005/01bc95b841468e6b.jpg)
org.eclipse.jetty.websocket " websocket-common
![](https://img.haomeiwen.com/i16945005/a00c4d7882fc8094.jpg)
#将你下载的所有jar包(1个请求模板+6个jar包),复制到该目录下:
apache-jmeter-4.0\lib\ext
5.跟开发的兄弟深入沟通+fiddler抓包,了解你们的websocket是怎么结构
我现在这个项目是先app登录获取用户token,然后进入房间的时候请求Gata服务器(反向代理用)动态获取到ip和port,之后自动断开websocket,再请求connect服务器,建立websocket
6.打开jmeter.bat
![](https://img.haomeiwen.com/i16945005/a398088b77e12317.jpg)
新建线程组,添加sample的时候发现有我们之前添加的jar包生效了,多出了几个websocket,常用的多的就是websocket open connection(打开连接),websocket request-response sample(websocket请求和响应)
还有一个只请求,一个只返回的sample暂时我们用不到,可能你还会需要后面一个微博socket close (客户端手动关闭)
7.websocket sample界面介绍
![](https://img.haomeiwen.com/i16945005/d6a94bbc07194a4b.jpg)
websocket open connection(打开连接):
ws/wss :wss是ws的加密形式,需要问一下你们开发,ip ,port,path 这些都是抓包能拿到
连接超时
响应超时
![](https://img.haomeiwen.com/i16945005/5b1ba86fb1dd57b5.jpg)
websocket request-response sample(websocket请求和响应):
分为三部分 connection:
第一个是使用当前连接
第二个是创建一条新的websocket
serverURL:
跟之前一样,如果选择使用当前连接,这个的地方是不需要填写的
Data:
传的值,响应时间调大一点,应该会比get/post稍微长一点
8开始实战
根据上面说到的,websocket是怎么结构
我现在这个项目是先app登录获取用户token,然后进入房间的时候请求Gata服务器(反向代理用)动态获取到ip和port,之后自动断开websocket,再请求connect服务器,建立websocket
![](https://img.haomeiwen.com/i16945005/7ea4b76386214622.jpg)
最后把线程组设置为200,分20秒进入(每秒进10个人,一次进快了,用户会存在假死状态)执行1次,持续900秒(15分钟),你就可以在app端的房间里面看到200个用户在线了,(新建循环控制器很重要,保持连接不断,长连接)
网友评论