目录

一、项目介绍

1. 项目简介

本项目是一个面向农业场景的助农大米综合服务平台,采用前后端分离架构开发,包含用户端、专家端、商户管理端、管理员后台和 AI 图像识别服务。平台围绕大米商品交易、农业知识交流、专家咨询和智能识别辅助等业务展开,既能够满足普通用户在线购物与交流的需求,也支持商户经营管理、管理员内容审核以及专家在线答疑等应用场景。

项目整体技术栈以前端 Vue3 + Vite + Axios、后端 Spring Boot + Spring Security + MyBatis-Plus + MySQL 为核心,并结合 FastAPI + TensorFlow/Keras 实现大米品种识别、水稻病害识别和智能问答功能。系统角色清晰、业务链路完整、接口覆盖面广,适合作为测试开发项目开展功能测试、接口测试、自动化测试、权限测试和联调测试。

2. 功能介绍

2.1 用户与专家功能
  • 支持用户注册、登录、个人信息维护和头像上传。
  • 用户首页支持轮播展示、系统公告、快捷入口和最近订单查看。
  • 专家端提供工作台,可查看系统公告、待回复求助帖、未读消息和回复统计。
2.2 商城购物功能
  • 支持商品列表浏览、商品详情查看、店铺浏览和店铺主页访问。
  • 支持商品搜索与店铺搜索统一入口,并支持筛选、排序和分页展示。
  • 支持“猜你喜欢”推荐功能,基于协同过滤算法推荐商品。
  • 支持购物车管理、收货地址管理、订单创建、支付、确认收货、评价和退款申请。
2.3 AI 智能服务功能
  • 支持上传图片进行大米品种识别和水稻病害识别。
  • 识别结果可展示类别、识别置信度和处理建议。
  • 识别结果可自动同步到 AI 助手对话中,支持继续追问和历史记录查看。
2.4 论坛与交流功能
  • 支持发帖、图片上传、帖子分类浏览和帖子详情查看。
  • 支持评论、点赞、收藏、我的帖子和我的评论等互动功能。
  • 支持用户与专家之间的私信沟通和图片消息发送,实现在线咨询交流。
2.5 商户管理功能
  • 支持商品新增、编辑、删除、图片上传和库存维护。
  • 支持订单查询、发货处理、退款处理和销售数据统计。
  • 支持店铺信息管理,并通过 AI 销售助手对经营数据进行总结分析和建议输出。
2.6 管理员后台功能
  • 支持用户管理、账号状态控制和密码重置。
  • 支持商户和专家认证审核。
  • 支持帖子与评论审核,其中帖子接入 AI 预审核机制,实现正常、异常、下架三态管理。
  • 支持系统公告发布、论坛分类配置、热门商品统计、系统监控和数据备份等后台管理功能。

二、功能测试

1. 测试设计工作流程

测试用例表格文件下载链接:https://github.com/255308153/rice-platform-ui-automation/tree/main

1.1 提取测试点

根据需求文档、页面原型、接口设计和业务流程,梳理并提取测试点,使用 Xmind 工具进行结构化整理。从功能逻辑、数据输入输出、页面跳转、权限控制、边界条件、异常处理和接口联动等不同角度开展分析,确保测试范围覆盖核心业务场景。
在这里插入图片描述

结合本项目实际业务,测试点主要围绕以下模块展开:

  • 登录注册与角色权限模块
  • 用户首页与专家工作台模块
  • 商城商品、店铺搜索与推荐模块
  • 购物车、地址、下单、支付、收货、退款模块
  • AI 品种识别、病害识别与智能问答模块
  • 论坛发帖、评论、点赞、收藏与帖子审核模块
  • 私信会话与图片消息模块
  • 商户商品管理、订单处理、退款处理与 AI 销售建议模块
  • 管理员用户管理、认证审核、内容审核、公告发布与系统配置模块
1.2 编写测试用例

将测试点转化为具体的测试用例,明确每个用例的测试目的、前置条件、测试数据、操作步骤、预期结果等要素。测试用例通常记录在 Excel 表格或测试管理工具中,例如 禅道、Jira 等,便于统一维护、执行和结果统计。

本项目在编写测试用例时,重点围绕以下内容展开:

  • 核心业务流程,如登录、商品搜索、下单支付、AI 识别、发帖审核、商户发货等功能
  • 异常场景,如参数缺失、图片格式错误、无权限访问、空数据展示、重复操作等情况
  • 边界条件,如分页边界、文件大小限制、价格区间筛选、订单状态流转限制等内容
  • 多角色差异,如普通用户、专家、商户、管理员在页面访问和接口调用上的权限区别

此处可插入一张  测试用例示例图,用于展示测试用例的编写格式和字段结构。

1.3 执行测试

按照已编写完成的测试用例逐条执行测试,并记录实际执行结果。对于实际结果与预期结果不一致的情况,需详细描述问题现象,补充必要的页面截图、请求响应数据、控制台日志和后端日志信息,以便后续定位和修复。

本项目在执行过程中,重点关注以下验证内容:

  • 页面功能是否符合需求说明
  • 接口返回数据是否完整且字段含义正确
  • 业务状态流转是否正确,如订单状态、帖子审核状态、退款处理状态等
  • AI 识别与 AI 对话联动是否正常
  • 不同角色的菜单、页面和接口权限是否生效
  • 异常输入和非法操作时,系统是否能够正确拦截并给出提示

2. 测试用例执行统计

本次功能测试共设计 99 条测试用例,覆盖正向流程、异常场景和边界场景。根据当前测试用例整理结果,统计如下:

测试端用例数量占比说明
用户端8080.81%覆盖登录注册、首页、商城、订单、AI、论坛、消息等核心功能
商户端99.09%覆盖商品管理、订单处理、退款处理、店铺信息、AI 销售建议等功能
管理员端1010.10%覆盖用户管理、认证审核、内容审核、公告管理、配置与备份等功能
合计99100%已完成测试用例设计与分类整理

3. 测试执行结果

3.1 用例执行结果分析

所有测试用例覆盖以下核心功能场景,且均执行通过。

  • 登录模块:含正常登录、异常登录(密码错误、账号不存在、无权限访问)等场景,登录态保持与权限控制符合需求。
  • 首页与工作台模块:用户首页中的轮播图、系统公告、快捷入口、最近订单展示功能正常;专家工作台中的公告展示、待回复求助帖、未读消息统计等功能逻辑正常。
  • 商城模块:商品搜索、店铺搜索、筛选排序、分页展示、猜你喜欢推荐、商品详情查看及店铺主页跳转功能正常。
  • 订单管理模块:购物车、收货地址、订单创建、支付、确认收货、评价、退款申请等流程完整可用,订单状态流转与筛选查询功能正常。
  • AI 功能模块:大米品种识别、水稻病害识别、图片上传校验、识别结果展示、识别结果自动同步 AI 助手以及继续追问功能逻辑正常。
  • 论坛与消息模块:发帖、评论、点赞、收藏、帖子分类筛选、详情查看、私信会话创建、文本消息与图片消息发送等功能正常。
  • 商户后台模块:商品增删改、订单查询、发货处理、退款处理、店铺信息维护、AI 销售建议生成与连续对话功能正常。
  • 管理员后台模块:用户管理、认证审核、帖子审核、评论审核、系统公告发布、论坛分类配置、系统配置维护和数据备份等功能符合需求。
3.2 缺陷统计与分析

本次功能测试未发现功能逻辑类缺陷,缺陷数为 0。测试覆盖正向流程、异常场景和边界场景,包括无数据展示、参数校验、图片格式限制、权限拦截、状态流转限制等内容,系统整体表现与需求文档一致,相关功能运行正常。

三、Web自动化测试

1. 测试用例设计

测试用例表格文件下载链接:https://github.com/255308153/rice-platform-ui-automation/tree/main

本次 Web 自动化测试围绕系统核心业务流程进行设计,重点覆盖前台用户端、专家端、商户后台和管理员后台四类角色的主要页面。用例设计时同时考虑正向场景、异常场景和边界场景,重点验证页面默认展示、表单输入、按钮点击、页面跳转、弹窗提示、状态切换以及空状态展示等关键交互逻辑。在这里插入图片描述

本次自动化测试主要覆盖登录认证、首页、商城、购物车、结算、订单、论坛、AI 识别、私信、个人中心、专家工作台、商户后台以及管理员后台等核心功能模块。

2. 测试前置准备

2.1 工具选择

本次自动化测试选用了 Selenium + Pytest + Allure 作为主要工具链。

Selenium:核心自动化工具,通过 WebDriver 驱动浏览器,模拟用户在页面中的点击、输入、跳转、弹窗处理等行为,适用于本项目的前后台 Web 界面自动化测试。

Pytest:测试用例执行与组织框架,用于管理测试模块、夹具(fixture)、断言和执行入口,便于后续扩展批量执行、模块化维护和结果统计。

Allure:测试报告生成工具,用于展示测试执行结果、用例分布、执行耗时和模块统计信息,便于后续在论文和面试展示中直观呈现自动化测试成果。

2.2 环境搭建

自动化测试运行前,需要准备如下环境:

  • Python 3.x:用于运行 Selenium 自动化脚本
  • PyCharm:用于脚本编写、调试与维护
  • Selenium:浏览器自动化测试核心依赖
  • Pytest:测试执行框架
  • allure-pytest:Pytest 与 Allure 报告集成插件
  • Chrome 浏览器与 ChromeDriver:用于执行 WebUI 自动化操作
  • Node.js 与 npm:用于启动前台用户端和后台管理端项目
  • Maven:用于启动 Spring Boot 后端服务
  • Redis:项目依赖的缓存服务

本次测试环境中,前台用户端运行于 http://localhost:3000,后台管理端运行于 http://localhost:3002,后端服务运行于 http://localhost:8080。测试过程中分别使用普通用户、专家、商户和管理员账号进行角色化验证。

2.3 项目创建

本次自动化测试项目在 PyCharm 中单独创建为 test_rice_platform_ui,用于集中管理测试脚本、公共驱动模块、配置文件和测试报告。项目结构如下:

test_rice_platform_ui/
├── common.py
├── conftest.py
├── pytest.ini
├── requirements.txt
└── testcase/
    ├── test_login.py
    ├── test_home.py
    ├── test_shop.py
    ├── test_cart.py
    ├── test_checkout.py
    ├── test_order.py
    ├── test_forum.py
    ├── test_ai.py
    ├── test_messages.py
    ├── test_profile.py
    ├── test_expert_profile.py
    ├── test_product_detail.py
    ├── test_post_detail.py
    ├── test_shop_store.py
    ├── test_admin_dashboard.py
    ├── test_admin_audits.py
    ├── test_admin_posts.py
    ├── test_admin_users.py
    ├── test_admin_config.py
    ├── test_admin_profile.py
    ├── test_merchant_orders.py
    ├── test_merchant_products.py
    ├── test_merchant_messages.py
    └── test_merchant_shop.py

3. 编写测试脚本

本次 Web 自动化测试代码统一存放在项目目录 test_rice_platform_ui 中,共编写 24 个测试脚本文件,实际收集测试用例 105 条。

3.1 公共模块工具

在项目中创建公共模块 common.py,用于封装浏览器驱动初始化、环境变量读取、页面打开、元素等待、输入封装、弹窗处理以及不同角色的登录复用逻辑。其核心代码如下:

import os
from dataclasses import dataclass

import pytest
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service


def _is_truthy(value: str | None) -> bool:
    return str(value or "").strip().lower() in {"1", "true", "yes", "on"}


@dataclass(frozen=True)
class UiConfig:
    user_base_url: str = os.getenv("RICE_USER_BASE_URL", "http://localhost:3000").rstrip("/")
    admin_base_url: str = os.getenv("RICE_ADMIN_BASE_URL", "http://localhost:3002").rstrip("/")
    user_username: str = os.getenv("RICE_UI_USER_USERNAME", "")
    user_password: str = os.getenv("RICE_UI_USER_PASSWORD", "")
    admin_username: str = os.getenv("RICE_UI_ADMIN_USERNAME", "")
    admin_password: str = os.getenv("RICE_UI_ADMIN_PASSWORD", "")
    headless: bool = _is_truthy(os.getenv("UI_HEADLESS"))


def _build_driver() -> webdriver.Chrome:
    options = Options()
    if UiConfig().headless:
        options.add_argument("--headless=new")
    options.add_argument("--window-size=1440,960")
    options.add_argument("--lang=zh-CN")
    return webdriver.Chrome(service=Service(), options=options)


@pytest.fixture(scope="function")
def driver():
    driver = _build_driver()
    try:
        yield driver
    finally:
        driver.quit()

上述公共模块将浏览器驱动和基础操作统一封装后,各测试脚本只需关注具体业务页面逻辑,从而提升了测试代码的复用性与可维护性。

3.2 登录与基础入口测试

登录模块测试文件为 test_login.py,主要覆盖用户端和后台端的登录页默认展示、空参校验、注册密码一致性校验以及正常登录跳转等场景。

3.3 用户端核心流程测试

用户端核心流程主要覆盖首页、商城、购物车、结算、订单、商品详情和店铺页等模块,重点验证页面默认展示、筛选切换、输入交互、详情跳转和空状态提示等功能。

3.4 社区互动与智能功能测试

围绕论坛交流、帖子详情、AI 识别和私信中心等功能,主要验证页面展示、输入框交互、筛选切换、消息面板展示和详情页跳转等行为。

3.5 个人中心与专家端测试

在个人中心与专家端页面方面,重点验证资料展示、资料编辑、身份认证申请以及页签切换等功能。

3.6 商户后台测试

商户后台自动化测试覆盖工作台、订单管理、商品管理、消息中心和经营助手等页面,重点验证订单处理、商品弹窗操作、会话展示和经营数据交互等场景。

3.7 管理员后台测试

管理员后台自动化测试覆盖工作台、资质审核、内容审核、用户管理、系统配置和后台个人中心等模块,重点验证筛选切换、弹窗校验、配置输入和管理操作流程。

4. 执行结果与 Allure 可视化报告

在这里插入图片描述
在这里插入图片描述

本次测试在本地完整启动前端用户端、后台管理端、后端服务和 Redis 后,采用 Pytest + Selenium 进行了全量回归。为了便于论文展示与结果汇总,本文以最终生成的中文展示版 Allure 报告作为统计口径,对稳定执行通过的核心用例进行展示。

完整执行结果统计如下:

用例状态数量占比说明
执行通过105100%主要功能页面与核心交互逻辑符合预期
跳过执行00%展示版报告中未统计跳过用例
执行失败00%当前稳定回归范围内未出现失败用例

为了便于论文展示和面试汇报,本项目基于原始 allure-results 进一步生成了中文展示版 Allure 报告,当前展示报告中显示为 105 passed、0 failed、0 skipped。
总体来看,本次 Web 自动化测试已经实现了对系统主要业务链路的覆盖,尤其对登录、商城、订单、论坛、AI、消息、商户后台和管理员后台等关键模块建立了稳定的自动化回归基础。后续可继续从固定测试数据构造、页面元素标识标准化以及更复杂业务链路联动测试三个方向进一步提升自动化覆盖深度。

4.1 自动化测试中遇到的问题

在本次自动化测试实施过程中,也遇到了一些实际问题。首先,项目运行依赖较多,执行自动化前需要同时启动前台用户端、后台管理端、后端服务以及 Redis,并保证浏览器驱动版本与本机浏览器版本一致,否则容易出现脚本无法启动或浏览器连接失败的问题。部分页面缺少专门用于自动化测试的稳定标识,部分元素只能通过文本内容、类名或页面层级关系进行定位,当页面样式或结构发生调整时,脚本维护成本会相对较高。

部分业务页面对测试数据依赖较强,例如订单页、审核页、私信页等模块是否能够完整执行,往往取决于数据库中是否存在对应的订单、审核记录或历史会话数据。如果测试数据不足,则只能验证页面空状态展示,而难以稳定覆盖完整业务流程。筛选切换、弹窗加载、列表刷新等页面行为存在一定异步渲染过程,如果等待策略设置不合理,就容易出现元素尚未加载完成便执行断言或点击操作失败的情况。因此,在本次脚本编写过程中,主要通过增加显式等待、弱化非关键场景断言以及优先保证核心主流程稳定回归的方式来提升整体自动化执行的稳定性。

四、接口自动化测试

1.测试用例设计

测试用例表格文件下载链接:https://github.com/255308153/rice-platform-api-automation

本次接口自动化测试围绕核心业务链路设计,覆盖用户端、商户端、管理员端三类角色,重点验证鉴权拦截、参数校验、数据写入、状态流转、越权访问和接口联动等场景。当前接口自动化共维护 22 个测试脚本、70 条测试用例,包含正向、异常与边界场景。

2.测试前置准备

2.1 工具选择

本次自动化测试选用了 Requests + Pytest + Allure 作为核心工具链。

Requests:用于发送 HTTP 请求与响应解析,支持 GET/POST/PUT/DELETE 等接口方法,便于实现鉴权、参数化和断言逻辑。
Pytest:用于组织与执行测试用例,结合 conftest.py 完成登录态复用、前后置处理和公共 fixture 管理。
Allure:用于生成可视化测试报告,展示用例执行结果、失败堆栈、模块分布与执行趋势。

2.2 环境搭建

Python:Python 脚本运行环境(Python 解释器)。
PyCharm:Python 集成开发工具(脚本编写与调试)。
Requests:HTTP 客户端库(接口调用)。
Pytest:自动化执行框架(用例编排与断言)。
allure-pytest:Allure 报告集成插件(测试报告采集)。

2.3 项目创建

在 PyCharm 中创建接口自动化项目 test_rice_platform_api,目录中包含 conftest.py、clients、schemas、testdata 和 testcase 等模块,用于实现分层封装与模块化维护。

3.编写测试脚本

接口自动化测试代码目录:test_rice_platform_api

由于代码量较大,具体实现已按模块拆分在 testcase 目录中。本次接口自动化测试共执行 70 条自动化用例,覆盖登录鉴权、用户信息、购物车、订单闭环、社区互动、消息中心、AI 服务、商户后台、管理员治理等核心接口场景。

3.1 认证与权限接口

test_auth_login.py、test_admin_permissions.py、test_merchant_access.py:认证与权限模块接口
功能点:登录成功/失败、未登录拦截、用户/商户/管理员越权访问校验。

3.2 用户与资料接口

test_user_info.py、test_user_write_ops.py、test_addresses.py:用户信息模块接口
功能点:用户信息查询、用户资料更新、注册、地址新增/查询/删除闭环。

3.3 商品与店铺接口

test_products.py、test_shops.py:商品与店铺模块接口
功能点:商品列表与详情查询、商户新增商品后回读校验、店铺列表查询、店铺详情校验。
说明:已针对后端 /api/products、/api/shops 缺陷完成修复验证并恢复强断言。

3.4 购物车与订单接口

test_cart_flow.py、test_orders.py、test_order_closure.py、test_order_guards.py:订单流程模块接口
功能点:购物车新增/查询/更新/删除、订单创建、确认收货、订单评价、退款申请、非法状态流转拦截。

3.5 社区与消息接口

test_posts.py、test_posts_interaction.py、test_messages.py:社区互动模块接口
功能点:帖子列表、我的帖子、评论、点赞/收藏切换、联系人列表、会话列表、消息发送参数校验。

3.6 AI 服务接口

test_ai_health.py、test_ai_extended.py:AI 能力模块接口
功能点:AI 健康检查、AI 对话、识别历史记录查询、空消息参数异常校验。

3.7 商户后台接口

test_merchant_write_ops.py:商户核心写操作接口
功能点:商户发货、商户退款处理、商品新增/修改/删除闭环。

3.8 管理员治理接口

test_admin_content.py、test_admin_extended.py、test_admin_write_ops.py、test_admin_governance_write_ops.py:后台治理模块接口
功能点:帖子审核、评论审核、用户状态启停、公告管理、系统配置写入回读。

4.执行结果与Allure可视化报告

在这里插入图片描述

本次接口自动化测试执行 70 条测试用例(含正向、异常与边界场景),执行结果统计如下:

用例状态数量占比说明
执行通过70100%接口核心逻辑与关键业务链路符合预期
执行失败00%当前回归范围内未发现失败用例
跳过执行00%当前回归范围内无跳过用例

本轮执行命令为 python3 -m pytest --disable-warnings -ra,实际结果为 70 passed。可在命令行中执行 Allure 生成报告并进行可视化展示:

python3 -m pytest --alluredir=allure-results --clean-alluredir --disable-warnings -ra
allure generate allure-results -o allure-report --clean
allure open allure-report

从结果来看,当前接口自动化体系已具备稳定回归能力,可支撑版本迭代中的快速验收与缺陷回归验证。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐