测试开发探索:“WeTalk“网页聊天室的测试流程与自动化

news2024/11/25 7:09:08

目录

引言:

测试开发目标:

"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.coloradmin.cn/o/874508.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux操作系统】深入理解Linux系统编程中的传入参数、传出参数和传入传出参数

在Linux系统编程中,函数的参数扮演着至关重要的角色。参数的传递方式可以分为传入参数、传出参数和传入传出参数。本文将详细解释这三种参数的概念、特点以及如何使用它们来实现灵活和高效的函数调用和数据传递。 文章目录 1. 解释和举例1.1 传入参数(i…

案例15 Spring Boot入门案例

1. 选择Spring Initializr快速构建项目 ​ 2. 设置项目信息 ​ 3. 选择依赖 ​ 4. 设置项目名称 ​ 5. 项目结构 ​ 6. 项目依赖 自动配置了Spring MVC、内置了Tomcat、配置了Logback(日志)、配置了JSON。 ​ 7. 创建HelloController类 com.wfit.boot.hello目录下创建HelloCo…

NO.3 MyBatis获取参数的两种方式

目录 1、两种方式的区别 2、单个字面量类型的参数 2.1 在映射文件中,用#{}加任意名称获取参数的值: 2.2 在映射文件中,用${}加任意名称获取参数的值: 2.3 小结 3、在map集合类型的参数 3.1 使用MyBatis默认的map映射集合 …

delphi11中的自动启动和关闭unigui应用服务器

1、设置。 注意:全部。 taskkill /f /im $(OUTPUTFILENAME) 2>1 || exit /B 0 自动运行chrome打开unigui网页 unit ServerModule;interfaceuses Winapi.ShellAPI, vcl.Dialogs;typeTUniServerModule class(TUniGUIServerModule)procedure UniGUIServerModu…

不一般的自定义时间(html+css+js)

自定义时间 写文章的因 关于要写这篇文章的原因 是记录在工作上遇到的困难需求,是希望能给大家提供一些解决问题的思路 接下来我描述这个需求的多样性,难点在哪。 勾选勾选框开始时间与结束时间默认显示昨天与今天。取消勾选框开始时间与结束时间清空。…

spring源码核心

spring创建bean的生命周期&#xff08;大概&#xff09; 容器 可以理解容器为一个Map<beanName, bean对象> 通过类的构造方法创建对象 有两个有参构造方法&#xff0c;就坏了&#xff0c;spring不知道用哪个&#xff0c;这个时候可以加**Autowired** 有无参和有参时…

运营商二要素认证API接口:提供手机号实名验证服务,确保用户信息的真实性

随着互联网的快速发展&#xff0c;各行各业都需要用户进行实名认证。其中&#xff0c;涉及到用户个人信息的场景&#xff0c;如电商、游戏、直播、金融等需要用户实名认证的场景&#xff0c;必须要进行实名认证。然而&#xff0c;对于这些场景&#xff0c;用户的个人信息的真实…

04_14缺页异常,虚拟空间加深印象,匿名页,文件页

前言 写代码想知道某段时间内存够不够用 想更清楚高低水位 清楚虚拟ram和物理ram的关系 CPU通过地址总线可以访问连接在地址总线上的所有外设,包括物理内存、I0设备等等, 但从CPU发出的访问 地址并非是这些外设在地址总线上的物理地址&#xff0c; 而一个虚拟地址&#xff0c…

idea集成chatGPT,免费使用的bito神器

什么是Bito&#xff1f; Bito是一款在IntelliJ IDEA编辑器中的插件&#xff0c;Bito插件是由ChatGPT团队开发的&#xff0c;它是ChatGPT团队为了提高开发效率而开发的一款工具。ChatGPT团队是一支专注于自然语言处理技术的团队&#xff0c;他们开发了一款基于GPT的自然语言处理…

Springboot整合RabbitMq,详细使用步骤

Springboot整合RabbitMq&#xff0c;详细使用步骤 1 添加springboot-starter依赖2 添加连接配置3 在启动类上添加开启注解EnableRabbit4 创建RabbitMq的配置类&#xff0c;用于创建交换机&#xff0c;队列&#xff0c;绑定关系等基础信息。5 生产者推送消息6 消费者接收消息7 生…

优化堆排序(Java 实例代码)

目录 优化堆排序 Java 实例代码 src/runoob/heap/HeapSort.java 文件代码&#xff1a; 优化堆排序 上一节的堆排序&#xff0c;我们开辟了额外的空间进行构造堆和对堆进行排序。这一小节&#xff0c;我们进行优化&#xff0c;使用原地堆排序。 对于一个最大堆&#xff0c;首…

Azure概念介绍

云计算定义 云计算是一种使用网络进行存储和处理数据的计算方式。它通过将数据和应用程序存储在云端服务器上&#xff0c;使用户能够通过互联网访问和使用这些资源&#xff0c;而无需依赖于本地硬件和软件。 发展历史 云计算的概念最早可以追溯到20世纪60年代的时候&#x…

阿里云Alibaba Cloud Linux镜像系统介绍_常见问题解答FAQ

阿里云服务器操作系统Alibaba Cloud Linux镜像怎么样&#xff1f;可以代替CentOS吗&#xff1f;Alibaba Cloud Linux兼容性如何&#xff1f;有人维护吗&#xff1f;漏洞可以修复吗&#xff1f;Alibaba Cloud Linux完全兼容CentOS&#xff0c;并由阿里云官方免费提供长期维护。 …

数据统计与可视化的Dash应用程序

在数据分析和可视化领域&#xff0c;Dash是一个强大的工具&#xff0c;它结合了Python中的数据处理库&#xff08;如pandas&#xff09;和交互式可视化库&#xff08;如Plotly&#xff09;以及Web应用程序开发框架。本文将介绍如何使用Dash创建一个简单的数据统计和可视化应用程…

SpringBoot复习:(44)MyBatisAutoConfiguration

可以看到MyBatisAutoConfiguration引入了MyBatisProperties这个属性&#xff1a; MyBatisAutoConfiguration中配置了一个SqlSessionFactoryBean,代码如下&#xff1a; 可以配置mybatis-config.xml,需要配置文件里指定&#xff1a; mybatis.config-locationclasspath:/mybat…

ImportError: cannot import name ‘MutableMapping‘ from ‘collections‘解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

【FreeRtos基础入门】任务状态

文章目录 前言一、任务状态1.阻塞状态(Blocked)2.暂停状态(Suspended)3.就绪状态(Ready) 总结 前言 本freertos使用stm32系列单片机&#xff0c;使用其他的也可以&#xff0c;如esp系列等… 任务管理是实时操作系统&#xff08;RTOS&#xff09;的核心功能之一&#xff0c;它…

VMware Workstation中安装了Windows7系统但是VMware Tools选项为灰色及无法安装的解决方法

一、问题描述 当我们在使用VMware Workstation安装好了Windows7系统后;该安装好的Windows7系统并不能自动适配WMware的界面,只能在中间显示很小的一部分内容;此时我们就需要给Windows7系统安装VMware Tools工具; 问题一:WMware中的【安装VMware Tools】选项则是灰色的无法…

最强自动化测试框架Playwright(21)-测试生成器inspector

测试生成器 运行该命令时&#xff0c;将打开两个窗口&#xff0c;一个浏览器窗口&#xff0c;可以在其中与要测试的网站进行交互&#xff0c;另一个是Playwright Inspector窗口&#xff0c;可以在其中记录测试&#xff0c;然后将其复制到编辑器中。 使用该命令运行测试生成器…

7.9 SpringBoot实战 拷贝工具类,扩展BeanUtils.copyProperties

文章目录 前言一、拷贝普通对象Bean1.1 基础的Bean拷贝1.2 支持忽略某些属性1.3 支持忽略字段值为null的属性1.4 通用的Bean拷贝1.4.1 拷贝时可指定忽略属性1.4.2 拷贝时外加忽略null属性 二、拷贝集合对象List2.1 拷贝时可指定忽略属性2.2 拷贝时外加忽略null属性 三、拷贝分页…