聊天室项目测试报告
项目介绍
本项目是一个基于Spring Boot框架开发的聊天室应用。一个实时的文本消息交流平台,允许多个用户同时在线聊天。系统采用了Spring Boot作为后端框架,集成了WebSocket技术以实现消息的实时推送与接收提供一个简单、易用且功能完备的在线聊天环境。
测试内容
用户注册与登录测试
测试用例1:正常注册与登录
- 测试步骤:
- 打开浏览器,输入聊天室应用的URL,访问注册页面。
- 在邮箱输入框中输入一个有效的邮箱地址。
- 在密码输入框中输入一个符合复杂度要求的密码。
- 输入密码再次确认密码
- 点击“发送验证码”按钮。
- 检查邮箱是否收到注册成功的确认邮件,并验证页面是否显示注册成功的提示信息。
- 打开登录页面,输入刚才注册的账号和密码。
- 点击“登录”按钮。
- 验证是否成功跳转到聊天室主界面,并显示用户已登录的状态。
- 预期结果:
- 注册页面显示注册成功提示。
- 邮箱收到注册成功的确认邮件。
- 登录页面跳转至聊天室主界面,显示用户已登录。
- 实际结果:
- 注册页面显示注册成功提示。
- 邮箱收到注册成功的确认邮件。
- 登录页面跳转至聊天室主界面,显示用户已登录。
测试用例2:用户名已存在
- 测试步骤:
- 访问注册页面。
- 输入一个已知已存在的用户名(如
existinguser
)和新的密码、邮箱。 - 点击“注册”按钮。
- 预期结果:
- 系统显示错误消息,提示用户名已存在。
- 用户无法完成注册。
- 实际结果:
- 系统显示错误消息,提示用户名已存在。
- 用户无法完成注册。
测试用例3:密码不符合要求
- 测试步骤:
- 访问注册页面。
- 输入一个有效的用户名(如
newuser
)。 - 输入一个不符合密码复杂度要求的密码(如
123
)。 - 输入邮箱地址。
- 点击“注册”按钮。
- 预期结果:
- 系统显示错误消息,提示密码不符合要求。
- 用户无法完成注册。
- 实际结果:
- 系统显示错误消息,提示密码不符合要求。
- 用户无法完成注册。
聊天功能测试
测试用例1:发送消息
- 测试步骤:
- 登录聊天室应用。
- 进入一个聊天室或创建一个新的聊天室。
- 在输入框中输入一条消息(如
Hello, everyone!
)。 - 点击“发送”按钮。
- 预期结果:
- 消息立即显示在聊天室的消息列表中。
- 消息内容准确无误。
- 实际结果:
- 消息立即显示在聊天室的消息列表中。
- 消息内容准确无误。
测试用例2:接收消息
- 测试步骤:
- 使用两个用户账号分别登录聊天室应用。
- 在一个用户账号下发送一条消息到聊天室。
- 切换到另一个用户账号,查看聊天室中的消息列表。
- 预期结果:
- 第二个用户账号能够实时接收到第一个用户发送的消息。
- 消息内容准确无误。
- 实际结果:
- 第二个用户账号能够实时接收到第一个用户发送的消息。
- 消息内容准确无误。
用户列表显示测试
测试用例1:用户列表显示
- 测试步骤:
- 登录聊天室应用。
- 进入一个聊天室。
- 查看聊天室界面上的用户列表区域。
- 预期结果:
- 用户列表显示当前聊天室中的所有在线用户。
- 用户列表中的用户名和头像(如果有)显示正确。
- 实际结果:
- 用户列表显示当前聊天室中的所有在线用户。
- 用户列表中的用户名和头像(如果有)显示正确。
测试用例2:用户状态更新
- 测试步骤:
- 记录当前聊天室中的在线用户列表。
- 使用一个用户账号退出聊天室(如关闭浏览器标签页或点击退出按钮)。
- 等待几秒钟,然后重新查看聊天室中的用户列表。
- 预期结果:
- 退出聊天室的用户不再显示在用户列表中。
- 用户列表实时更新以反映当前在线状态。
- 实际结果:
- 退出聊天室的用户不再显示在用户列表中。
- 用户列表实时更新以反映当前在线状态。
相关文章:
聊天室项目测试报告
项目介绍 本项目是一个基于Spring Boot框架开发的聊天室应用。一个实时的文本消息交流平台,允许多个用户同时在线聊天。系统采用了Spring Boot作为后端框架,集成了WebSocket技术以实现消息的实时推送与接收提供一个简单、易用且功能完备的在线聊天环境。…...
语音识别(实时语音转录)——funasr的详细部署和使用教程(包括实时语音转录)
阿里达摩院开源大型端到端语音识别工具包FunASR: FunASR提供了在大规模工业语料库上训练的模型,并能够将其部署到应用程序中。工具包的核心模型是Paraformer,这是一个非自回归的端到端语音识别模型,经过手动注释的普通话语音识别…...
【网络编程】TCP机械臂测试
通过w(红色臂角度增大)s(红色臂角度减小)d(蓝色臂角度增大)a(蓝色臂角度减小)按键控制机械臂 注意:关闭计算机的杀毒软件,电脑管家,防火墙 1)基于TCP服务器…...
笔记:在WPF中如何注册控件级全局事件和应用程序级全局事件
一、目的:在WPF中如何注册控件级全局事件和应用程序级全局事件 二、实现 应用程序级全局事件 //注册应用程序级全局事件 EventManager.RegisterClassHandler(typeof(Button), Button.ClickEvent, new RoutedEventHandler(ic_event_Click)); 如上代码既会注册全局…...
【Linux系列】telnet使用入门
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
音视频相关知识
H.264编码格式 音频 PCM就是要把声音从模拟信号转换成数字信号的一种技术,他的原理简单地说就是利用一个固定的频率对模拟信号进行采样。 pcm是无损音频音频文件格式...
数据结构--第七天
递归 -递归的概念 递归其实就是一种解决问题的办法,在C语言中:递归就是函数自己调用自己 -递归的思想 递归的思考方式就是把大事化小的过程 递归的递就是递推的意思,归就是回归的意思 (递归是少量的代码完成大量的运算)…...
代码随想录Day34:62.不同路径、63.不同路径II、343.整数拆分、96.不同的二叉搜索树
62. 不同路径 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径&…...
【信息学奥赛一本通】1008:计算(a+b)/c的值
1008:计算(ab)/c的值 时间限制: 1000 ms 内存限制: 66536 KB 提交数:164836 通过数: 142434 【题目描述】 给定3个整数a、b、c,计算表达式abc的值。 【输入】 输入仅一行,包括三个整数a、b、c, 数与数之间以一个空格分开。(-10,…...
使用 jstat 进行 Java 应用程序性能监控
jstat 使用经验笔记 1. 简介 jstat 是 Java 开发工具包 (JDK) 中的一个命令行工具,用于监控 Java 虚拟机 (JVM) 的运行时状态,特别是垃圾回收 (Garbage Collection, GC) 的行为。通过使用 jstat,你可以监控和诊断 Java 应用程序的内存使用情…...
Prompt指令调优大揭秘
Hey,技术达人们!今天咱们就来聊聊Prompt指令调优的那些事儿。想象一下,你有一个超级智能的AI小伙伴,但要让它更懂你,更给力,那就得靠点“魔法”——Prompt指令调优。准备好了吗?让我们一探究竟&…...
C语言中的⽂件操作
1. 为什么使⽤⽂件? 如果没有⽂件,我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存回收,数据就丢失了,等再次运⾏程序,是看不到上次程序的数据的,如果要将数据进⾏持久化…...
黑马前端——days14_js
案例 1 页面框架文件 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title>&l…...
【自动驾驶】ROS中参数服务器通信(c++)
目录 通信过程新建参数服务器包编写测试文件修改cmakelist:搭配launch文件启动测试及结果 通信过程 1.Talker 设置参数 Talker 通过 RPC 向参数服务器发送参数(包括参数名与参数值),ROS Master 将参数保存到参数列表中。 2.Listener 获取参数 Listener 通过 RPC 向…...
零基础5分钟上手亚马逊云科技核心云开发知识 - 网络基础
简介: 欢迎来到小李哥全新亚马逊云科技AWS云计算知识学习系列,适用于任何无云计算或者亚马逊云科技技术背景的开发者,通过这篇文章大家零基础5分钟就能完全学会亚马逊云科技一个经典的服务开发架构方案。 我会每天介绍一个基于亚马逊云科技…...
Unity Recttransform操作
1、拉伸铺满 RectTransform rect GetComponent<RectTransform>();rect.anchorMin Vector2.zero;rect.anchorMax Vector2.one;rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, Screen.width);rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Verti…...
MIT线性代数P5
置换矩阵 置换矩阵是行重新排列的单位矩阵。 置换矩阵用P表示, 性质: n阶置换矩阵共有n!个...
patroni+etcd开启SSL认证(三个节点证书一致 使用openssl命令)
瀚高数据库 目录 环境 文档用途 详细信息 环境 系统平台:Linux x86-64 Red Hat Enterprise Linux 7 版本:14 文档用途 本文主要介绍Patroni架构中如何开启etcd的ssl证书认证。 详细信息 一、前提说明 patroni版本:3.0.2 etcd版本&#x…...
Eureka入门指南:微服务注册与发现的基础概念
Eureka入门指南:微服务注册与发现的基础概念 引言 随着微服务架构的普及,微服务之间的高效通信和管理成为了开发和运维的核心挑战之一。为了解决服务发现和管理问题,Netflix推出了Eureka,一个功能强大的服务注册和发现工具。Eur…...
Linux:动态库和静态库
静态库与动态库 A:静态库(.a):程序在编译链接的时候把库的代码链接到可执行文件中。程序运行的时候将不再需要静态库。 B:动态库(.so):程序在运行的时候才去链接动态库的代码&#…...
8.13网络编程
笔记 多点通信 一、套接字属性 套接字属性的获取和设置 #include <sys/types.h> /* See NOTES */#include <sys/socket.h>int getsockopt(int sockfd, int level, int optname,void *optval, socklen_t *optlen);int setsockopt(int sockfd, int level…...
蚂蚁AL1 15.6T 创新科技的新典范
● 哈希率:算力达到15.6T(相当于15600G),即每秒能够进行15.6万亿次哈希计算,在同类产品中算力较为出色,能提高WA掘效率。 ● 功耗:功耗为3510W,虽然数值看似不低,但结合其…...
2024年【汽车驾驶员(技师)】考试报名及汽车驾驶员(技师)试题及解析
题库来源:安全生产模拟考试一点通公众号小程序 汽车驾驶员(技师)考试报名参考答案及汽车驾驶员(技师)考试试题解析是安全生产模拟考试一点通题库老师及汽车驾驶员(技师)操作证已考过的学员汇总…...
2024年【甘肃省安全员C证】报名考试及甘肃省安全员C证考试总结
题库来源:安全生产模拟考试一点通公众号小程序 甘肃省安全员C证报名考试参考答案及甘肃省安全员C证考试试题解析是安全生产模拟考试一点通题库老师及甘肃省安全员C证操作证已考过的学员汇总,相对有效帮助甘肃省安全员C证考试总结学员顺利通过考试。 1、…...
RabbitMQ 双机系统偶尔丢失消息问题排查
实话说起来,这个问题,实际是一个非常低级的错误导致的,算不得什么高深的技术问题。但是在排查的过程中,却是费了好大的功夫,死了不少脑细胞。所以也值得记录一下,算作给大家提个醒,或许可以帮大…...
Python 环境搭建指南 超详细
Python是由荷兰⼈吉多范罗苏姆(Guido von Rossum,后⾯都称呼他为Guido)发明的⼀种编程语言 1. 1989年圣诞节:Guido开始写Python语⾔的编译器。2. 1991年2⽉:第⼀个Python解释器诞⽣,它是⽤C语⾔实现的&…...
使用三菱PLC源码进行PLC读取写入操作
安装 MX Component 。 我的安装地址在: 打开 utl 文件夹下的 Communication Settings Utility 执行。 配置PLC 添加当前需要配置的PLC 注意 logical station Namber 就是程序里需要对接的逻辑站点编号 5.配置选择对应的COM操作选择对应的cpu型型号,…...
使用Nvm切换nodeJs高版本之后,使用npm install一闪而过
先说现象,最近又有几个项目接手,其中有一个使用NVM切换至高版本node后,出现如下症状; 没有任何提示,然后翻看文件目录,node_modules目录没有创建,同时在全局 npm config set prefix 设置的目录下 多了一个 pgn的快捷,指向项目目录。 使用百度或者chart-gtp,搜索到的答案…...
【Kubernetes】k8s集群安全机制
目录 一.认证 1.k8s集群内的三种认证方式 2.k8s集群内的认证说明 2.1.需要被认证的访问类型 2.2.安全性说明 2.3.证书颁发的方式 2.4.kubeconfig 2.5.Service Account 2.6.Secret 与 SA 的关系 二.鉴权 1.鉴权的方式 2.RBAC的角色与角色绑定 2.1.RBAC的角色 2.2…...
嵌入式学习---DAY24:进程--二
一、exec函数族----启动一个新程序 用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支), 子进程往往要调用一种exec函数以执行另一个程序。当进程调用一种exec函数时,该进程的 用户空间代码和数据完全被…...
Diffusion Model相关论文解析之(二)DENOISING DIFFUSION IMPLICIT MODELS
目录 1、摘要2、创新点3、主要公式4、自己的理解,对错不确定 1、摘要 Denoising Diffusion Implicit Models (DDIM)是一种扩散模型的改进版本,旨在加速采样过程并提高采样速度。DDIM通过引入非马尔可夫扩散过程,相对于传统的去噪扩散概率…...
【STM32嵌入式系统设计与开发拓展】——14_定时器之输入捕获
参考哔站:链接: 铁头山羊 一、微控制器的高级定时与控制功能集合 1、时基单元 2、输入捕获 3、输出比较 4、从模式控制器 5、高级定时器的输出控制 二、问题集合 1、什么是定时器 定时器是一种专门负责定时功能的片上外设GPI0AFI0EXTIUSART RCC I2C) 2、定时器…...
docker swarm如何让两个副本分别跑在两台不同的主机上
虽然 docker swarm 支持自动扩容部署,但是为了服务的稳定性、可靠性,有的时候甲方巴巴会要求一定要服务分散部署在不同的服务器上。 使用默认的部署方式,虽然副本为 N,但是部署的 N 个服务可能落在同一台服务器上。 在 Docker Swa…...
GPT助手的训练流程四个主要阶段( GPT Assistant training pipeline )
GPT助手的训练流程四个主要阶段( GPT Assistant training pipeline ) flyfish 四个阶段 预训练(pre-training) 监督微调(supervised fine tuning, SFT) 奖励建模(reward modeling)…...
网络如何发送一个数据包
网络如何发送一个数据包 网络消息发送就是点一点屏幕。 骚瑞,这一点都不好笑。(小品就是我的本质惹) 之前我就是会被这个问题搞的不安宁。是怎么知道对方的IP地址的呢?怎么知道对方的MAC呢?世界上计算机有那么多&…...
【Harmony OS 4.0】向上滑动加载案例
// 自定义class类对象类型 class Article {public id: numberpublic title: stringpublic content: stringconstructor(id: number, title: string, content: string) {this.id idthis.title titlethis.content content} }// 子组件 Component struct ArticleComponent {Pro…...
SQL基础教程(八)SQL高级处理
※食用指南:文章内容为《SQL基础教程》系列学习笔记,该书对新手入门非常友好,循序渐进,浅显易懂,本人主要用来补全学习MySQL中未涉及的部分,便于刷题和做项目。 官方电子书:《SQL基础教程》第2…...
[论文笔记] Data-Juicer: A One-Stop Data Processing System for Large Language Models
https://arxiv.org/pdf/2309.02033 GitHub - modelscope/data-juicer: A one-stop data processing system to make data higher-quality, juicier, and more digestible for (multimodal) LLMs! 🍎 🍋 🌽 ➡️ ➡️🍸 🍹 🍷为大模型提供更高质量、更丰富、更易”…...
期末速成复习资料——操作系统
体型:选择20判断10填空10*2简答4*5计算2*10 第一章 在一个计算机系统中,通常都含有多种硬件和软件资源。归纳起来可将这些资源分为四类:处理机、存储器、I/O设备以及文件(数据和程序)。相应地,OS的主要功能…...
Android之Service与IntentService区别
目录 Service特点使用场景示例 IntentService特点使用场景示例 区别总结线程管理:生命周期:使用场景:自动停止: 总结 在Android开发中,Service是一个可以在后台执行长时间运行操作的组件。主要有两种类型的Service&…...
【MySQL】表的设计
系列文章目录 第一章 数据库基础 第二章 数据库基本操作 第三章数据库约束 文章目录 系列文章目录前言一、表的设计二、表的关系总结 前言 在前文中,我们学会了基本的CRUD操作,对数据库中的数据进行约束以提高数据库的准确性。接下来介绍的表的设计就是…...
NC 用两个栈实现队列
系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 描述 用两个栈来实…...
用后端实现一个简单的登录模块2 前端页面
该模块能做到的功能: 1阶:输入账号和密码,输入正确即可返回登录成功的信息,反之则登录失败 2阶:有简单的前端页面,有登录成功和失败的弹窗,还有登录成功的主页面 3阶:前端页面的注…...
MySQL慢查询的查找语法
一、引言 数据库查询快慢是影响项目性能的一大因素,对于数据库,我们除了要优化SQL,更重要的是得先找到需要优化的SQL语句。 性能优化的思路 首先需要使用慢查询功能,去获取所有查询时间比较长的SQL语句其次使用explain命令去查…...
SQL中的聚合方法与Pandas的对应关系
在SQL和Pandas中,聚合方法是用来对数据进行汇总统计的重要工具。下面是SQL中的各种聚合方法及其与Pandas中相应操作的对应关系: 1. COUNT SQL: COUNT(*) 返回表中的行数。COUNT(column) 返回指定列中非空值的数量。 Pandas: count() 方法用于计算非空值…...
计算机毕业设计选题推荐-计算中心高性能集群共享平台-Java/Python项目实战
✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…...
仿RabbitMq实现简易消息队列基础篇(future操作实现异步线程池)
TOC 介绍 std::future 是C11标准库中的一个模板类,他表示一个异步操作的结果,当我们在多线程编程中使用异步任务时,std::future可以帮助我们在需要的时候,获取任务的执行结果,std::future 的一个重要特性是能…...
经典算法题总结:数组常用技巧(双指针,二分查找和位运算)篇
双指针 在处理数组和链表相关问题时,双指针技巧是经常用到的,双指针技巧主要分为两类:左右指针和快慢指针。所谓左右指针,就是两个指针相向而行或者相背而行;而所谓快慢指针,就是两个指针同向而行…...
版本控制基础理论
一、本地版本控制 在本地记录文件每次的更新,可以对每个版本做一个快照,或是记录补丁文件,适合个人使用,如RCS. 二、集中式版本控制(代表SVN) 所有的版本数据都保存在服务器上,协同开发者从…...
微分方程(Blanchard Differential Equations 4th)中文版Section1.4
1.4 NUMERICAL TECHNIQUE: EULER’S METHOD 上一节中讨论的斜率场的几何概念与近似微分方程解的基本数值方法密切相关。给定一个初值问题 d y d t = f ( t , y ) , y ( t 0 ) = y 0 , \frac{dy}{dt}=f(t,y), \quad y(t_0) = y_0, dtdy=f(t,y),y(t0)=y0, 我们可以通过首…...