当前位置: 首页 > news >正文

Mac使用K6工具压测WebSocket

  1. commend+空格 打开终端,安装k6
brew install k6
  1. 验证是否安装成功
k6 version
  1. 设置日志级别为debug
 export K6_LOG_LEVEL=debug
  1. 执行脚本(进入脚本所在文件夹下)
`k6 run --vus 100  --duration 10m --out csv=result.csv scri`pt.js 

脚本解释:
当前目录下的script.js脚本,用户数100,持续时间10分钟,运行结果存放到result.csv

script脚本内容

import ws from 'k6/ws';
import { check } from 'k6';
export const options = {vus: 20, // 设置虚拟用户数为50duration: '5m', // 持续运行时间为5分钟
};
export default function () {const url = '';接口地址const idToken = ''; //  id-tokenconst requestBody = JSON.stringify({"msg": "测试", //请求体      });const params = {headers: {'id-token': idToken}};// 建立 WebSocket 连接const response = ws.connect(url, params, function (socket) {// 发送请求socket.send(requestBody);// 接收响应socket.on('message', function (message) {console.log(`Received message: ${message}`);});});// 检查连接是否成功check(response, { 'WebSocket connected successfully': (r) => r && r.status === 101 });
}

成功截图
在这里插入图片描述
失败截图
在这里插入图片描述

字段解释
  • WebSocket connected successfully: 表示 WebSocket 是否成功连接。在这个例子中,连接失败了 58448 次,成功了 130 次。
  • checks: 表示执行的检查数量和通过的检查数量。在这个例子中,执行了 58578 次检查,其中通过了 130 次。
  • data_received: 表示接收到的数据量。这里接收了总共约 27 MB 的数据,平均每秒接收约 45 KB。
  • data_sent: 表示发送的数据量。这里发送了总共约 43 MB 的数据,平均每秒发送约 72 KB。
  • **iteration_duration:**表示每个迭代的持续时间。avg 表示平均持续时间,min 表示最短持续时间,med 表示中位数持续时间,max 表示最长持续时间,p(90) 和 p(95) 分别表示第 90 百分位和第 95 百分位的持续时间。
  • iterations: 表示完成的迭代数量。这里完成了 58578 个迭代,平均每秒完成约 97.52 个迭代。
  • vus: 表示当前运行的虚拟用户数量。这里虚拟用户数量一直保持在 100。
  • **vus_max:**表示虚拟用户数量的最大值。这里最大同时运行的虚拟用户数量为 100。
  • **ws_connecting:**表示 WebSocket 连接中的会话的持续时间统计。与 iteration_duration 类似,提供了连接中会话的平均持续时间、最短持续时间、中位数持续时间、最长持续时间以及第 90 和第 95 百分位的持续时间。
  • ws_msgs_sent: 表示发送的 WebSocket 消息数量。在这个例子中,发送了 130 条消息,平均每秒发送约 0.22 条消息。
  • **ws_session_duration:**表示 WebSocket 会话的持续时间统计,提供了与 ws_connecting 类似的统计信息。
  • ws_sessions: 表示 WebSocket 会话数量。这里共有 58578 个 WebSocket 会话,在测试期间平均每秒完成约 97.52 个 WebSocket 会话。

相关文章:

Mac使用K6工具压测WebSocket

commend空格 打开终端,安装k6 brew install k6验证是否安装成功 k6 version设置日志级别为debug export K6_LOG_LEVELdebug执行脚本(进入脚本所在文件夹下) k6 run --vus 100 --duration 10m --out csvresult.csv script.js 脚本解释&…...

小程序--vscode配置

要在vscode里开发微信小程序,需要安装以下两个插件: 安装后,即可使用vscode开发微信小程序。 注:若要实现鼠标悬浮提示,则需新建jsconfig.json文件,并进行配置,即可实现。 jsconfig.json内容如…...

linux僵尸进程

僵尸进程(Zombie Process)是指在一个进程终止时,其父进程尚未调用wait()或waitpid()函数来获取该进程的终止状态信息,导致进程的资源(如进程表中的记录)仍然保留在系统中的一种状态。 当一个进程结束时&am…...

【web | CTF】攻防世界 Web_php_unserialize

天命&#xff1a;这条反序列化题目也是比较特别&#xff0c;里面的漏洞知识点&#xff0c;在现在的php都被修复了 天命&#xff1a;而且这次反序列化的字符串数量跟其他题目不一样 <?php class Demo { // 初始化给变量内容&#xff0c;也就是当前文件&#xff0c;高亮显示…...

Vue3中的select 的option是多余的?

背景&#xff1a; 通过Vue3中填充一个下拉框&#xff0c;在打开页面时要指定默认选中&#xff0c;并在选项改变时把下拉框的选中值显示出来 问题&#xff1a; 填充通常的作法是设置 <option v-for"option in cities" :value"option.value" >&a…...

考研408深度分析+全年规划

408确实很难&#xff0c;他的难分两方面 一方面是408本身的复习难度&#xff0c;我们都知道&#xff0c;408的考察科目有四科&#xff0c;分别是数据结构&#xff0c;计算机组成原理&#xff0c;操作系统和计算机网络。大家回想一下自己在大学本科时候学习这些专业课的难度&am…...

【算法笔记】ch01_01_0771 宝石与石头

笔记介绍&#xff1a; 本项目是datawhale发布的LeetCode 算法笔记&#xff08;Leetcode-Notes&#xff09;课程完成笔记&#xff0c;根据推荐题目循序渐进练习算法题目。主要用python进行书写相关代码&#xff0c;会介绍解题思路及跑通解法。 0771. 宝石与石头 题目大意 描…...

jQuery瀑布流画廊,瀑布流动态加载

jQuery瀑布流画廊&#xff0c;瀑布流动态加载 效果展示 手机布局 jQuery瀑布流动态加载 HTML代码片段 <!-- mediabanner --><div class"mediabanner"><img src"img/mediabanner.jpg" class"bg"/><div class"text&qu…...

玩转ChatGPT:参考文献速查

一、写在前面 各位大佬&#xff0c;我又回来了&#xff0c;最近2月太忙啦&#xff08;过年、奶娃、本子、材料、结题&#xff09;&#xff0c;断更了。现水一篇证明我还活着&#xff01;&#xff01;&#xff01; 最近在写国自然本子&#xff0c;遇到一个估计大家都会遇到的问…...

[设计模式Java实现附plantuml源码~行为型]算法的封装与切换——策略模式

前言&#xff1a; 为什么之前写过Golang 版的设计模式&#xff0c;还在重新写Java 版&#xff1f; 答&#xff1a;因为对于我而言&#xff0c;当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言&#xff0c;更适合用于学习设计模式。 为什么类图要附上uml 因为很…...

​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】

欢迎来CILMY23的博客喔&#xff0c;本期系列为​【C语言】长篇详解&#xff0c;字符系列篇3-----strstr&#xff0c;strtok&#xff0c;strerror字符串函数的使用【图文详解​】&#xff0c;图文讲解各种字符串函数&#xff0c;带大家更深刻理解C语言中各种字符串函数的应用&am…...

如何实现一个K8S DevicePlugin?

什么是device plugin k8s允许限制容器对资源的使用&#xff0c;比如CPU和内存&#xff0c;并以此作为调度的依据。 当其他非官方支持的设备类型需要参与到k8s的工作流程中时&#xff0c;就需要实现一个device plugin。 Kubernetes提供了一个设备插件框架&#xff0c;你可以用…...

Android LruCache源码分析

文章目录 Android LruCache源码分析概述LruCache和LinkedHashMap关系源码分析属性写入数据读取数据删除缓存 Android LruCache源码分析 概述 LruCache&#xff08;Least Recently Used Cache&#xff0c;最近最少使用缓存&#xff09;是 Android 中的一种缓存机制。 根据数据…...

如何使用Inno Setup制作Unity构建程序的Windows安装程序

1. 准备 &#xff08;1&#xff09;准备好Unity构建的程序集合 必须包括&#xff1a; Data文件夹&#xff08;xxx_Data&#xff09; Mono文件夹&#xff08;MonoBleedingEdge&#xff09; 打包的应用程序文件&#xff08;xxx.exe&#xff09; Unity播放器dll文件&#xff…...

linux 面试题

1.linux操作系统的常用指令可以详细说下吗,平常哪些用的比较多 文件目录操作命令: ls cd more cat tail mkdir touch rm rmdir 拷贝复制: cp mv 打包解包压缩解压: tar -z 解亚压缩 -c 打包 -x 解包 -v 显示过程 -f 指定文件名 文本编辑: vi vim 查找: find 查找文件 gre…...

嵌入式中逻辑分析仪基本操作方法

前期准备 1.一块能触摸的屏对应的主板机 2.逻辑分析仪对应的软件工具 3.对应的拓展板 4.确定拓展板的引脚分布情况 第一步&#xff1a;逻辑分析仪j基本操作 1.数据捕捉需要先进行对应软件安装,并按照需求进行配置 2.这里以A20为例:此手机使用显示驱动芯片CST148,触摸屏分辨…...

ONLYOFFICE 桌面编辑器 v8.0 更新内容详细攻略

文章目录 引言PDF 表单RTL 支持电子表格中的新增功能Moodle 集成用密码保护 PDF 文件从“开始”菜单快速创建文档本地界面主题下载安装桌面编辑工具总结 引言 官网链接&#xff1a; ONLYOFFICE 官方网址 ONLYOFFICE 桌面编辑器是一款免费的文档处理软件&#xff0c;适用于 Li…...

2024-2-22 作业

作业要求&#xff1a; 复习前面知识点(指针、结构体、函数)整理思维导图顺序表(按位置插入、按位置删除和去重、重新写)理解链表的代码&#xff0c;尝试写一下链表的尾插和输出 1.复习前面知识点(指针、结构体、函数) 2.整理思维导图 3.顺序表(按位置插入、按位置删除和去重、…...

2.1 RK3399项目开发实录-升级固件介绍(物联技术666)

1. 介绍 1.1. 前言 AIO-3399J 出厂默认安装Android操作系统&#xff0c;如果用户要运行其他操作系统&#xff0c;需要使用对应的固件烧写到主板。 AIO-3399J 有灵活的启动方式。一般情况下&#xff0c;除非硬件损坏&#xff0c;AIO-3399J 开发板是不会变砖的。 如果在升级过…...

Uniapp + VUE3.0 实现双向滑块视频裁剪效果

效果图 <template><view v-if"info" class"all"><video:src"info.videoUrl"class"video" id"video" :controls"true" object-fit"fill" :show-fullscreen-btn"false"play-btn…...

AgentVault Memory:构建本地AI编码记忆库,实现跨工具语义搜索与知识管理

1. 项目概述&#xff1a;为什么我们需要一个统一的AI编码记忆库如果你和我一样&#xff0c;每天的工作流里塞满了各种AI编码助手——Claude Code在终端里处理一个项目&#xff0c;Cursor在IDE里开着&#xff0c;偶尔切到OpenCode或者Codex处理点零碎任务。每次对话都充满了宝贵…...

别再只调API了!深入Qt QGraphicsView事件流,彻底搞懂拖拽缩放背后的‘为什么’

深入Qt QGraphicsView事件流&#xff1a;从拖拽缩放的底层机制到高效调试 在Qt的图形视图框架中&#xff0c;QGraphicsView、QGraphicsScene和QGraphicsItem构成了一个强大的交互系统。许多开发者虽然能够通过调用API实现基本功能&#xff0c;但当遇到事件被意外吞噬、坐标计算…...

MCP协议实战:构建AI智能体任务管理服务器与二次开发指南

1. 项目概述&#xff1a;一个为AI智能体“开眼”的MCP服务器最近在折腾AI智能体&#xff08;Agent&#xff09;开发的朋友&#xff0c;估计都绕不开一个词&#xff1a;MCP。全称是Model Context Protocol&#xff0c;你可以把它理解为给大模型&#xff08;比如Claude、GPT-4&am…...

Happy Island Designer完整指南:免费在线岛屿设计工具终极教程

Happy Island Designer完整指南&#xff1a;免费在线岛屿设计工具终极教程 【免费下载链接】HappyIslandDesigner "Happy Island Designer (Alpha)"&#xff0c;是一个在线工具&#xff0c;它允许用户设计和定制自己的岛屿。这个工具是受游戏《动物森友会》(Animal C…...

图解人工智能(12)自动做化学实验的机器

近年来&#xff0c;人工智能和传统科学的结合备受瞩目。2019年&#xff0c;英国利物浦大学在《自然》杂志发表论文&#xff0c;介绍了一种可以自动做化学实验的机器人。查找相关资料&#xff0c;并讨论一下类似的工作能给人类社会带来怎样的变革。首先&#xff0c;实验人员的培…...

从零到一:Brigadier如何重塑Mac Boot Camp驱动部署体验

从零到一&#xff1a;Brigadier如何重塑Mac Boot Camp驱动部署体验 【免费下载链接】brigadier Fetch and install Boot Camp ESDs with ease. 项目地址: https://gitcode.com/gh_mirrors/bri/brigadier 在Mac上安装Windows系统曾是一个令人望而生畏的技术挑战&#xff…...

Midjourney咖啡印相为何总偏灰?揭秘RGB→Lab→咖啡染料光谱响应的3层色彩断层及校正算法

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Midjourney咖啡印相为何总偏灰&#xff1f;揭秘RGB→Lab→咖啡染料光谱响应的3层色彩断层及校正算法 咖啡印相&#xff08;Coffee Cyanotype&#xff09;作为一种新兴的生物友好型物理输出工艺&#xf…...

鸿蒙系统安装

一、下载 DevEco Studio 打开华为开发者官网&#xff0c;找到 DevEco Studio 6.1.0 Release 下载页面。 DevEco Studio for Windows 6.1.0.830(2.8GB) 下载。 Mac 用户可以选择对应版本&#xff08;x86/ARM&#xff09;。 等待下载完成&#xff0c;得到 .exe 安装文件。二、安装…...

Linux fanotify vs inotify:如何为你的监控需求选择正确的工具?

Linux文件监控技术选型&#xff1a;fanotify与inotify深度对比与实践指南 在构建需要实时感知文件系统变化的应用程序时&#xff0c;开发者常面临监控工具的选择困境。无论是开发安全扫描工具、持续备份系统还是智能IDE&#xff0c;文件监控都是核心需求。Linux平台提供了inoti…...

音频变压器关键参数深度解析:Z值与最大电流的工程实践

音频变压器关键参数深度解析&#xff1a;Z值与最大电流的工程实践引言在专业音频系统、高保真音响以及工业信号隔离场景中&#xff0c;音频变压器始终扮演着不可替代的角色。它的核心使命是在保持信号完整性的同时&#xff0c;完成阻抗匹配、地环路隔离和信号平衡转换三大任务。…...