项目-博客驿站测试报告

news2025/1/13 15:49:28

测试用例设计

功能测试

该部分主要围绕对于博客系统的增删改查, 文章通过性审核, 关注功能等进行测试, 还进行了其它一些探索性的测试.

 

以上是作者设计的全部用例.

BUG发现:

问题1: 当多端同时操作同一篇文章BUG

环境: Windows11, Edge和Chrome浏览器

复现步骤:

1.先使用Edge浏览器登入zhangsan的账号, 再使用Chrome浏览器登入同一个账号

2.使用两端同时点入同一篇文章详情(zhangsan创作的)

3.在Edge浏览器的账号中点击删除文章, 同时Chrome浏览器的账号进行刷新/点击更新操作

预期结果: Chrome浏览器中的账号也退回到主页

实际结果: Chrome浏览器中的账号显示页面没有任何信息

建议解决方案: 当文章无法获取时, 想获取文章的账户退回到主页.

问题2:同浏览器中的会话共用问题

环境: Windows11, Edge浏览器

复现步骤:

1.在Edge浏览器中登入zhangsan的账号

2.同时在这个浏览器另开一个窗口, 登入zhangsan的账号.

3.第一个窗口中点击注销账号

4.第二个窗口中随意进行操作(刷新/点击查看文章详细等)

预期结果: 第二个窗口中的账号不受影响, 仍能够继续操作.

实际结果: 第二个窗口中的账号直接退回至登录页

建议解决方案: 在同一个浏览器中登录同一个账号时, 分配不同的会话.

 其它测试用例设计

该部分针对安全性, 界面, 易用性, 性能, 兼容性, 网络等用例进行了设计

这里仅挑选网络部分来讲, 其它的就不展开了.

这里使用fiddler对于弱网环境进行测试, 主要针对2G和3G网络环境下进行测试 

利用Ctrl F在脚本中查找m_SimulateModem然后在这里设置网速即可达到改网速的效果. 

将上行速率改为3000, 下行速率改为1500(2G)

勾选Simulate Modem Speeds以进入弱网模式.

 

测试结论: 前端部分的渲染耗时10s(真的很慢), 影响用户体验, 建议优化. 

将上行速率改为20, 下行改为10模拟3G环境.

测试结论: 响应时间正常, 可以正常使用.

自动化测试

介绍:本部分针对博客系统的核心功能进行测试: 即登录/列表页/详情页/编辑页. 进行对于博客的发布(含敏感词检测), 查看, 删除, 更新, 关注, 取消关注这些主要功能进行测试.

用例设计

代码编写

代码见: Java所有代码/CTest/src/main/java/org/example/blogtest · 灰灰快醒醒/邹锦辉个人所有代码 - 码云 - 开源中国 (gitee.com)

注: 这里使用Java中Selenium + JUnit进行测试

1.根据UI用例实现脚本编写: 每一个页面一个测试类, 然后对于各个用例进行编写.

2.公共属性设计单例, 方便进行代码复用.

3.创建启动以及截图经常使用, 将它们设为公共的.

4.注意添加隐式等待, 确保页面正确显示.

设计如下:

 公共类 AutotestUtils

1.创建驱动: 保存现场截图

2.注意: 在保存截图时命名按照时间进行划分, 然后要体现出测试类的类名, 方便问题追溯

3.注意文件名动态获取, 时间格式的设置等.

4.在内部实现对于浏览器驱动的创建, 并提供创建方法.

 登录页面测试BlogLoginTest

1.创建驱动, 打开页面

2.测试页面是否正常打开

3.测试正常登录: 多参数设置

4.测试异常登录: 密码错误, 为空等

5.注意测试顺序: 利用Order注解指定

6.注意清空输入内容以进行对现场的恢复

列表页测试BlogListTest

1.测试博客列表页是否能够正常打开

2.测试列表中查看全文的跳转情况. 

3.测试未登录时的处理情况

4.也要注意测试的顺序 

编辑页测试EditBlogTest

1.查看编辑页是否能够正常打开.

2.正确发布博客: 发布成功, 滚动到底部检查情况

3.博客发布异常: 空的标题/标题含敏感词等

4.注意测试的顺序

详情页测试 BlogDetailTest

1.查看详情页是否能够正常打开

2.回到主页, 记录当前用户的信息

3.进入详情页, 如果作者名和用户名一致, 查看编辑/删除文章按钮是否存在(并点击删除按钮), 回到主页查看文章是否存在

4. 如果作者名和用户名不一致, 则查看关注/取消关注按钮是否存在. 

获取当前作者粉丝量, 点击按钮后查看粉丝量变化情况

驱动释放 

直接将一个类作为驱动释放, 放到测试套件最后即可.

测试套件

使用的是当前测试类的执行顺序.

//测试套件运行 登录 -> 博客列表页 -> 博客编辑页 -> 博客详细页 -> 关闭驱动
@Suite
@SelectClasses({BlogLoginTest.class,BlogListTest.class,BlogDetailTest.class,BlogEditTest.class})
public class runSuite {
}

 测试结果

 全部测试通过, 测试耗时较为正常.

问题:

测试详情页时页面未完全加载, 说明该部分有性能瓶颈/未添加等待. 

小结

(1)一定要关注测试用例的执行顺序问题: 使用JUnit的@TestMethodOrder(MethodOrderer.OrderAnnotation.class)配合@Order注解即可

(2)对于页面要检查到位, 如检查元素以保证页面的正确性

(3)适当添加等待, 确保页面加载后/元素出来后再进行操作.

(4)注意驱动位置: 在最后一个用例结束后关闭. 

(5)注意截图保存形式: 时间 + 截图时的类

(6)测试用例不宜过多, 能够测试大部分功能即可.

(7)注意元素的获取时机, 一定要等加载出来了再进行获取

(8)由于测试类之间是前后衔接的, 需要记得在一个用例执行后恢复现场, 方便下一个类执行.

性能测试

工具: Jmeter

目的: 针对登录, 编写并发布博客, 删除博客等功能的简单性能测试.

登录测试

1.设置http请求默认值. 设置统一的IP地址和端口号

2.创建一个线程组, 设置一个HTTP请求, 并绑定正确用户的信息.

 3.创建结果树, 发送单个请求, 验证请求是否能够发送.

发现登录成功.

4.这时我们进行负载测试, 设定这样的用户增长环境:

 观察响应时间项:

发现用户线程数量在30-40左右时响应时间较长, 达到了0.5-1秒, 但是后面响应时间又缩短了, 总体上响应时间是比较正常的.

观察TPS(每秒处理事务数):

平均大概是每秒240的事务数, 对于博客系统这个小项目来说, 这个已经是很不错的了, 不用过度调优.

以下是汇总报告:

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

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

相关文章

《三国:谋定天下》成为了SLG游戏现象级的成功案例

原标题:《三国:谋定天下》引领SLG游戏新潮流,B站股价五个飙升了30% 易采游戏网6月23日:B站作为年轻人喜爱的文化社区和视频平台,再次用一款新的游戏证明了其在游戏发行领域的独到眼光与强大实力。最近大火的策略角色扮…

VBA学习(17):使用条件格式制作Excel聚光灯

今天给大家分享的表格小技巧是制作聚光灯。 先说一下啥是聚光灯。所谓聚光灯,可以简单理解为对工作表的行列填充颜色,突出显示被选中的单元格,仿佛该单元格被聚光灯照亮似的。聚光灯有助于肉眼识别所选中的单元格或区域,提高数据…

Repair LED lights

Repair LED lights 修理LED灯,现在基本用灯带,就是小型LED灯串联一起的 1)拆旧灯条,这个旧的是用螺丝拧的产品 电闸关掉。 2)五金店买一个,这种是磁铁吸附的产品 现在好多都是铝线啊。。。 小部件&#x…

2024最新最全的车载测试教程__各模块测试用例

二、设计用例方法 1.测试用例设计前: a.仔细认真研读prd、理解prd b.质疑prd、有困惑或者想法的点做好记录,可以一次性和产品沟通 2.设计中: 成282 a.根据结构化思维,设计xmind i全链路正向功能点、子链路功能点 ⅱ.考虑业…

15.树形虚拟列表实现(支持10000+以上的数据)el-tree(1万+数据页面卡死)

1.问题使用el-tree渲染的树形结构&#xff0c;当数据超过一万条以上的时候页面卡死 2.解决方法&#xff1a; 使用vue-easy-tree来实现树形虚拟列表&#xff0c;注意&#xff1a;vue-easy-tree需要设置高度 3.代码如下 <template><div class"ve-tree" st…

大模型参数高效微调学习笔记

大模型参数高效微调学习笔记 github地址 billbill链接 1.分类 图中有五个大类&#xff1a; selective&#xff08;选择性微调&#xff09;&#xff1a;BitFit&#xff0c;Attention Tuningsoft prompts&#xff08;提示微调&#xff09;&#xff1a;Prompt-tuning&#xff0c…

实战指南:部署Elasticsearch 8.4.1与Kibana 8.4.1并集成IK分词器

首先拉取elasticsearch和kibana镜像 docker pull elasticsearch:8.4.1 docker pull kibana:8.4.1如果遇到镜像拉去不下来&#xff0c;遇到如下问题&#xff1a; [ERROR] error pulling image configuration: Get " https://production.cloudflare.docker.com/registry-v…

[Spring Boot]Netty-UDP客户端

文章目录 简述Netty-UDP集成pom引入ClientHandler调用 消息发送与接收在线UDP服务系统调用 简述 最近在一些场景中需要使用UDP客户端进行&#xff0c;所以开始集成新的东西。本文集成了一个基于netty的SpringBoot的简单的应用场景。 Netty-UDP集成 pom引入 <!-- netty --…

Adaboost集成学习 | Adaboost集成学习特征重要性分析(Python)

目录 效果一览基本介绍模型设计程序设计参考资料效果一览 基本介绍 Adaboost集成学习特征重要性分析(Python)Adaboost(自适应增强)是一种常用的集成学习方法,用于提高机器学习算法的准确性。它通过组合多个弱分类器来构建一个强分类器。在Adaboost中,每个弱分类器都被赋予…

电子电气架构——由NRC优先级引起的反思

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

【论文精读】分类扩散模型:重振密度比估计(Revitalizing Density Ratio Estimation)

文章目录 一、文章概览&#xff08;一&#xff09;问题的提出&#xff08;二&#xff09;文章工作 二、理论背景&#xff08;一&#xff09;密度比估计DRE&#xff08;二&#xff09;去噪扩散模型 三、方法&#xff08;一&#xff09;推导分类和去噪之间的关系&#xff08;二&a…

shell的正则表达式

一、正则表达式&#xff1a;匹配的是文本内容&#xff08;文本三剑客&#xff1a;grep&#xff1a;过滤文本内容 sed&#xff1a;针对文本内容进行增删改查 awk&#xff1a;按行取列&#xff09; 二、grep&#xff1a;过滤 1.grep&#xff1a;过滤文本内容&…

基于协方差信息的Massive MIMO信道估计算法性能研究

1. 引言 随着移动互联网不断发展&#xff0c;人们对通信的速率和可靠性的要求越来越高[1]。目前第四代移动通信系统已经逐渐商用&#xff0c;研究人员开始着手研究下一代移动通信系统相关技术[2][3]。在下一代移动通信系统中要求下行速率达到10Gbps&#xff0c;这就要求我们使…

秋招突击——第八弹——Redis是怎么运作的

文章目录 引言正文Redis在内存中是怎么存储的面试重点 Redis是单线程还是多线程面试重点 内存满了怎么办&#xff1f;面试重点 持久化介绍面试重点 RDB持久化面试重点 AOF日志面试重点 总结 引言 差不多花了两天把redis给过了&#xff0c;早上也只背了一半&#xff0c;完成回去…

【database1】mysql:DDL/DML/DQL,外键约束/多表/子查询,事务/连接池

文章目录 1.mysql安装&#xff1a;存储&#xff1a;集合&#xff08;内存&#xff1a;临时&#xff09;&#xff0c;IO流&#xff08;硬盘&#xff1a;持久化&#xff09;1.1 服务端&#xff1a;双击mysql-installer-community-5.6.22.0.msi1.2 客户端&#xff1a;命令行输入my…

<router-view />标签的理解

< router-view />标签的理解 < router-view />用来承载当前级别下的子集路由的一个视图标签。显示当前路由级别下一级的页面。 App.vue是根组件&#xff0c;在它的标签里使用&#xff0c;而且配置好路由的情况下&#xff0c;就能在浏览器上显示子组件的效果。 如…

模拟算法讲解

模拟算法是一种基于实际情况模拟的算法&#xff0c;通过模拟现实世界中的系统或过程&#xff0c;来研究它们的性质和行为。模拟算法可以用于解决各种问题&#xff0c;包括物理模拟、经济模拟、社会模拟等。 模拟算法的基本步骤包括&#xff1a; 定义问题&#xff1a;明确需要模…

用Java获取键盘输入数的个十百位数

这段Java代码是一个简单的程序&#xff0c;用于接收用户输入的一个三位数&#xff0c;并将其分解为个位、十位和百位数字&#xff0c;然后分别打印出来。下面是代码的详细解释&#xff1a; 导入所需类库: import java.util.Scanner;&#xff1a;导入Scanner类&#xff0c;用于从…

已解决java.util.concurrent.BrokenBarrierException异常的正确解决方法,亲测有效!!!

已解决java.util.concurrent.BrokenBarrierException异常的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 目录 问题分析 出现问题的场景 报错原因 解决思路 解决方法 分析错误日志 检查线程中断 设置合理的等待时间 优化代码逻辑 使用同步…

登录安全分析报告:链家地产

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞 …