当前位置: 首页 > wzjs >正文

中国十大设计素材网站长沙seo培训班

中国十大设计素材网站,长沙seo培训班,附近的教育培训机构有哪些,广东省自然资源厅吴鋆被测试项目已部署:登录页面http://123.249.78.82:8080/login.html 一、项目背景 1.1 测试目标 验证系统功能完整性,确保用户管理、消息传输、好友管理等核心模块符合需求。 1.2 项目技术栈 后端:Spring Boot/Spring MVC/WebSocket 数据…

被测试项目已部署:登录页面http://123.249.78.82:8080/login.html

一、项目背景

1.1 测试目标

验证系统功能完整性,确保用户管理、消息传输、好友管理等核心模块符合需求。

1.2 项目技术栈

后端:Spring Boot/Spring MVC/WebSocket

数据库:MySQL

前端:原生HTML/CSS

1.3 文档引用

1.3.1 项目需求文档:

在线聊天平台(Online-Chat)需求文档

1.3.2 项目接口文档:

在线聊天平台(Online-Chat)接口文档

1.4 项目源码:

在线聊天平台(Online-Chat)项目源码

1.5. 测试环境

硬件:Lenovo y9000p 2022
手动测试浏览器: Microsoft Edge版本 125.0.2535.85 (正式版本) (64 位)
开发工具:IntelliJ IDEA 2023.3.1
测试工具:自动化测试工具Selenium 4.21.0 
操作系统:Windows 11家庭中文版
自动化测试浏览器版本:Google Chrome 137.0.7151.41(正式版本)(64 位)



二、测试分类:

2.1 需求分析测试

1. 用户管理模块

需求覆盖性

注册/登录功能满足基础用户认证需求,但缺乏密码安全机制(如强度校验、重复密码输入、验证码)

改进建议:

增加密码复杂度规则(如至少8位,含字母和数字)


2. 主界面模块

改进建议:

明确昵称来源:注册时增加“昵称”字段,或默认使用用户名


3. 好友管理模块

需求覆盖性

模糊搜索功能需明确匹配规则(如前缀匹配、全字段匹配),避免性能问题,

好友申请流程完整,但未说明申请记录存储方式(如数据库表设计)

改进建议:

优化搜索性能:后端分页查询 + 缓存机制。

补充好友申请状态管理(如“待处理”“已通过”“已拒绝”)。


4. 会话管理模块

需求覆盖性

首次选中好友自动生成会话合理,但未定义会话删除或归档逻辑

历史消息加载需考虑数据量过大时的分页加载策略

改进建议:

增加会话删除功能

历史消息采用懒加载或分页机制,提升响应速度


5. 消息传输模块

需求覆盖性

实时消息推送(WebSocket)与非实时存储(MySQL)方案合理,但未设计消息去重或重试机制

改进建议:

补充消息状态标识(如“已发送”“已送达”“已读”)

增加消息存储策略(如超过1年的消息自动归档)


6. 非功能需求

可行性分析

实时性:WebSocket 适合小规模高并发,需结合负载均衡技术应对大规模场景

数据持久化:MySQL 需设计索引优化查询效率(如按用户ID、时间戳索引)



2.2 功能测试

2.2.1测试用例设计

登录页面测试:

注册页面测试:

主页面测试:


2.2.2 手动测试系统

1. 注册页面

正常注册:

重复用户注册:

2. 登录页面

正常登录:

密码或者用户名错误登录:

3. 主界面:

4. 会话消息列表

5. 实时信息交流


2.2.3 功能测试结果:

测试用例:105

覆盖率:90%

测试方式:手动测试

通过率:99%,出现bug一处,已解决(用户注册模块用户名长度校验缺失


2.3 UI自动化测试:

2.3.1 自动化测试覆盖模块:

注册页面,登录页面,“关于我们”,主页面,添加好友页面,好友页面,会话页面,消息发送页面

2.3.2 自动化测试源码链接:

Online-Chat 自动化测试源码

部分自动化代码展示:

工具类:

package common;public class Utils {public static WebDriver driver = null;public WebDriverWait wait = null;//调用driver对象public Utils(String url){driver = createDriver();driver.get(url);wait = new WebDriverWait(driver, Duration.ofSeconds(3));}private WebDriver createDriver() {//获取驱动对象if(driver==null){//下载驱动//WebDriverManager.chromedriver().setup();//使用本地驱动System.setProperty("webdriver.chrome.driver", "D:/chromedriver-win64 (4)/chromedriver-win64/chromedriver.exe"); //添加配置,允许访问所有网站ChromeOptions options = new ChromeOptions();options.addArguments("--remote-allow-origins=*");//创建驱动对象driver = new ChromeDriver(options);}//显示等待wait = new WebDriverWait(driver, Duration.ofSeconds(5));return driver;}/*** 屏幕截图* 屏幕截图文件目录* ./src/test/java/images/*                       /2025-04-29/*                                  /test01-20123010.png*                                  /test02-20133510.png*                       /2025-04-30/*                                  /test01-20123010.png*      *                           /test02-20133510.png**str:方法名/类名*/public void ScreenShot(String str) throws IOException {//年月日SimpleDateFormat sim1 = new SimpleDateFormat("yyyy-MM-dd");//时分秒SimpleDateFormat sim2 = new SimpleDateFormat("HHmmssSS");String dirTime = sim1.format(System.currentTimeMillis());String fileTime = sim2.format(System.currentTimeMillis());//图片文件名:路径+图片名称// ./src/test/java/images/2025-04-29/test01-20123010.pngString filename = "./src/test/java/images/" + dirTime + "/" + str + "-" + fileTime + ".png";//获取WebDriver实例的截图并保存为文件File srcFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);//将截图文件复制到目标文件路径FileUtils.copyFile(srcFile,new File(filename));}/*** 销毁driver对象——关闭浏览器*/public static void quit(){if(driver != null)driver.quit();}}

主页面测试方法:

package Tests;public class ClientPage extends Utils {public static String url = "http://123.249.78.82:8080/client.html";public ClientPage() {super(url);}public void searchAndAddFriends() {WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(5));// 输入搜索内容wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("#search-input"))).sendKeys("u");// 点击搜索按钮wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("#search-button"))).click();wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("#search-input"))).clear();//等待结果列表可见wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#friend-result:not(.hide)")));// 点击第一个结果按钮wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("#friend-result > div:first-child > button"))).click();// 处理弹窗wait.until(ExpectedConditions.alertIsPresent());driver.switchTo().alert().accept();
}public void createSession() {WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));// 1. 点击好友标签切换视图wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("#friend-tab"))).click();// 2. 等待好友列表可见wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#friend-list:not(.hide)")));// 3. 等待列表项加载完成wait.until(d -> d.findElements(By.cssSelector("#friend-list > li")).size() > 0);// 4. 使用JavaScript点击确保稳定性WebElement lastFriend = driver.findElement(By.cssSelector("#friend-list > li:last-child"));((JavascriptExecutor)driver).executeScript("arguments[0].click();", lastFriend);}public void sendMessage() throws IOException {// 1. 等待会话列表容器可见wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#session-list")));driver.findElement(By.xpath("/html/body/div[2]/div/div[2]/textarea")).clear();driver.findElement(By.xpath("/html/body/div[2]/div/div[2]/textarea")).sendKeys("hello");ScreenShot(Thread.currentThread().getStackTrace()[1].getMethodName());driver.findElement(By.cssSelector("#buttonsendtext")).click();}public void cilckSession() {// 定位到 session-list 下的第一个 <li> 元素并点击driver.findElement(By.xpath("//*[@id='session-list']/li[1]")).click();//隐式等待1000毫秒driver.manage().timeouts().implicitlyWait(Duration.ofMillis(5000));}public void cilckSession2() {driver.manage().timeouts().implicitlyWait(Duration.ofMillis(5000));// 定位到 session-list 下的第一个 <li> 元素并点击driver.findElement(By.xpath("//*[@id='session-list']/li[1]")).click();}
}


2.3.3 自动化测试结果

测试用例:15

覆盖率:90%

框架:Selenium+Maven

通过率:98%,发现bug两处,已修复(登录输入未注册用户卡死、注册密码单个字符也可成功

自动化屏幕关键截图:



三、测试结论与建议

3.1 测试结果汇总

功能测试结果

        测试用例:105

        覆盖率:90%(覆盖核心功能及部分非功能性需求)

        测试方式:手动测试

        通过率:99%,发现1处Bug(用户注册模块用户名长度校验缺失),已修复。


自动化测试结果

        测试用例:20

        覆盖率:90%(覆盖主流程及关键交互场景)

        框架:Selenium + Maven

        通过率:98%,发现2处Bug(登录输入未注册用户卡死、注册密码单个字符也可成功),

        已修复。

        自动化屏幕关键截图:已归档至测试报告源码代码包。


需求覆盖性总结
基于2.1需求分析测试,各模块需求覆盖情况如下:

  1. 用户管理模块:覆盖基础注册/登录功能,但密码安全机制未完全实现(如复杂度校验)。

  2. 好友管理模块:模糊搜索功能覆盖。

  3. 会话管理模块:会话生成功能通过,删除与历史消息分页逻辑未测试。

  4. 消息传输模块:实时推送与存储方案验证通过,消息状态标识未补充。


3.2 通过项

核心功能通过率99%,包括:

        用户注册/登录流程

        好友添加与申请管理

        实时消息收发

        会话自动生成与历史消息加载


3.3 风险项

高风险项

高并发场景未充分测试:当前仅验证WebSocket单节点性能,未结合负载均衡进行分布式压测。
建议:使用JMeter模拟1000+并发用户,验证消息推送延迟及MySQL连接池稳定性。

遗留风险

        部分需求未完全覆盖:

                密码复杂度规则未实现(需开发补充)。

                好友搜索缓存机制未落地(潜在性能瓶颈)。

        测试时间紧张:

                主功能优先,部分边缘场景(如昵称默认规则、消息自动归档)未覆盖。


3.4 上线建议

上线条件:

        主功能测试通过,修复Bug已验证,风险可控,建议按计划上线。

上线后监控措施:

        高优观察项:

                实时消息推送延迟(重点关注高峰时段)。

                好友搜索接口响应时间(监控ES或缓存命中率)。

        用户反馈:

                收集用户密码设置体验,评估安全机制补充优先级。

                跟踪会话删除需求反馈,纳入迭代优化。

后续优化建议:

        需求侧补充:

                密码强度校验(至少8位,字母+数字组合)。

                消息状态标识(“已读/未读”)及年度归档策略。

        技术侧优化:

                引入Redis缓存好友搜索结果,降低数据库压力。

                历史消息分页加载(每页20条,懒加载触发)。


http://www.dtcms.com/wzjs/616529.html

相关文章:

  • 新昌做网站台州制作网站软件
  • CP网站开发制作H5网架加工价格
  • 中国建设银行贷款网站网站是新媒体平台吗
  • 什么是网站易用性网站规划的任务
  • 建一个网站需要做什么的做网站商城的小图标软件
  • 网站服务器排名网站每年都要续费吗
  • 深圳国外网站设计做简易网站的APP
  • 邵阳网站建设设计英文网站建设60
  • 网上商城网站系统第三方小程序商店
  • 长沙做网站改版费用建站公司排名前十名
  • 考生登录贵州省住房和城乡建设厅网站免费申请网站com域名
  • 凡科网站做的好不好会计公司
  • 拟定一个物流网站的建设方案网站制作分工
  • 个人 可以做社交网站重庆市建设工程信息网官网查询入口
  • 好的排版设计网站点餐系统微信小程序
  • 网站建设公司固定ip网站建设毕业设计论文
  • 安阳网站建设推广优化监控网站模版
  • 现在有什么网站做设计或编程兼职网站图片alt属性
  • 筹划建设智慧海洋门户网站北京网站建设找华网天下
  • 备案后修改网站内容wordpress模块怎么设置在最上层
  • 网站公司源码制作网站方法
  • 做网站百度收录wordpress 热门排序
  • 个性化定制客户和网站建设旅游网页设计作业
  • 百度 网站质量建设一个最普通网站要多少钱
  • 二手站网站怎做商标设计网软件
  • 东莞外贸网站建设wordpress去除发布者
  • 网站架构组成部分百度关键词seo排名
  • 做视频网站 买带宽广州网站开发网络公司
  • 甘肃交通建设监理公司网站品网站建设公司排名
  • 门户网站制作价格表百度搜索资源平台官网