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

对网页聊天项目进行性能测试, 使用JMeter对于基于WebSocket开发的webChat项目的聊天功能进行测试

登录功能

 包括接口的设置和csv文件配置

 ​​​​​​

这里csv文件就是使用xlsx保存数据, 然后在浏览器找个网址转成csv文件

 

注册功能

这里因为需要每次注册的账号不能相同, 所以用了时间函数来当用户名, 保证尽可能的给正确的注册数据, 时间函数使用方法如下

这里输入分钟, 秒, 毫秒,保证账号尽可能不重复, 不加上其他时间因为太长账号格式会报错 

 消息会话列表

 

使用JMeter对于基于WebSocket开发的webChat项目的聊天功能进行测试

插件

如果第一次进行WebSocket性能测试需要先加下载一下插件(偷的图)

 

 创建取样器

 

建立连接

(数据不对就测试不了了)

配置接口

需要注意发送的json格式需要正确, 对照接口文档, 我这里发短信需要双方互为好友才能发,所以用的数据都加了3号用户, 内容就是一些测试数据

 

 还有一些其他的我就不解释了, 后面放到gitee

性能测试结果

如何使用CMD生成性能测试报告 

jmeter -n -t webChat.jmx -l chatLog.txt -e -o E:\文件\qqwxz桌面文件\桌面文件\bitproject-master\log1

  1.  先进入项目的JMeter文件夹内
  2. 再修改上面代码
    1. webChat.jmx, 是在该地址里找到Jmeter文件
    2. chatLog.txt  定义一个txt文件,用存储生成报告时的日志文件(文件可以不存在, 直接在脚本上写就好)
    3. E:\文件\qqwxz桌面... 是生成性能报告的地址 log1文件, log1可以不存在,如果存在必须为空

最后所有文件都在下面gitee里,包括项目代码, Selenium自动化测试代码, jmeter性能测试测试文件, 性能测试报告(网页版) 

 gitee地址icon-default.png?t=O83Ahttps://gitee.com/poetics-c/java-code-/tree/master/chat%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95

相关文章:

对网页聊天项目进行性能测试, 使用JMeter对于基于WebSocket开发的webChat项目的聊天功能进行测试

登录功能 包括接口的设置和csv文件配置 ​​​​​​ 这里csv文件就是使用xlsx保存数据, 然后在浏览器找个网址转成csv文件 注册功能 这里因为需要每次注册的账号不能相同, 所以用了时间函数来当用户名, 保证尽可能的给正确的注册数据, 时间函数使用方法如下 这里输入分钟, 秒…...

《程序猿之设计模式实战 · 适配器模式》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…...

Elasticsearch案例

目录 一、创建索引 二、准备数据 三、环境搭建 (1)环境搭建 (2)创建实体类 (3)实现Repository接口 四、实现自动补全功能 五、实现高亮搜索关键字功能 (1)在repository接口中…...

SpringBoot 项目如何使用 pageHelper 做分页处理 (含两种依赖方式)

分页是常见大型项目都需要的一个功能,PageHelper是一个非常流行的MyBatis分页插件,它支持多数据库分页,无需修改SQL语句即可实现分页功能。 本文在最后展示了两种依赖验证的结果。 文章目录 一、第一种依赖方式二、第二种依赖方式三、创建数…...

GSR关键词排名系统是针对谷歌seo的吗?

是的,GSR关键词排名系统专门针对谷歌SEO,具体通过外部优化手段快速提升关键词排名。不同于传统的SEO策略,GSR系统并不依赖于对网站内容的调整或内部优化,完全通过站外操作实现效果。这意味着,用户不需要花费精力在网站…...

HarmonyOS Next开发----使用XComponent自定义绘制

XComponent组件作为一种绘制组件,通常用于满足用户复杂的自定义绘制需求,其主要有两种类型"surface和component。对于surface类型可以将相关数据传入XComponent单独拥有的NativeWindow来渲染画面。 由于上层UI是采用arkTS开发,那么想要…...

什么是电商云手机?可以用来干什么?

随着电商行业的迅速发展,云手机作为一种创新工具正逐渐进入出海电商领域。专为外贸市场量身定制的出海电商云手机,已经成为许多外贸企业和出海电商卖家的必备。本文将详细介绍电商云手机是什么以及可以用来做什么。 与国内云手机偏向于游戏场景不同&…...

Python 2 和 Python 3的差异

Python 2 和 Python 3 之间有许多差异,Python 3 是 Python 语言的更新版本,目的是解决 Python 2 中的一些设计缺陷,并引入更现代的编程方式。以下是 Python 2 和 Python 3 之间的一些主要区别: 文章目录 1. print 语句2. 整除行为…...

Leetcode 第 139 场双周赛题解

Leetcode 第 139 场双周赛题解 Leetcode 第 139 场双周赛题解题目1:3285. 找到稳定山的下标思路代码复杂度分析 题目2:3286. 穿越网格图的安全路径思路代码复杂度分析 题目3:3287. 求出数组中最大序列值思路代码复杂度分析 题目4:…...

spring 注解 - @NotEmpty - 确保被注解的字段不为空,而且也不是空白(即不是空字符串、不是只包含空格的字符串)

NotEmpty 是 Bean Validation API 提供的注解之一,用于确保被注解的字段不为空。它检查字符串不仅不是 null,而且也不是空白(即不是空字符串、不是只包含空格的字符串)。 这个注解通常用在 Java 应用程序中,特别是在处…...

深入理解华为仓颉语言的数值类型

解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 在编程过程中,数据处理是开发者必须掌握的基本技能之一。无论是开发应用程序还是进行算法设计,了解不同数据类型的特性和用途都至关重要。本文将深入探讨华为仓颉语言中的基本数…...

WPF 的TreeView的TreeViewItem下动态生成TreeViewItem

树形结构仅部分需要动态生成TreeViewItem的可以参考本文。 xaml页面 <TreeView MinWidth"220" ><TreeViewItem Header"功能列表" ItemsSource"{Binding Functions}"><TreeViewItem.ItemTemplate><HierarchicalDataTempla…...

使用Go语言的互斥锁(Mutex)解决并发问题

解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 在并发编程中,由于存在竞争条件和数据竞争,我们需要将某些代码片段设定为临界区,并使用互斥锁(Mutex)等同步原语来保护这些临界区。本文将详细介绍Go语言标准库中Mutex的使用方法,以及如何利用它来解决实际…...

Android平台Unity3D下如何同时播放多路RTMP|RTSP流?

技术背景 好多开发者&#xff0c;提到希望在Unity的Android头显终端&#xff0c;播放2路以上RTMP或RTSP流&#xff0c;在设备性能一般的情况下&#xff0c;对Unity下的RTMP|RTSP播放器提出了更高的要求。实际上&#xff0c;我们在前几年发布Unity下直播播放模块的时候&#xf…...

网络:TCP协议-报头字段

个人主页 &#xff1a; 个人主页 个人专栏 &#xff1a; 《数据结构》 《C语言》《C》《Linux》《网络》 文章目录 前言一、TCP协议格式16位源端口号 和 16位目的端口号4位首部长度16位窗口大小32位序号 和 32位确认序号6种标记位 和 16位紧急指针 总结 前言 本文是我对于TCP协…...

JAVA基础:HashMap底层数组容量控制,TreeMap底层存取机制,位运算符,原码反码补码

List常用实现类 List集合常用的实现类有3个 &#xff0c; ArrayList , LinkedList , Vector ArrayList 类似于我们之前的ArrayBox 底层使用数组存储元素&#xff0c; 插入删除的效率低&#xff0c;检索的效率高 当底层数组存储容量不足时&#xff0c;会进行扩容&#xff0c;…...

【Redis】Redis 缓存设计:抗住百万并发量的最佳实践

目录 1. Redis 缓存设计原则1.1 高可用性1.2 数据一致性1.3 读写分离 2. 缓存策略2.1 常用缓存策略2.1.1 缓存穿透2.1.2 缓存雪崩2.1.3 缓存击穿 2.2 额外缓存策略2.2.1 更新策略2.2.2 预热策略2.2.3 侧写缓存 3. Redis 架构设计3.1 单机 vs 集群3.2 Redis 集群示例架构 4. 性能…...

【hot100-java】【缺失的第一个正数】

R9-普通数组篇 class Solution {public int firstMissingPositive(int[] nums) {int nnums.length;for (int i0;i<n;i){while(nums[i]>0&&nums[i]<n&&nums[nums[i]-1]!nums[i]){//交换nums[i]和nums[nums[i]-1]int temp nums[nums[i]-1];nums[nums[i]…...

独立站新手教程转化篇:如何做好移动端优化?

随着移动设备在全球范围内的普及&#xff0c;越来越多消费者选择通过手机或平板电脑&#xff0c;来进行线上购物。因此移动端优化&#xff0c;因此移动端优化&#xff0c;也成为独立站卖家必须重视的一个关键环节。那么独立站移动端需要做好哪些优化工作呢&#xff1f; 选择响…...

Mybatis Plus分页查询返回total为0问题

Mybatis Plus分页查询返回total为0问题 一日&#xff0c;乌云密布&#xff0c;本人看着mybatis plus的官方文档&#xff0c;随手写了个分页查询&#xff0c;如下 Page<Question> questionPage questionService.page(new Page<>(current, size),questionService.g…...

从工作流到超级智能体,Claude Code 重构AI应用底层逻辑

从工作流到超级智能体&#xff0c;Claude Code 重构AI应用底层逻辑 当AI应用从简单的对话交互&#xff0c;逐步演进到复杂的自动化工作流&#xff0c;再到如今的自主智能体时代&#xff0c;行业始终在探寻更高效、更智能的系统架构范式。Anthropic推出的Claude Code&#xff0c…...

Typora与AI结合:使用万象熔炉·丹青幻境为Markdown文档自动配图

Typora与AI结合&#xff1a;使用万象熔炉丹青幻境为Markdown文档自动配图 不知道你有没有过这样的体验&#xff1a;在Typora里写完一篇技术博客或项目文档&#xff0c;内容详实&#xff0c;逻辑清晰&#xff0c;但通篇下来全是文字&#xff0c;总觉得少了点什么。想配几张图吧…...

PHY芯片寄存器设计揭秘:从5位地址到分页扩展的演进史

PHY芯片寄存器设计演进&#xff1a;从5位地址到分页扩展的技术革命 当我们在享受千兆以太网带来的高速数据传输时&#xff0c;很少有人会想到这背后隐藏着一场持续了数十年的寄存器架构演进。PHY芯片作为网络通信的物理层核心&#xff0c;其寄存器设计经历了从简单固定到复杂可…...

Blender 3MF插件终极指南:从零开始掌握3D打印文件格式

Blender 3MF插件终极指南&#xff1a;从零开始掌握3D打印文件格式 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 3MF&#xff08;3D Manufacturing Format&#xff09;格…...

SmallThinker-3B-Preview部署教程:边缘设备一键运行的保姆级指南

SmallThinker-3B-Preview部署教程&#xff1a;边缘设备一键运行的保姆级指南 想试试在树莓派或者你的旧笔记本上跑一个自己的AI助手吗&#xff1f;今天要聊的SmallThinker-3B-Preview&#xff0c;可能就是你的菜。它是个小个子&#xff0c;但本事不小&#xff0c;专门为那些内…...

AI动画创作新范式:Krita插件驱动的动态视觉叙事解决方案

AI动画创作新范式&#xff1a;Krita插件驱动的动态视觉叙事解决方案 【免费下载链接】krita-ai-diffusion Streamlined interface for generating images with AI in Krita. Inpaint and outpaint with optional text prompt, no tweaking required. 项目地址: https://gitco…...

MogFace人脸检测模型-large应用指南:从图片上传到结果分析,手把手教学

MogFace人脸检测模型-large应用指南&#xff1a;从图片上传到结果分析&#xff0c;手把手教学 1. 认识MogFace-large&#xff1a;为什么选择这个人脸检测模型 在开始实际操作之前&#xff0c;我们先简单了解下MogFace-large的核心优势。这个模型已经在Wider Face六项榜单上霸榜…...

深度学习音高检测:5个技巧掌握CREPE实时音高追踪

深度学习音高检测&#xff1a;5个技巧掌握CREPE实时音高追踪 【免费下载链接】crepe CREPE: A Convolutional REpresentation for Pitch Estimation -- pre-trained model (ICASSP 2018) 项目地址: https://gitcode.com/gh_mirrors/cr/crepe CREPE&#xff08;Convoluti…...

从CPU到内存:用74LS74芯片手把手教你搭建一个D边沿触发器(附波形图分析)

从面包板到示波器&#xff1a;用74LS74芯片实战D边沿触发器的完整指南 当你第一次在数字电路课本上看到"D边沿触发器"这个词时&#xff0c;是否感觉它像是一个抽象的黑盒子&#xff1f;教科书上的真值表和波形图虽然精确&#xff0c;但总缺少那么一点"触手可及&…...

STM32定时器时基单元详解:从PSC到ARR的完整配置指南(附代码)

STM32定时器时基单元实战指南&#xff1a;从寄存器配置到精准延时实现 在嵌入式开发中&#xff0c;定时器是最基础也最核心的外设之一。无论是简单的LED闪烁控制&#xff0c;还是复杂的电机PWM驱动&#xff0c;都离不开定时器的精准计时功能。对于STM32开发者来说&#xff0c;掌…...