测试开发探索:“WeTalk“网页聊天室的测试流程与自动化
目录
引言:
测试开发目标:
"WeTalk"项目背景
关于登录测试用例的设计
测试开发策略与流程
集成测试:Selenium + JUnit
接口测试:Postman
测试用例的设计与实现
自动化测试演示:
用例一:登录成功测试
用例二:登录失败测试
用例三:测试能否聊天
用例四:测试删除聊天记录
用例五:测试搜索用户
用例六:测试删除好友
用例七:测试添加好友
结语:
引言:
在软件开发中,测试开发发挥着至关重要的作用,它不仅可以提高测试效率,还能够确保项目的稳定性和可靠性。本篇博客将深入研究我在"WeTalk"网页聊天室项目中应用的测试开发策略和自动化技术,以及它们对项目质量的影响。
测试开发目标:
- 设计可靠的自动化测试用例,覆盖项目核心功能和不同场景。
- 提高测试效率,减少手动测试的工作量,加速项目交付。
- 保障持续集成与持续交付流程,确保每次代码提交都经过全面的测试。
"WeTalk"项目背景
"WeTalk"是一款现代化的网页聊天室应用,它为用户提供了便捷的沟通平台,让人与人之间的交流变得更加亲近。目标是打造一个稳定、高效、用户友好的聊天平台,这就需要充分的测试覆盖和质量保障。
WeTalk项目详情见我上篇博客:项目介绍:《WeTalk》网页聊天室 — Spring Boot、MyBatis、MySQL和WebSocket的奇妙融合_谦虚的荆南芒果的博客-CSDN博客
关于登录测试用例的设计

我从功能、界面、兼容、易用,安全,网络等方面来猜想可能遇到的问题,从而去设计它
测试开发策略与流程
在"WeTalk"项目中,我们采用了一系列的测试开发策略和流程,以确保项目的质量。首先,我们从需求分析阶段就开始考虑测试用例的设计,明确每个功能点的预期行为。然后,我们使用自动化测试框架搭建了一套全面的自动化测试体系,用于集成测试。这些自动化测试用例涵盖了项目的核心功能,以及不同场景下的测试情况。
集成测试:Selenium + JUnit
为了验证"WeTalk"项目的各个模块在整合时是否协同工作,我选择了Selenium作为自动化测试工具,并结合JUnit来编写集成测试用例。通过模拟用户的操作,我能够自动化地测试用户界面的功能、交互以及不同模块之间的集成情况。例如,针对登录功能,我编写了Selenium脚本,模拟用户输入用户名和密码,然后验证登录是否成功,同时检查用户是否能够正确跳转到主界面。
集成测试不仅帮助我发现了多个模块之间的交互问题,还确保了系统在整体上的稳定性。Selenium的强大功能使得我能够模拟各种用户场景,验证系统在不同情况下的表现,从而为项目的质量提供了坚实的保障。
接口测试:Postman
除了集成测试,我还采用了Postman工具来进行接口测试。对于登录等功能,我使用Postman发送登录请求,并验证返回的状态码、响应数据以及相关字段是否符合预期。
使用Postman进行接口测试的好处在于,它能够帮助我快速测试不同的API,节省了大量的人工测试时间,同时还能够进行数据验证,确保数据的准确性和完整性。
测试用例的设计与实现
我根据每个模块的功能,设计了一系列针对单元测试的测试用例。例如,对于用户登录功能,我编写了测试用例来验证用户输入正确的用户名和密码时是否能够成功登录,以及输入错误的用户名和密码时是否能够正确提示用户。对于消息发送功能,我测试了消息是否能够正确传递给接收方并显示在界面上。通过这些测试用例,能够确保各个模块的基本功能正常运行。
自动化测试演示:
基于selenium3和Junit5来编写的代码
用例一:登录成功测试
输入正确的用户名和密码,预期结果:登录成功

测试结果:通过
用例二:登录失败测试
输入错误的用户名和密码,预期结果:登录失败

测试结果:通过
用例三:测试能否聊天
接下来我们来测试能否两个用户互相发消息,由于我的WeTalk在登录时使用了相同的Cookie名称来存储会话信息,浏览器可能会将它们视为同一个Cookie,并导致只能保持一个用户的登录状态。所以我们必须得开无痕模式才能一个浏览器登录两个用户
测试用户发消息,另外一个用户是否能即时接收,预期结果:可以即时接收其他用户发来的消息

测试结果:通过
用例四:测试删除聊天记录
测试删除聊天记录,预期结果:聊天记录被删除

测试结果:通过
用例五:测试搜索用户
测试能否搜索用户,预期结果:用户被搜索到

测试结果:通过
用例六:测试删除好友
测试删除好友,预期结果:好友被删除,与好友的聊天记录也消失了

测试结果:通过
用例七:测试添加好友
测试能否添加好友,预期结果:用户发送好友申请,另外一个用户接受该申请

测试结果:通过
结语:
在"WeTalk"项目中,我精心构建了测试开发体系,融合Selenium与JUnit进行集成测试,使用Postman实施接口测试。通过设计针对每个模块的测试用例,我验证了登录功能、消息传递等核心功能。这不仅有助于及早发现问题,提升测试效率,还确保了系统的稳定性。测试开发在现代软件开发中扮演至关重要的角色,为项目成功交付提供了坚实支持。展望未来,测试开发将继续与技术创新紧密融合,为软件质量和用户体验的不断提升贡献力量。
相关文章:
测试开发探索:“WeTalk“网页聊天室的测试流程与自动化
目录 引言: 测试开发目标: "WeTalk"项目背景 关于登录测试用例的设计 测试开发策略与流程 集成测试:Selenium JUnit 接口测试:Postman 测试用例的设计与实现 自动化测试演示: 用例一:登…...
图片增强组件实现
设计并实现了一个图片增强的组件,具体功能如下: 图片数据增强,包括且不限于:图片旋转、比例增强、高斯噪声、饱和度变换等若图片包含对应标注boundingbox,也支持对应变换,保证圈选内容的不变性实现多种方式…...
go.sum are different when using go mod vendor/download
本地Golang配置 今天本地编译一个项目,遇到以下错误 PS D:\Code\Golang\jiankunking\k8s-ext> go mod tidy go: downloading github.com/huaweicloud/huaweicloud-sdk-go-obs v3.23.4incompatible verifying github.com/gin-gonic/ginv1.7.3: checksum mismat…...
Docker技术入门教程
Docker技术入门教程 一、docker概念 一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。作为开发运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本的迭代之后&a…...
Vue2-组件,组件的使用及注意点,组件嵌套,VueComponent构造函数,单文件组件
🥔:功不唐捐 更多Vue知识请点击——Vue.js VUE-Day5 组件与使用组件的三大步1、定义组件(创建组件)2、注册组件①局部注册②全局注册 3、使用组件小案例: 使用组件的一些注意点1.关于组件名2.关于组件标签3.一个简写方式 组件的嵌套VueCompon…...
IntelliJ IDEA Bookmark使用
1 增加 右键行号栏 2 查看 从favorite这里查看 参考IntelliJ IDEA 小技巧:Bookmark(书签)的使用_bookmark idea 使用_大唐冠军侯的博客-CSDN博客...
kriging-contour前端克里金插值
先看效果: 本项目在kriging-contour插件基础上进行了封装,增加了自定义区域插值,gitbub地址。...
第八章 CUDA内存应用与性能优化篇(中篇)
cuda教程目录 第一章 指针篇 第二章 CUDA原理篇 第三章 CUDA编译器环境配置篇 第四章 kernel函数基础篇 第五章 kernel索引(index)篇 第六章 kenel矩阵计算实战篇 第七章 kenel实战强化篇 第八章 CUDA内存应用与性能优化篇 第九章 CUDA原子(atomic)实战篇 第十章 CUDA流(strea…...
适用于物联网 (IoT)的远距离、低功耗、低速率WiFi—Wi-Fi HaLow
1. Wi-Fi 简介 Wi-Fi(Wireless Fidelity)是目前较为常见的无线通信方式,承载着一半以上的互联网流量。Wi-Fi是一个总称,涵盖了802.11通信协议系列,由Wi-Fi联盟持有并推动其发展。802.11通信协议发展至今已逾二十年&am…...
【解读Spikingjelly】使用单层全连接SNN识别MNIST
原文档:使用单层全连接SNN识别MNIST — spikingjelly alpha 文档 代码地址:完整的代码位于activation_based.examples.lif_fc_mnist.py GitHub - fangwei123456/spikingjelly: SpikingJelly is an open-source deep learning framework for Spiking Neur…...
穿越数字奇境:探寻元宇宙中的科技奇迹
随着科技的迅速发展,元宇宙正逐渐成为一个备受关注的话题,它不仅是虚拟现实的延伸,更是将现实世界与数字世界融合的未来典范。在这个神秘而充满活力的数字奇境中,涉及了众多领域和技术,为我们呈现出了一个无限的创新和…...
2024」预备研究生mem-阴影图形
一、阴影图形 二、课后题...
【设计模式】责任链模式
顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。 在这种模式中,通常每个接收者…...
解密人工智能:线性回归 | 逻辑回归 | SVM
文章目录 1、机器学习算法简介1.1 机器学习算法包含的两个步骤1.2 机器学习算法的分类 2、线性回归算法2.1 线性回归的假设是什么?2.2 如何确定线性回归模型的拟合优度?2.3 如何处理线性回归中的异常值? 3、逻辑回归算法3.1 什么是逻辑函数?…...
【FFMPEG应用篇】使用FFmpeg的常见问题
拼接视频的问题 在使用ffmpeg进行视频拼接时,可能会遇到一些常见问题。以下是这些问题及其解决方法: 1. 视频格式不兼容:如果要拼接的视频格式不同,ffmpeg可能会报错。解决方法是使用ffmpeg进行格式转换,将所有视频转…...
(vue)获取对象的键遍历,同时循环el-tab页展示key及内容
(vue)获取对象的键遍历,同时循环el-tab页展示key及内容 效果: 数据结构: "statusData": {"订购广度": [ {"id": 11, "ztName": "广", …...
【严重】Smartbi未授权设置Token回调地址获取管理员权限
漏洞描述 Smartbi是一款商业智能应用,提供了数据集成、分析、可视化等功能,帮助用户理解和使用他们的数据进行决策。 在 Smartbi 受影响版本中存在Token回调地址漏洞,未授权的攻击者可以通过向目标系统发送POST请求/smartbix/api/monitor/s…...
北京鸟巢门票多少,里面有什么好玩的
北京鸟巢门票多少,里面有什么好玩的 北京鸟巢的门票是100元,里面有很多运动设施,“鸟巢”结构设计奇特新颖,而这次搭建它的钢结构的Q460也有很多独到之处:Q460是一种低合金高强度钢,它在受力强度达到460兆帕…...
4路光栅尺磁栅尺编码器5MHz高速差分信号转Modbus TCP网络模块 YL97
特点: ● 光栅尺磁栅尺解码转换成标准Modbus TCP协议 ● 光栅尺5V差分信号直接输入,4倍频计数 ● 模块可以输出5V的电源给光栅尺供电 ● 高速光栅尺磁栅尺计数,频率可达5MHz ● 支持4个光栅尺同时计数,可识别正反转 ● 可网…...
金蝶云星空对接打通旺店通·企业奇门组装拆卸单查询接口与创建其他出库单接口
金蝶云星空对接打通旺店通企业奇门组装拆卸单查询接口与创建其他出库单接口 编辑 源系统:金蝶云星空 金蝶K/3Cloud(金蝶云星空)是移动互联网时代的新型ERP,是基于WEB2.0与云技术的新时代企业管理服务平台。金蝶K/3Cloud围绕着“生态、人人…...
华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...
IP如何挑?2025年海外专线IP如何购买?
你花了时间和预算买了IP,结果IP质量不佳,项目效率低下不说,还可能带来莫名的网络问题,是不是太闹心了?尤其是在面对海外专线IP时,到底怎么才能买到适合自己的呢?所以,挑IP绝对是个技…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...
CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...
