点餐系统测试报告

文章目录

一、项目介绍

项目简介

该项目是一个门店点餐系统,采用前后端分离的方式实现,后端框架是SSM,前端框架是 Vue。系统角色分为管理员和普通用户,不同的用户登录进入不同的页面。


功能介绍

  1. 登录:用户和管理员输入手机号和密码进行登录
  2. 注册:用户可以输入手机号、用户名、密码和确认密码进行注册。
  3. 注销:注销后,删除本地的记录和更新服务器中的登录状态。
  4. 下单:用户可以勾选列表中的菜品,添加备注信息,然后点击结算进行下单。
  5. 评论:用户可以在自己的下的订单中,选择菜品进行评论。
  6. 取消订单:用户可以取消自己未开始制作的订单。
  7. 管理菜品:管理员可以添加菜品、编辑菜品、添加或删除菜品类型,上架或下架菜品。
  8. 管理订单:管理员可以更新订单状态。
  9. 管理评论:管理员可以对评论进行删除。

二、测试计划

1 功能测试

功能测试用例

发现的 BUG 和 解决方法

在功能测试的过程中,发现了两个小 BUG 。

注册功能

在注册功能中,后端的参数校验做的不到位:

  1. 后端没有校验手机号长度(11位)
  2. 后端没有校验手机号是否全数字
  3. 后端没有校验用户名长度(2~10)

绕过前端直接向后端发送请求,就可以注册这些非法的参数

解决方法:

后端注册接口中添加参数校验

java 复制代码
if (user.getPhone().length() != 11) {
    return JsonResult.failure(-1, "手机号长度错误!");
}
if (!StringUtils.hasLength(user.getUsername()) || !StringUtils.hasLength(user.getPassword())) {
    return JsonResult.failure(-1, "用户名或密码不能为空!");
}
if (user.getUsername().length() < 2 || user.getUsername().length() > 10) {
    return JsonResult.failure(-1, "用户名长度错误!");
}

效果:



上传图片功能

在上传头像,图片太大时,后端报错,使用抓包工具 Fiddler 抓包发现:

json 复制代码
{
    "code": 500,
    "msg": "Maximum upload size exceeded; nested exception is java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.impl.FileSizeLimitExceededException: The field file exceeds its maximum permitted size of 1048576 bytes.",
    "data": null
}
  • 报错原因是Spring Boot 默认的上传文件大小限制为 1MB

检查代码时发现,前后端对上传的图片大小和格式都没有做校验。

解决方法:

前端发请求前,对图片大小和格式进行校验:

javascript 复制代码
beforeAvatarUpload(file) {
    let type = file.type;
    const flg1 = !(type === 'image/jpeg' || type === 'image/png')
    const flg2 = file.size / 1024 / 1024 > 1
    if (flg1) {
        this.$message.error('上传头像图片只能是 JPG 或 PNG 格式!')
    }
    if (flg2) {
        this.$message.error('上传头像图片大小不能超过 1MB!')
    }
    return !flg1 && !flg2
}

后端对图片格式进行校验:

java 复制代码
String fileName = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
if (!".jpg".equals(fileName) && !".png".equals(fileName)) {
	return JsonResult.failure(-1, "上传头像图片只能是 JPG 或 PNG 格式!");
}

效果:


2 自动化测试

待完成。


3 性能测试

待完成。


相关推荐
Bug 挖掘机14 小时前
一篇理清Prompt,Skill,MCP之间的区别
开发语言·软件测试·python·功能测试·测试开发·prompt·ai测试
编码七号1 天前
使用playwright做前端项目的端对端自动化测试
前端·功能测试·自动化
MESMarketing2 天前
互动分享 | 软件工具的安全合规实践
功能测试·测试工具·matlab·ci/cd·autosar
测试19982 天前
软件测试之持续集成
自动化测试·软件测试·python·功能测试·测试工具·测试用例·持续集成
汽车仪器仪表相关领域2 天前
Kvaser U100:工业级单通道CAN/CAN FD转USB接口,恶劣环境下的可靠通信桥梁
linux·运维·服务器·人工智能·功能测试·单元测试·可用性测试
兰.lan2 天前
【黑马ai测试】安享智慧理财项目(ai辅助提效)
人工智能·python·功能测试·ai
qq_452396233 天前
【工程实战】第十篇:性能监控集成 —— 自动化脚本的“副产品”:不仅仅是功能测试
python·功能测试·自动化
QH139292318804 天前
KEYSIGHT E5071C 端网络分析仪
网络·功能测试·嵌入式硬件·物联网·单元测试·集成测试·模块测试
Bug 挖掘机4 天前
放弃OpenClaw ?Hermes Agent从0到1部署+接入飞书教程
软件测试·功能测试·软件测试工程师·测试开发·ai·ai测试·openclaw
赖134小0747姐2935电5 天前
德与施瓦茨R&S RTM3004 四通道高分辨率示波器5GS采样率
功能测试·科技·5g