一、项目介绍这是一套基于SpringBoot MySQL MyBatis开发的智慧食堂在线点餐管理系统面向高校或企业食堂场景实现了用户端点餐、订单管理、菜品展示与评论反馈的全流程功能后端采用Java技术栈开发搭配MySQL数据库存储菜品、用户、订单数据前端通过HTML/CSS/JavaScript实现页面交互同时支持文件上传、跨域配置与参数校验可直接在本地IDEA中启动运行是一套完整的前后端一体Web项目。二、全流程测试工具准备xmind(编写测试用例)postman进行接口测试pyCharm(使用pythonpytest框架进行自动化测试)Jmeter进行压力测试并输出测试报告3.1设计测试用例使用xmind:用来画测试用例万能公式功能测试性能测试兼容性测试易用性测试安全性测试3.1.1功能测试点设计这里只展示了用户端的登录菜品列表展示以及购物车功能管理员端的菜品管理功能剩下的就不一一再截图展示3.1.2兼容性测试点设计3.1.3易用性测试点设计3.14安全性测试点设计3.15界面测试点设计3.16性能测试点设计3.2页面测试手动3.2.1登录界面1.用默认的账号密码登录预期结果提交后可以跳转首页实际结果2.账号正确密码错误预期结果弹出“账号或密码错误”实际结果剩下还有密码正确账号错误/账号为空/密码为空的情况就不一一截图啦3.2.2加入购物车功能预期结果成功加入购物车实际结果3.2.3支付功能预期结果支付成功实际结果3.2.4菜品管理功能食堂端1.新增菜品预期结果新增菜品成功实际结果2.下架菜品功能预期结果下架成功实际结果学生端还包括查询订单信息、意见箱投稿、用餐评价等功能管理员端还包括接单编辑菜品等功能在这里就不一一展示啦3.3接口测试前置操作浏览器F12抓取数据包工具准备postman3.3.1登录接口测试接口地址POST /api/user/login可以直接在浏览器中查询-点击F12打开开发者工具打开下面网络即可看到接口地址或者查看后端代码再或者直接看接口文档测试目的验证用户登录功能输入正确账号密码是否能正常返回用户信息测试数据{username:student1,password:123456}测试结果接口响应状态码200业务状态码200成功返回用户数据功能正常3.3.2菜单展示测试接口地址GET /api/dish/list测试目的验证系统能否正常获取所有菜品信息为前端菜单页面提供数据支持测试数据无该接口为查询接口无需额外请求参数测试结果接口响应状态码200业务状态码200成功返回所有菜品数据包含菜品名称、价格、库存、热量、分类、图片路径等信息功能正常3.3.3食堂订单测试接口地址GET /api/order/canteen/status/PAID测试目的验证食堂管理员端能否正常获取状态为PAID已支付 / 待接单的订单列表测试数据无通过路径参数statusPAID筛选数据测试结果接口响应状态码200业务状态码200成功返回待接单订单数据包含订单号、取餐码、金额、创建时间等信息功能正常这里只对上面几个功能进行了手动接口测试其它的就不一一截图展示啦3.4 pythonpytest自动化测试3.4.1前置准备安装好进行自动化测试必备的东西在pyCharm中也安装好pytest项目结构如下api_test基于pytest实现的接口自动化测试项目采用PO模式分层结构。common存放公共请求工具类封装接口请求方法。- conf存放项目配置文件管理域名、测试账号。- test_api按业务模块编写测试用例实现登录、菜品、订单接口测试。3.4.2开展测试1.登录测试测试脚本test_login.py代码如下在api_client创建驱动如下图实际运行操作及其运行效果成功生成测试用例我们尝试在浏览器edge/chorm打开成功看到测试用例测试接口/api/user/login测试账号student1/123456测试结果接口响应状态码为 200业务码为 200用例执行通过接口功能符合预期。2.有关菜单展示食堂端登录新增菜品以及编辑菜品测试自动化测试执行结果的最终展示3.4.3 JMeter进行压力测试并输出测试报告测试工具Apache JMeter 5.6.3被测接口用户创建订单接口POST /api/order/creat测试环境后端服务本地localhost:8080并发场景10 个并发用户每个用户循环 5 次下单请求共 50 次请求工具启动从 JMeter 安装目录的bin文件夹中双击jmeter.bat启动压测工具新建测试计划命名为「智慧食堂点餐接口压测」添加线程组设置并发数10、Ramp-Up 时间10s、循环次数5模拟 10 个用户同时下单场景。配置 HTTP 请求配置请求头添加「查看结果树」「聚合报告」「响应时间图」三个监听器用于采集和展示压测数据测试结果如下指标测试结果总请求数50 次错误率0.00%平均响应时间13 ms95% 响应时间25 ms吞吐量5.6 次 / 秒错误率为 0%说明在 10 并发场景下点餐接口无请求失败服务稳定性良好。平均响应时间仅 13ms95% 请求在 25ms 内完成响应速度快用户体验流畅。每秒可处理 5.6 次下单请求能满足当前小并发点餐场景的业务需求。3.4.4JMeter生成测试报告JMeter测试报告是⼀个⽂档记录关于测试执⾏的详细信息。⽣成性能测试报告的命令在cmd终端执行命令:运行之后自动在生成一个report文件夹打开report文件夹下面的index.html文件就能成功查看到测试报告好啦到这里就结束了我感觉我写的还是欠缺的大家都加油啊有问题大家可以发表评论一起解决~