测试开发探索:“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实施接口测试。通过设计针对每个模块的测试用例,我验证了登录功能、消息传递等核心功能。这不仅有助于及早发现问题,提升测试效率,还确保了系统的稳定性。测试开发在现代软件开发中扮演至关重要的角色,为项目成功交付提供了坚实支持。展望未来,测试开发将继续与技术创新紧密融合,为软件质量和用户体验的不断提升贡献力量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/88612.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vulnhub靶机Deathnote

难度:easy 下载地址:https://download.vulnhub.com/deathnote/Deathnote.ova 主机发现 arp-scan -l 端口扫描 nmap --min-rate 10000 -p- 192.168.21.140 进一步查看目标的端口的服务和版本 nmap -sV -sT -O -p22,80 192.168.21.140 扫描端口的漏洞…

CNN(四):ResNet与DenseNet结合--DPN

🍨 本文为🔗365天深度学习训练营中的学习记录博客🍖 原作者:K同学啊|接辅导、项目定制 前面实现了ResNet和DenseNet的算法,了解了它们有各自的特点: ResNet:通过建立前面层与后面层之间的“短路…

springboot生成表结构和表数据sql

需求 业务背景是需要某单机程序需要把正在进行的任务导出,然后另一台电脑上单机继续运行,我这里选择的方案是同步SQL形式,并保证ID随机,多个数据库不会重复。 实现 package com.nari.web.controller.demo.controller;import cn…

【大数据】Flink 详解(二):核心篇 Ⅱ

Flink 详解(二):核心篇 Ⅱ 22、刚才提到 State,那你简单说一下什么是 State。 在 Flink 中,状态 被称作 state,是用来保存中间的计算结果或者缓存数据。根据状态是否需要保存中间结果,分为 无状…

OpenCV基本操作——图像的基础操作

目录 图像的IO操作读取图像显示图像保存图像 绘制几何图形绘制直线绘制圆形绘制矩形向图像中添加文字效果展示 获取并修改图像中的像素点获取图像的属性图像通道的拆分与合并色彩空间的改变 图像的IO操作 读取图像 cv2.imread()import numpy as np import cv2 imgcv2.imread(…

7-4 求整数均值

本题要求编写程序,计算4个整数的和与平均值。题目保证输入与输出均在整型范围内。 输入格式: 输入在一行中给出4个整数,其间以空格分隔。 输出格式: 在一行中按照格式“Sum 和; Average 平均值”顺序输出和与平均值,其中平均值精确到小…

windows10 安装WSL2, Ubuntu,docker

AI- 通过docker开发调试部署ChatLLM 阅读时长:10分钟 本文内容: window上安装ubuntu虚拟机,并在虚拟机中安装docker,通过docker部署数字人模型,通过vscode链接到虚拟机进行开发调试.调试完成后,直接部署在云…

【C语言】每日一题(错误的集合)

最近在牛客、力扣上做题,花费海量时间,苦不堪言,有时绞尽脑汁也想不出,痛定思痛,每日记录写的比较困难的题。 错误的集合 题目如上图所示 题主乍看之下觉得很简单,再看例子,不就是一个有序数组…

Spring Boot单元测试与Mybatis单表增删改查

目录 1. Spring Boot单元测试 1.1 什么是单元测试? 1.2 单元测试有哪些好处? 1.3 Spring Boot 单元测试使用 单元测试的实现步骤 1. 生成单元测试类 2. 添加单元测试代码 简单的断言说明 2. Mybatis 单表增删改查 2.1 单表查询 2.2 参数占位符 ${} 和 #{} ${} 和 …

docker搭建LNMP

docker安装 略 下载镜像 nginx:最新版php-fpm:根据自己需求而定mysql:根据自己需求定 以下是我搭建LNMP使用的镜像版本 rootVM-12-16-ubuntu:/docker/lnmp/php/etc# docker images REPOSITORY TAG IMAGE ID CREATED SIZE mysql 8.0…

分支语句和循环语句(1)

这篇文章我们详细的把分支语句和循环语句给大家进行讲解。 分支语句: if switch 循环语句: while for do while goto语句: 1.什么是语句? C语句可分为以下五类: 1. 表达式语句 2. 函数调用语句 3. 控制…

opencv实战项目 手势识别-手势控制键盘

手势识别是一种人机交互技术,通过识别人的手势动作,从而实现对计算机、智能手机、智能电视等设备的操作和控制。 1. opencv实现手部追踪(定位手部关键点) 2.opencv实战项目 实现手势跟踪并返回位置信息(封装调用&am…

机器学习线性代数基础

本文是斯坦福大学CS 229机器学习课程的基础材料,原始文件下载 原文作者:Zico Kolter,修改:Chuong Do, Tengyu Ma 翻译:黄海广 备注:请关注github的更新,线性代数和概率论已经更新完毕…

多元最短路(Floyd)

是一个基于动态规划的全源最短路算法。它可以高效地求出图上任意两点之间的最短路 时间复杂度 O(n^3) 状态转移方程 f[i][j]min(f[i][j],f[i][k]f[k][j]) 核心代码 void floyd(){for(int k1;k<n;k)for(int i1;i<n;i)for(int j1;j<n;j)s[i][j]min(s[i][j],s[i][k…

springboot 基础

巩固基础&#xff0c;砥砺前行 。 只有不断重复&#xff0c;才能做到超越自己。 能坚持把简单的事情做到极致&#xff0c;也是不容易的。 SpringBoot JavaEE 简介 JavaEE的局限性&#xff1a; 1、过于复杂&#xff0c;JavaEE正对的是复杂的分布式企业应用&#xff0c;然而现实…

现代无人机技术

目录 1.发展 2.应用领域 3.对战争的影响 4.给人类带来的福利 5.给人类带来的坏处 1.发展 无人机的发展可以分为以下几个关键步骤&#xff1a; 1. 早期试验和研究&#xff1a;20世纪初&#xff0c;飞行器的概念开始出现&#xff0c;并进行了一些早期的试飞和实验。这些尝试包…

马来西亚的区块链和NFT市场调研

马来西亚的区块链和NFT市场调研 基本介绍 参考&#xff1a; https://zh.wikipedia.org/wiki/%E9%A9%AC%E6%9D%A5%E8%A5%BF%E4%BA%9A zz制度&#xff1a;联邦议会制 语言文字&#xff1a; 马来语 民族&#xff1a; 69.4%原住民&#xff08;土著&#xff09;&#xff0c;23.2%…

[HDLBits] Exams/m2014 q3

Consider the function f shown in the Karnaugh map below. Implement this function. d is dont-care, which means you may choose to output whatever value is convenient. //empty

【网络基础实战之路】实现RIP协议与OSPF协议间路由交流的实战详解

系列文章传送门&#xff1a; 【网络基础实战之路】设计网络划分的实战详解 【网络基础实战之路】一文弄懂TCP的三次握手与四次断开 【网络基础实战之路】基于MGRE多点协议的实战详解 【网络基础实战之路】基于OSPF协议建立两个MGRE网络的实验详解 PS&#xff1a;本要求基于…

Labview控制APx(Audio Precision)进行测试测量(七)

处理集群控制子集 大多数用户不会想要设置所有的控制包括在一个大的控制集群&#xff0c;如水平和增益配置控制。例如&#xff0c;假设您只在 APx 中使用模拟不平衡输出连接器&#xff0c;而您想要做的就是控制发电机的电平和频率。在这种情况下&#xff0c;水平和增益配置集群…