一.为了方便使用,首先将jmeter设置成中文,有两种方法:
1.在Jmeter界面进行设置,Options ->Choose Language ->Chinese(Simplified),这种方法在关闭jmeter重启后又会恢复成默认的英文,如果想长期使用中文版的jmeter不建议使用这种方法。
2.在Jmeter的bin目录下有个jmeter.properties,用notepad打开搜索language=,能搜索到#language=en,将此行改成language=zh_CN,保存后关闭就设置成功了,下次打开还是中文设置。注意不要选择错误文件,在bin目录下有个文件名为Jmeter,用notepad也可以打开,刚开始我就是打开了这个文件,没搜索到设置语言的配置行。
二.Jmeter不自带WebSocket功能,需要先安装WebSocket的插件,在插件管理器窗口的available plugins搜索WebSocket进行插件下载即可,我是将搜索到的2个插件都安装了,待Jmeter重启后插件就安装成功了。
三.编写测试计划
1.先创建线程组,右键点击测试计划,创建线程组。
2.创建WebSocket连接,可以先创建连接再发送请求(websocket open connection>websocket request-repose sampler),也可以只使用websocket request-repose sampler创建连接并发送消息。这两种方式的区别就是websocket request-repose sampler选择use existing connection还是setup new connection。再此举例第二种方式如图:
3.因为要使用步骤2的返回值请求登录二维码,因此要在websocket request-repose sampler下添加提取器,我是使用的正则表达式提取器,JSON取样器也很方便,按照自己熟悉的方式使用即可。在进行数据提取时,有时会出现错误,为了方便进行调试,建议在线程组加上调试取样器,这个工具能在查看结果数下打印出取样结果。
4.创建HTTP请求,利用提取到的数据进行传参,获取登录二维码,http默认端口号是80,https默认端口号是443。在HTTP请求下添加HTTP信息头管理器,进行头信息传参,添加Beanshell 预处理程序编写验签脚本。
5.使用WebSocket Close关闭通讯。
6.添加线程组的查看结果树、汇总报告、聚合报告,这样一个简单的线程组就完成了。
7.可以在测试计划上传jar包,上传后脚本里就可以直接导入了。
8.一个完成的使用websocket请求登录二维码当然不会是这么简单了,还会涉及ping/pong和返回过期信息等功能,要在熟悉代码流程的基础上去进行模拟。