订购系统测试
2026/7/20 10:21:59 网站建设 项目流程

一、项目介绍

1.1 项目背景

近些年来,伴随着电子商务市场体量不断扩大以及应用场景不断拓展,健身器材的线上销售模式随之出现,且逐渐变成促进整个行业数字化转型的力量之一。以跑步机等为主的运动设备在线购物服务,信息化时代有明显的优势,主要表现在冲破了传统的线下零售方式时间、空间上的束缚上。从消费者的角度来讲,线上平台可以用户在任何时间、地点上都可以查看产品的各种信息、技术参数,并且可以对这些产品进行综合比较和评估,进而提高消费者的决策过程和购物便利性;对于商家来说,借助于智能化的管理软件系统,可以使得订单的处理、库存的管理以及客服的支持等方面实现自动化运行,进而缩减人力支出并极大提升整个企业的经营效益。

1.2 测试目的

为了确保系统基础功能完善可用,本次测试通过四个方面展开:

1.2.1 功能正确性与数据准确性

  1. 验证依据:根据功能需求进行验证,确定功能实现是否符合预期。
  2. 验证核心:商品管理(上下架、库存提示、详情展示)、用户管理(注册登录、权限控制、资料维护)、全链路购物流程(商品浏览→多维度筛选 / 关键词搜索→加入购物车(修改数量 / 删除)→订单创建(地址 / 支付方式选择)→支付结算→商品查看)
  3. 各模块功能逻辑无缺失、节点衔接无断点,且符合用户实际购物习惯,无 “反常识” 业务逻辑缺陷(如未付款订单长期占用库存、已退款订单仍显示 “待支付”)。
  4. 库存:下单扣减、取消 / 退款后准确恢复;订单金额:数量品类加减计算无误。

1.2.2用户体验与易用性​

  1. ​​优化核心:​​ 贴合目标用户购物习惯,优化界面布局、信息架构与操作路径,实现 “直观化” 操作。
  2. ​验证要点:​​ 注册 / 忘记密码:能通过验证码完成,步骤不超过 2 步,避免强制填写非必要信息(如生日)。
  3. 下单支付:地址默认带常用选项,支付方式一目了然,避免 “选规格→加购→下单” 中反复跳转。
  4. 反馈信息:确定商家端能够及时收到消息。
  5. 及时性:操作后反馈弹窗 / 提示在 1 秒内出现,无延迟。

1.2.3 UI一致性

  1. 验证交互:测试所有按钮、输入框、弹窗、提示框等交互元素在不同状态(默认、悬停、聚焦、点击、禁用)下的样式与反馈符合设计预期,无遗漏、错位。
  2. 验证内容:校验所有页面显示的文本、价格、数字、提示信息等内容是否准确,无错别字、无歧义、无内容缺失或重叠。
  3. 验证导航:验证主导航、页脚、页面跳转逻辑是否正确,用户是否能清晰地知道自己所在的位置以及如何到达想去的地方。

1.2.4 兼容性

  1. 目标:​​ 实现全平台兼容,确保不同浏览器、操作系统、终端设备上,功能逻辑正常、界面交互适配,用户体验一致。
  2. 覆盖范围:主流浏览器:Chrome、Firefox、Edge、Safari(均为最新版);操作系统:Windows、macOS、Android、iOS;终端设备:台式机、笔记本、平板、手机。

1.3 测试环境

操作系统:Windows 11

浏览器:Chrome、Edge

测试工具:Selenium

二、设计测试用例

测试用例设计锚定需求分析,结合等价类划分(覆盖有效 / 无效输入)与边界值分析(验证临界场景),再通过场景测试模拟用户实际操作,最终保障测试既全面覆盖关键场景,又具备贴合实际使用的实用性。
商场首页:

用户注册:

用户登录:

个人中心:

商品列表:

我的购物车:

易用性测试:

界面测试:

兼容性测试:

三、手动测试

注册页面功能

注册成功

注册失败

登陆页面功能

登陆成功

登陆失败

系统首页功能

收藏

加入购物车

点击资讯

个人中心功能

编辑信息

修改密码

收货地址

联系商家

商品收藏

商品列表功能

搜索

筛选

收藏

加入购物车

查看评论

购物车功能

增减

单选

全部结算

我的订单功能

四、自动化测试

自动化测试代码设计:
我们用的到工具是Pycharm以及selenium库,在自动化测试这里我们根据系统功能的不同,分功能编写测试脚本,分为登录页面、商城首页、商品界面、购物车界面这几个页面,我们根据不同的页面来针对性的设计自动化测试代码:

整体common放通用配置,images放截图图片,tests放不同界面和总体测试文件:

登录界面:

#配置登录界面 import time from selenium.webdriver.common.by import By from common.Utils import BuyDriver class BuyLogin: url = "" driver = "" def __init__(self): self.url = "http://172.18.46.29:8080/#/login" self.driver = BuyDriver.driver self.driver.get(self.url) #登陆成功 def LoginSucces(self): self.driver.find_element(By.CSS_SELECTOR, "#username").clear() self.driver.find_element(By.CSS_SELECTOR, "#password").clear() self.driver.find_element(By.CSS_SELECTOR,"#username").send_keys("1234567") self.driver.find_element(By.CSS_SELECTOR,"#password").send_keys("1234567") self.driver.find_element(By.CSS_SELECTOR,"#app > main > div > form > button.submit-btn").click() time.sleep(1) alert = self.driver.switch_to.alert alert_text = alert.text assert alert_text == "登录成功" alert.accept() time.sleep(1) self.driver.find_element(By.CSS_SELECTOR,"#app > nav > div > ul > li:nth-child(6) > div > span") self.driver.refresh() #BuyDriver.getScreenshot() #self.driver.back() def LoginFail(self): self.driver.find_element(By.CSS_SELECTOR, "#username").clear() self.driver.find_element(By.CSS_SELECTOR, "#password").clear() self.driver.find_element(By.CSS_SELECTOR, "#username").send_keys("1234567") self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("12") self.driver.find_element(By.CSS_SELECTOR, "#app > main > div > form > button.submit-btn").click() time.sleep(1) alert = self.driver.switch_to.alert alert_text = alert.text assert alert_text == "用户名或密码错误" alert.accept() self.driver.refresh() #BuyDriver.getScreenshot() #self.driver.quit() def Back(self): self.driver.back() def Out(self): self.driver.quit()

首页界面:

import time from selenium.webdriver.common.by import By from common.Utils import BuyDriver class buylist: url = "" driver = "" def __init__(self): self.url = "http://172.18.46.29:8080/login#/" self.driver = BuyDriver.driver self.driver.get(self.url) def ListLogin(self): time.sleep(2) self.driver.find_element(By.CSS_SELECTOR, "#app > nav > div") self.driver.find_element(By.CSS_SELECTOR, "#app > nav > div > ul > li:nth-child(1) > a") self.driver.find_element(By.CSS_SELECTOR, "#app > nav > div > ul > li:nth-child(6) > div > span") self.driver.find_element(By.CSS_SELECTOR, "#app > main > div > section:nth-child(1)") self.driver.find_element(By.CSS_SELECTOR, "#app > main > div > section:nth-child(2)") self.driver.find_element(By.CSS_SELECTOR, "#app > main > div > section:nth-child(3)") def ListNoLogin(self): time.sleep(2) self.driver.find_element(By.CSS_SELECTOR, "#app > nav > div") self.driver.find_element(By.CSS_SELECTOR, "#app > nav > div > ul > li:nth-child(1) > a") self.driver.find_element(By.CSS_SELECTOR, "#app > nav > div > ul > li:nth-child(6) > a") self.driver.find_element(By.CSS_SELECTOR, "#app > main > div > section:nth-child(1)") self.driver.find_element(By.CSS_SELECTOR, "#app > main > div > section:nth-child(2)") self.driver.find_element(By.CSS_SELECTOR, "#app > main > div > section:nth-child(3)") def Back(self): self.driver.back() def Out(self): self.driver.quit()

商品界面:

import time from selenium.webdriver.common.by import By from common.Utils import BuyDriver class Show: driver = "" url = "" def __init__(self): self.url = "http://172.18.46.29:8080/login#/product-list" self.driver = BuyDriver.driver self.driver.get(self.url) def findadd(self,string): time.sleep(1) self.driver.find_element(By.CSS_SELECTOR, "#app > nav > div > ul > li:nth-child(6) > div > span") self.driver.find_element(By.CSS_SELECTOR, "#app > main > div > div.search-section > div.search-container > input").send_keys(string) self.driver.find_element(By.CSS_SELECTOR, "#app > main > div > div.product-grid > div:nth-child(2) > div.product-image > button").click() self.driver.find_element(By.CSS_SELECTOR, "#app > main > div > div.product-grid > div:nth-child(1) > div.product-info > div > button.btn-secondary").click() time.sleep(1) alert = self.driver.switch_to.alert alert_text = alert.text assert alert_text == "已成功加入购物车" alert.accept() def Back(self): self.driver.back() def Out(self): self.driver.quit()

购物车界面:

import time from selenium.webdriver.common.by import By from common.Utils import BuyDriver class Cart: url = "" driver = "" def __init__(self): self.url = "http://172.18.46.29:8080/login#/cart" self.driver = BuyDriver.driver self.driver.get(self.url) def cartbuy(self): time.sleep(1) self.driver.find_element(By.CSS_SELECTOR, "#app > nav > div > ul > li:nth-child(6) > div > span") self.driver.find_element(By.CSS_SELECTOR, "#app > main > div > div > table > tbody > tr > td:nth-child(6) > button.checkout-single-btn").click() time.sleep(1) self.driver.find_element(By.CSS_SELECTOR, "#app > main > div > div > div:nth-child(1) > div > div.address-item.active > div.address-actions > button.select-btn") self.driver.find_element(By.CSS_SELECTOR, "#app > main > div > div > div:nth-child(5) > button").click() time.sleep(1) alert = self.driver.switch_to.alert alert_text = alert.text assert alert_text == "订单提交成功!" alert.accept() time.sleep(1) self.driver.find_element(By.CSS_SELECTOR, "#app > main > div > div > div.payment-actions > button.btn-primary").click() time.sleep(2) self.driver.find_element(By.CSS_SELECTOR, "#app > main > div > div > div.success-actions > a.btn-secondary").click() def Back(self): self.driver.back() def Out(self): self.driver.quit()

总测试:

from tests import buylist, show, cart from tests import buylogin if __name__ == '__main__': buylogin.BuyLogin().LoginSucces() buylist.buylist().ListLogin() buylist.buylist().Back() show.Show().findadd("a") show.Show().Back() cart.Cart().cartbuy() cart.Cart().Out()

五、BUG分析

注册界面:

手机号没有验证真伪:

修改密码没有查看密码功能:

商品列表:

不存在的热门词条,且没有修改途径:

购物车界面:

全选逻辑有问题:

空订单可以支付:

没有取消订单、退货选项:

个人中心:

编辑修改信息没有用户名查重:

六、测试总结

本次对健身器材电商平台进行了全面的测试,覆盖功能、用户体验、UI一致性、兼容性等多个维度。通过手动测试与自动化测试相结合的方式,验证了系统核心业务流程的完整性与稳定性,同时也发现了若干需要改进的问题。

6.1 测试成果概述

1. 功能测试覆盖全面:完成了注册、登录、商品浏览、搜索筛选、购物车管理、订单创建与支付等核心业务流程的测试,各主要功能模块均能正常运行,业务流程衔接顺畅。

2. 自动化测试框架搭建:基于 Python + Selenium 构建了自动化测试框架,实现了登录、首页浏览、商品搜索加入购物车、购物车结算等关键场景的自动化验证,提升了回归测试效率。

3. 用户体验基本达标:界面布局清晰,操作路径符合常规电商平台习惯,主要功能操作反馈及时,整体用户体验良好。

6.2 发现的主要问题

在测试过程中,我们发现了以下需要关注的问题:

  1. 数据验证不严谨:注册环节手机号未进行真实性校验,存在安全风险。
  2. 功能逻辑缺陷:购物车“全选”逻辑存在异常,且空订单仍可进入支付流程。
  3. 用户体验细节待优化:修改密码界面缺少“显示密码”功能;个人中心编辑信息时缺少用户名查重机制。
  4. 内容管理问题:商品列表页存在无效的“热门词条”,且无后台管理入口进行修改。
  5. 订单功能不完善:订单详情页缺少“取消订单”、“申请退货”等售后操作入口。

6.3 改进建议

  1. 加强数据校验:注册手机号应增加格式验证与短信验证码校验。
  2. 修复业务逻辑:修正购物车全选功能,并增加订单商品数量非空校验。
  3. 优化交互细节:在密码输入框旁增加“显示/隐藏”开关;在编辑个人信息时增加用户名唯一性校验。
  4. 完善后台管理:为运营人员提供管理后台,用于配置首页推荐词、广告位等内容。
  5. 补充售后流程:在订单状态页面增加取消订单、申请退货/退款等功能入口。

6.4 总结

总体而言,该健身器材电商平台核心功能稳定,具备了上线运营的基础。本次测试不仅验证了现有功能的正确性,更重要的是通过发现的问题为后续迭代优化指明了方向。建议开发团队优先修复数据安全类(如手机号验证)和核心业务逻辑类(如空订单支付)的高优先级缺陷,随后逐步优化用户体验细节,并规划后台管理系统的开发,以支撑平台的长期运营与发展。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询