[易聊]软件项目测试报告

ops/2024/9/25 11:39:05/

一、项目背景

  1. 随着互联网发展,各种各样的软件,比如游戏、短视频、购物软件中都有好友聊天功能,这是一个可在浏览器中与好友进行实时聊天的网页程序。“ 易聊 ”相对于一般的聊天软件,可以让用户免安装、随时随地的通过浏览器网页实现与朋友在线聊天。
  2. 项目整体采用前后端分离的方式实现,同时使用数据库进行数据的持久化存储,前端主要由登录界、注册界面,聊天主界面构成,后端使用Java流行的SpringBoot框架来进行服务器搭建。
  3. 该项目实现了简单的表情发送,图片发送,具有一定的可扩展性,如视频通话,发送语音等。

二、项目介绍

  1. 开发环境:IDEA版本2023.2、Win10 、JDK17、MySQL5.7
  2. 通信协议:项目整体通信基于HTTP通信协议、在线消息发送升级成Websocket协议。
  3. 功能介绍:
  • 用户登录:在输入正确的用户名、密码后跳转到主界面;未登陆状态访问聊天界面跳转到登录界面;禁止用户重复登录。
  • 用户注册:前后端数据通信采用通信,用户注册时存储采用密码加密存储
  • 好友管理:可以通过查询用户名,实时发送好友申请,也可以删除好友。
  • 聊天信息管理:当对方在线时,实时收到消息(文本、图片),对方不在现时,信息存储到数据库中,用户上线可查看;用户可单向删除聊天记录。
    4.项目代码链接

三、测试计划

(一)功能测试

  1. 测试用例
    在这里插入图片描述

  2. 执行测试的部分操作/截图
    (1)查询好友

  • 空输入查询
    在这里插入图片描述

  • 部分用户名查询
    在这里插入图片描述

  • 完整用户名查询
    在这里插入图片描述

(2)添加好友

  • 好友申请发送
    在这里插入图片描述
    在这里插入图片描述

  • 好友申请接收
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(3)删除好友
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

(二)部分自动化测试

  1. 自动化测试步骤(消息发送功能)
    (1) 两名测试用户账号分别通过打开无痕模式下浏览器,进行用户登录;
    (2) 分别打开对方的聊天框;
    (3) 用户1向用户2发送测试消息;
    (4) 后端拿到最新消息进行比对;
    (5) 得到测试结果;
  2. 测试代码
java">public class Main {public static void main(String[] args) throws InterruptedException {FirstTest firstTest = new FirstTest();firstTest.test01();}
}
public class FirstTest {void test01() throws InterruptedException {//1.创建驱动,打开浏览器WebDriverManager.chromedriver().setup();ChromeOptions options = new ChromeOptions();options.addArguments("--remote-allow-origins=*");options.addArguments("--incognito");WebDriver driver = new ChromeDriver(options);//2.打开登录网址driver.get("http://127.0.0.1:8080/login.html");//3.找到账号密码框WebElement id = driver.findElement(By.cssSelector("#text"));WebElement password = driver.findElement(By.cssSelector("#myInput"));WebElement login = driver.findElement(By.cssSelector("body > section > div.content-w3ls.text-center > div:nth-child(4) > button"));//4.输入正确的账号密码id.sendKeys("李佳俊");password.sendKeys("123456");//5.点击登录login.click();Thread.sleep(1000);driver.switchTo().alert().accept();Thread.sleep(1000);String s = driver.findElement(By.cssSelector("body > div.client-container > div.main > div.left > div.user")).getText();if(s.equals("李佳俊")){System.out.println("测试用户李佳俊登陆成功");}else {System.out.println(s);System.out.println("登陆失败");}SecondTest secondTest = new SecondTest();Thread thread2 = new Thread(()->{try {secondTest.test01();} catch (InterruptedException e) {throw new RuntimeException(e);}});thread2.start();Thread.sleep(5000);driver.findElement(By.cssSelector("#session-list > li")).click();Thread.sleep(1000);driver.findElement(By.cssSelector("#messageInput")).sendKeys(Constant.TEST_MESSAGE);Thread.sleep(1000);driver.findElement(By.cssSelector("#send")).click();Thread.sleep(1000);List<WebElement> elements = driver.findElements(By.cssSelector("body > div.client-container > div.main > div:nth-child(2) > div.message-show > div > div > p"));WebElement element = elements.get(elements.size()-1);if(element.getText().equals(Constant.TEST_MESSAGE)){System.out.println("消息发送成功");}else {System.out.println("消息发送失败"+element.getText());}driver.quit();}
}
public class SecondTest {void test01() throws InterruptedException {//1.创建驱动,打开浏览器WebDriverManager.chromedriver().setup();ChromeOptions options = new ChromeOptions();options.addArguments("--remote-allow-origins=*");//无痕模式options.addArguments("--incognito");WebDriver driver = new ChromeDriver(options);//2.打开登录网址driver.get("http://127.0.0.1:8080/login.html");//3.找到账号密码框WebElement id = driver.findElement(By.cssSelector("#text"));WebElement password = driver.findElement(By.cssSelector("#myInput"));WebElement login = driver.findElement(By.cssSelector("body > section > div.content-w3ls.text-center > div:nth-child(4) > button"));//4.输入正确的账号密码id.sendKeys("苏宣");password.sendKeys("123456");//5.点击登录login.click();Thread.sleep(1000);driver.switchTo().alert().accept();Thread.sleep(1000);String s = driver.findElement(By.cssSelector("body > div.client-container > div.main > div.left > div.user")).getText();if(s.equals("苏宣")){System.out.println("测试苏宣用户登陆成功");}else {System.out.println(s);System.out.println("登陆失败");}Thread.sleep(1000);driver.findElement(By.cssSelector("#session-list > li")).click();Thread.sleep(5000);List<WebElement> elements = driver.findElements(By.cssSelector("body > div.client-container > div.main > div:nth-child(2) > div.message-show > div > div > p"));WebElement element = elements.get(elements.size()-1);if(element.getText().equals(Constant.TEST_MESSAGE)){System.out.println("消息接收成功");}else {System.out.println("消息接收失败"+element.getText());}driver.quit();}
}

3.测试结果截屏

在这里插入图片描述

(三)性能测试

持续更新…


http://www.ppmy.cn/ops/102343.html

相关文章

Behavior Retrieval: Few-Shot Imitation Learning by Querying Unlabeled Datasets

发表时间&#xff1a;13 May 2023 论文链接&#xff1a;https://readpaper.com/pdf-annotate/note?pdfId1900983943467731200&noteId2446646993511259136 作者单位&#xff1a;Stanford University Motivation&#xff1a;使机器人能够以数据有效的方式学习新的视觉运动…

FLUX 1 将像 Stable Diffusion 一样完整支持ControlNet组件

之前 InstantX 团队做的多合一的 Flux ControlNet 现在开始和 ShakkerAI 合作并推出了&#xff1a;Shakker-Labs/FLUX.1-dev-ControlNet-Union-Pro 该模型支持 7 种控制模式&#xff0c;包括 canny (0), tile (1), depth (2), blur (3), pose (4), gray (5) 和 low quality (6)…

鸿蒙(API 12 Beta3版)【媒体资源使用指导】Media Library Kit媒体文件管理服务

应用可以通过photoAccessHelper的接口&#xff0c;对媒体资源&#xff08;图片、视频&#xff09;进行相关操作。 说明 在进行功能开发前&#xff0c;请开发者查阅[开发准备]&#xff0c;了解如何获取相册管理模块实例和如何申请相册管理模块功能开发相关权限。文档中使用到p…

Android App启动流程

1.通过 Launcher 启动应用时&#xff0c;点击应用图标后&#xff0c;Launcher 调用 startActivity 启动应用。 2.Launcher Activity 最终调用 Instrumentation 的 execStartActivity 来启动应用。 3.Instrumentation 调用 ActivityManagerProxy (ActivityManagerService 在应…

springboot调用sap接口传输数据,RFC协议接口调用,包含linux,windows部署

背景&#xff1a;我这边需要将一串数组写入到sap系统中&#xff0c;原本希望sap能提供rest形式接口&#xff0c;可惜sap开发那边说sap对外都是rfc接口&#xff0c;现在记录一下sap接口对接&#xff0c;给其他小伙伴提供点经验。 1、首先必须有对应的原料&#xff0c;驱动jar包…

力扣363.矩形区域不超过K的最大数值和

力扣363.矩形区域不超过K的最大数值和 前缀和 枚举上下边界&#xff0c;每次枚举将上下边界之间的同列元素加和转化为一维前缀和问题&#xff0c;求Sr - Sl < k的最大值&#xff0c;即Sl > Sr - k的最小值考虑用lowerbound&#xff0c;可以用一个有序集合存此前遍历过的前…

<数据集>无人机识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;9229张 标注数量(xml文件个数)&#xff1a;9229 标注数量(txt文件个数)&#xff1a;9229 标注类别数&#xff1a;1 标注类别名称&#xff1a;[UAV] 使用标注工具&#xff1a;labelImg 标注规则&#xff1a;对类别…

【终端IDPS】开源安全平台Wazuh之Wazuh Server

引言 Wazuh是一个开源的、免费的企业级安全监控解决方案&#xff0c;专注于威胁检测、完整性监控、事件响应和合规性。它由部署在受监控系统的端点安全代理和管理服务器组成&#xff0c;服务器收集并分析代理收集的数据。Wazuh支持多平台&#xff0c;包括Windows、Linux、macOS…