电商平台自动化测试报告
测试日期:2026 年 7 月 — 2026 年 8 月
报告日期:2026 年 8 月 17 日
一、项目背景
电商平台系统,采用 PHP + MySQL 架构,通过 MVC 路由组织页面,已部署至云服务器(http://49.235.61.184)提供线上访问。系统覆盖用户注册登录、商品分类浏览、关键词搜索、商品详情展示、加入购物车、结算下单等完整电商核心业务流程。
本次测试对平台的核心业务链路开展 Selenium 黑盒自动化测试,覆盖注册、登录、首页导航、分类浏览与搜索、商品详情、购物流程 6 大模块,并区分登录 / 未登录两种状态验证系统行为差异,共设计 18 个测试场景。
测试环境
| 项目 | 内容 |
|---|---|
| 操作系统 | Windows 11 |
| 浏览器 | Microsoft Edge |
| Selenium | 4.45.0 |
| Python | 3.13 |
| 被测地址 | http://49.235.61.184 |
| 测试类型 | 黑盒功能测试 |
二、项目功能
被测电商平台主要提供以下功能:
- 注册:用户名唯一性校验、密码格式校验(6~18 位)、同意协议勾选,注册成功后自动跳转用户中心。
- 登录:账号存在性校验、密码正确性校验,登录成功后进入用户中心,支持退出登录。
- 首页导航:登录后可进入个人中心、我的商城、我的收藏;未登录时首页展示登录按钮,点击跳转登录页。
- 分类浏览与搜索:按商品分类浏览列表、关键词搜索商品、结果筛选与排序。
- 商品详情:展示商品标题、价格、销量、规格、图片,提供立即购买、加入购物车、收藏操作;未登录操作时弹出登录窗口拦截。
- 购物流程:浏览商品 → 选规格加购 → 购物车全选结算 → 提交订单 → 支付方式选择;未登录直接访问结算页会被重定向到登录页。
三、测试计划
一)功能测试
用例设计使用思维导图整理,每个模块拆出正常和异常两类场景,同时区分登录和未登录两种状态,具体方法:
- 等价类划分:账号、密码、手机号、邮箱等输入项,分别取有效值和无效值;
- 边界值:密码长度限制 6~18 位,测了 5 位和 19 位两个边界;
- 场景法:按用户完整购物过程串起来跑,注册 → 登录 → 浏览 → 搜索 → 加购 → 结算 → 下单;
- 状态迁移:同一个页面在登录 / 未登录下的行为差异。
总体数据
| 项目 | 数量 |
|---|---|
| 场景总数 | 18 |
| 模块数 | 6 |
| 通过 | 18 |
| 失败 | 0 |
| 通过率 | 100% |
1. 注册模块(3 个用例)

图1:注册失败 — 未勾选同意协议

图2:注册成功
| 编号 | 场景 | 预期结果 | 结果 |
|---|---|---|---|
| 01 | 用户名留空直接提交 | 提示用户名格式错误 | 通过 |
| 02 | 密码只输 5 位 | 提示“密码格式 6~18 个字符之间” | 通过 |
| 03 | 填写正确的用户名和密码 | 注册成功,跳转用户中心 | 通过 |
注册模块共 3 个用例,分别覆盖密码边界值、空用户名、正常注册流程。每次使用随机用户名避免重复注册报错。
2. 登录模块(4 个用例)

图3:登录失败 — 密码错误提示

图4:登录成功,跳转至首页
| 编号 | 场景 | 预期结果 | 结果 |
|---|---|---|---|
| 04 | 不存在的账号 | 提示“账号不存在” | 通过 |
| 05 | 密码只输 5 位 | 提示“密码格式 6~18 个字符之间” | 通过 |
| 06 | 输入正确账号和错误密码 | 提示“密码错误” | 通过 |
| 07 | 正确账号 + 正确密码 | 登录成功,跳转用户中心 | 通过 |
3. 首页模块(4 个用例)
首页模块主要验证登录状态下各个入口的跳转是否正确,以及未登录时首页的基本布局,确保每个链接都能正常点击跳转。

图5:首页 — 已登录状态全貌
| 编号 | 场景 | 预期结果 | 结果 |
|---|---|---|---|
| 08 | 登录后点“个人中心” | 跳转个人中心,头像区域正常显示 | 通过 |
| 09 | 登录后点“我的商城” | 跳转我的商城页 | 通过 |
| 10 | 登录后点“我的收藏” | 跳转收藏页 | 通过 |
| 11 | 未登录状态下首页 | 登录按钮可见,点击跳转登录页 | 通过 |
4. 分类与搜索模块(3 个用例)
分类和搜索测了 3 个场景。搜索用的关键词是“iphone”,返回结果后顺便验证了筛选和排序功能是否可用。

图6:商品列表 — 搜索 iPhone 结果
| 编号 | 场景 | 预期结果 | 结果 |
|---|---|---|---|
| 12 | 登录后点分类浏览 | 商品列表正常加载,名称和价格显示无误 | 通过 |
| 13 | 登录后搜索“iphone” | 搜索结果正确返回,筛选和排序功能可用 | 通过 |
| 14 | 未登录浏览分类页 | 分类 tab、商品列表、搜索框均可见 | 通过 |
5. 商品详情模块(4 个用例)
商品详情页测了 4 个场景,其中 3 个是未登录状态下的拦截场景。未登录时点购买、加购、收藏都会弹登录窗,这个是预期行为,不是 bug。

图7:商品详情 — 未登录弹窗拦截
| 编号 | 场景 | 预期结果 | 结果 |
|---|---|---|---|
| 15 | 登录后打开商品详情 | 标题/价格/销量/规格/图片/购买按钮/购物车按钮均正常 | 通过 |
| 16 | 未登录点“立即购买” | 弹出登录窗 | 通过 |
| 17 | 未登录点“加入购物车” | 弹出登录窗 | 通过 |
| 18 | 未登录点“收藏” | 弹出登录窗 | 通过 |
6. 购物流程模块(5 个用例)
购物流程是整个测试里场景最多的模块,覆盖从浏览商品到提交订单的完整过程。下单后跳转到支付页,但测试服务器没配支付通道,所以看到支付方式选择页就算下单成功。

图8:购物流程 — 商品详情加购

图9:支付方式选择页 — 支付通道为空
| 编号 | 场景 | 预期结果 | 结果 |
|---|---|---|---|
| 19 | 登录后浏览商品详情 | 商品名称和售价正常显示 | 通过 |
| 20 | 选规格 + 加入购物车 | 弹出成功提示,购物车图标数字 +1 | 通过 |
| 21 | 购物车全选 + 点结算 | 进入结算页,地址和商品信息正确 | 通过 |
| 22 | 提交订单 | 进入支付方式选择页 | 通过 |
| 23 | 未登录直接访问结算页 | 被重定向到登录页 | 通过 |
截图清单
测试过程中每个场景都自动截了图,共计 32 张,存在 images/日期/ 目录下,按测试方法名命名。完整清单:
| 测试方法 | 张数 | 截图内容 |
|---|---|---|
| RegisterFailTest | 2 | 未勾选协议提示、密码过短提示 |
| RegisterSucTest | 2 | 注册前、注册后跳转用户中心 |
| LoginFailTest | 6 | 提示“密码错误” |
| LoginSucTest | 2 | 登录前、登录后跳转用户中心 |
| HomePageTestByLogin | 4 | 首页、个人中心、我的商城、我的收藏 |
| HomePageTestNoLogin | 1 | 登录按钮 + 跳转登录页 |
| ListTestByLogin | 2 | 分类浏览、搜索结果 |
| ListTestNoLogin | 1 | 未登录分类页 |
| DetailTestByLogin | 1 | 已登录商品详情页 |
| DetailTestNoLogin | 4 | 购买弹窗、购物车弹窗、收藏弹窗×2 |
| EditTestByLogin | 6 | 商品页、加购、购物车全选、结算页、提交后支付页×2 |
| EditTestNoLogin | 1 | 未登录重定向到登录页 |
二)自动化测试
代码按功能模块组织,浏览器操作封装在公共工具类里,各模块测试类直接完成元素操作与断言,由统一入口按业务顺序编排执行。结构如下:
common/Utils.py:封装浏览器驱动管理(单例MallDriver)、元素等待与点击(wait_and_click)、等待与输入(wait_and_send_keys,基于WebDriverWait显式等待)、自动截图(按日期和方法名分类保存到images/日期/目录)等重复操作;tests/目录:按业务模块拆分,每个模块一个文件、一个类,如MallRegister.py(注册)、MallLogin.py(登录)、MallHomePage.py(首页)、MallList.py(分类/搜索)、MallDetail.py(商品详情)、MallEdit.py(购物流程);RunTest.py:测试主入口,按“注册 → 登录 → 已登录各模块 → 退出登录 → 未登录各模块”的业务顺序编排执行;- 断言方式:使用 Python 原生
assert校验预期结果,每个测试方法执行后自动截图存档,便于失败时快速定位;执行成功时静默输出,退出码为 0。
四、难点
- 浏览器驱动下载失败:
webdriver_manager从境外 CDN 下载msedgedriver在国内网络下经常失败。解决:去掉webdriver_manager,改用 Selenium 4.45 内置的 Selenium Manager 自动管理驱动,无需手动下载。 - Edge 浏览器启动崩溃:Edge 150+ 版本下部分启动参数(
--remote-debugging-port等)会导致msedgedriver崩溃。解决:精简启动参数,仅保留必要的--disable-gpu,驱动稳定运行。 - 结算页依赖购物车 Session:最初直接访问结算页 URL,页面读取不到购物车 Session 数据,显示“商品信息为空”。解决:用例改为走完整用户流程——商品页 → 加购 → 关闭弹窗 → 购物车页 → 全选 → 结算,与真实用户操作一致。
- 加购弹窗遮挡:加入购物车后弹出成功提示窗覆盖页面,影响后续元素点击。解决:先关闭弹窗再进行下一步操作。
- 购物车商品默认未勾选:进入购物车页显示“已选商品 0 件”。解决:点击“全选”后再结算。
- 支付通道未配置:提交订单后跳转到支付方式选择页,但支付方式列表为空——测试服务器未配置支付宝/微信通道。测试以“看到支付方式选择页”作为下单成功的标准。
- 截图管理:每个测试方法执行后自动截图,按日期和方法名分类存储。本次共生成 32 张截图,主要用于失败时快速定位问题页面。
五、测试结论
18 个场景全部通过,通过率 100%,无失败用例。核心业务链路(注册 → 登录 → 浏览 → 搜索 → 加购 → 结算 → 下单)全部跑通,无阻塞性缺陷。自动化脚本可一键回归,系统迭代后几分钟即可完成全量验证,替代人工逐页点检。
更多推荐




所有评论(0)