| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 使用JMeter测试Go WebSocket服务的并发 -> 正文阅读 |
|
[网络协议]使用JMeter测试Go WebSocket服务的并发 |
安装JMeter下载解压后直接运行即可:https://jmeter.apache.org/download_jmeter.cgi 打开后如下: 安装插件参考:Performance Testing Web Sockets with JMeter 本身jmeter并不支持web socket,但是好在有插件。 首先下载jmeter-plugins,具体见:https://jmeter-plugins.org/install/Install/。然后会多出一个选项: 打开后搜索websocket安装即可: Jmeter基础1)组件概览打开jmeter后,默认有个Test Plan项目,我们只需要右击,添加需要的组件来组合实现我们的测试脚本即可。 如下图,有9大类(Options/Choose Language/Chinese 可切换语言): 2)Threads(Users)概述可以指定开多少个线程,在这个节点下的逻辑,都会在不同的线程中并发执行。这也是jmeter最基础的组件。 有2个特殊的线程组:
如下,有1个setup,2个并发测试http接口的线程组,其中 查火车 会被并发执行10次(启动10个线程同时请求)。 执行顺序创建好线程组之后,我们就可以 “写脚本语句” 了,“脚本语句” 执行的顺序也是从上往下执行的,比如,下图的效果就是,启动jmeter之后,会暂停3秒钟 注意: Sampler(采样器)在线程组上点击,会多出2个子组件:
支持的Sampler : 示例Sampler——HTTP Request界面: 到这里,通过 3)Config Element配置组件,主要是为Sampler服务的。比如有个HTTP接口,需要携带认证的token头,这个时候,我们可以增加一个 HTTP Header Manager来实现接口认证。 下图是一个示例: 我们拖入一个 4)Listener(监听器)
View Result Tree见上一节中的截图,Summary Report界面如下: 5)Timer(定时器)我们可以结合 Logic Controller 来实现 接口间隔 N 秒请求的功能,来测试稳定性,有固定间隔的、也有随机间隔的。这个比较简单,不再过多介绍。 6)Pre Processors 和 Post Processors前置处理器不常用,主要是 JSON Extractor用法
我们只需要这样配置即可把结果拿出来: 然后,在这个Sampler后面拖入一个Debug Sampler,我们看到值被保存: 2)跨 Thread Group,需要使用Shell脚本,设置全局变量
其他线程组引用:
示例: 四、示例1.模拟流程以下面这个流程为例,演示测试WebSocket并发:
2.详细步骤登录认证1) 2) 3)
4)创建Json后置处理器,用来提取登录成功后返回的token,便于其他接口使用。 token是存储的变量,accessToken是解析的路径,比如下面这样:
5)拖入一个Debug Sampler,来调试Json提取是否提取正确。 6)拖入一个BeanShell Sampler,来把token设置成全局变量,供其他线程组使用。
最后,看起来该是这样的: WebSocket线程组1) 3)对应上图1和2,拖入View Results Tree 和 Summary Report。 6)最后,点击Summary Report,看下各个请求的执行情况即可 7)最后,别忘记把整个脚本保存,jmeter通过命令行的方式执行,这个通常只是编辑器而已。 附录:Golang WebSocket服务日志 五、性能报告和统计Summary Report比较简单,Jmeter可以生成html格式的详细性能报告。比如: 执行以下命令即可:
说明:
然后,/Users/xxx/Desktop/ResultReport 目录下会生成一个html文件,用浏览器打开即可。 具体的各个报表的解释,可以参考这篇文章:Jmeter生成HTML性能测试报告 六、Jmeter上云在裸金属服务器或者个人电脑上跑,总是会受限于物理环境或者成本的原因,导致模拟的并发有限或者不太贴近真实环境,好在各大云服务商也提供了对jmeter的支持,可以分发CSV配置文件,把Jmeter调度到不同的真实物理机上运行,从而尽可能贴近真实场景,突破物理限制。 以阿里云举例(PTS压测和JMeter压测),我提取了几个特点(详情):
看到这里,恐怕你要直呼:这么牛逼,我怎么用得起? 其实,我们购买一台2C4G的服务器,再购买一个压测资源包(价格点这里),总成本应该在几百左右,可以作为一个进阶的备选方案。 除此之外,要实现 参考 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 23:39:03- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |