订购系统测试

📅 2026/7/20 10:22:05
订购系统测试
一、项目介绍1.1 项目背景近些年来伴随着电子商务市场体量不断扩大以及应用场景不断拓展健身器材的线上销售模式随之出现且逐渐变成促进整个行业数字化转型的力量之一。以跑步机等为主的运动设备在线购物服务信息化时代有明显的优势主要表现在冲破了传统的线下零售方式时间、空间上的束缚上。从消费者的角度来讲线上平台可以用户在任何时间、地点上都可以查看产品的各种信息、技术参数并且可以对这些产品进行综合比较和评估进而提高消费者的决策过程和购物便利性对于商家来说借助于智能化的管理软件系统可以使得订单的处理、库存的管理以及客服的支持等方面实现自动化运行进而缩减人力支出并极大提升整个企业的经营效益。1.2 测试目的为了确保系统基础功能完善可用本次测试通过四个方面展开1.2.1 功能正确性与数据准确性验证依据根据功能需求进行验证确定功能实现是否符合预期。验证核心商品管理上下架、库存提示、详情展示、用户管理注册登录、权限控制、资料维护、全链路购物流程商品浏览→多维度筛选 / 关键词搜索→加入购物车修改数量 / 删除→订单创建地址 / 支付方式选择→支付结算→商品查看各模块功能逻辑无缺失、节点衔接无断点且符合用户实际购物习惯无 “反常识” 业务逻辑缺陷如未付款订单长期占用库存、已退款订单仍显示 “待支付”。库存下单扣减、取消 / 退款后准确恢复订单金额数量品类加减计算无误。1.2.2用户体验与易用性​​​优化核心​​ 贴合目标用户购物习惯优化界面布局、信息架构与操作路径实现 “直观化” 操作。​验证要点​​ 注册 / 忘记密码能通过验证码完成步骤不超过 2 步避免强制填写非必要信息如生日。下单支付地址默认带常用选项支付方式一目了然避免 “选规格→加购→下单” 中反复跳转。反馈信息确定商家端能够及时收到消息。及时性操作后反馈弹窗 / 提示在 1 秒内出现无延迟。1.2.3 UI一致性验证交互测试所有按钮、输入框、弹窗、提示框等交互元素在不同状态默认、悬停、聚焦、点击、禁用下的样式与反馈符合设计预期无遗漏、错位。验证内容校验所有页面显示的文本、价格、数字、提示信息等内容是否准确无错别字、无歧义、无内容缺失或重叠。验证导航验证主导航、页脚、页面跳转逻辑是否正确用户是否能清晰地知道自己所在的位置以及如何到达想去的地方。1.2.4 兼容性目标​​ 实现全平台兼容确保不同浏览器、操作系统、终端设备上功能逻辑正常、界面交互适配用户体验一致。覆盖范围主流浏览器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 发现的主要问题在测试过程中我们发现了以下需要关注的问题数据验证不严谨注册环节手机号未进行真实性校验存在安全风险。功能逻辑缺陷购物车“全选”逻辑存在异常且空订单仍可进入支付流程。用户体验细节待优化修改密码界面缺少“显示密码”功能个人中心编辑信息时缺少用户名查重机制。内容管理问题商品列表页存在无效的“热门词条”且无后台管理入口进行修改。订单功能不完善订单详情页缺少“取消订单”、“申请退货”等售后操作入口。6.3 改进建议加强数据校验注册手机号应增加格式验证与短信验证码校验。修复业务逻辑修正购物车全选功能并增加订单商品数量非空校验。优化交互细节在密码输入框旁增加“显示/隐藏”开关在编辑个人信息时增加用户名唯一性校验。完善后台管理为运营人员提供管理后台用于配置首页推荐词、广告位等内容。补充售后流程在订单状态页面增加取消订单、申请退货/退款等功能入口。6.4 总结总体而言该健身器材电商平台核心功能稳定具备了上线运营的基础。本次测试不仅验证了现有功能的正确性更重要的是通过发现的问题为后续迭代优化指明了方向。建议开发团队优先修复数据安全类如手机号验证和核心业务逻辑类如空订单支付的高优先级缺陷随后逐步优化用户体验细节并规划后台管理系统的开发以支撑平台的长期运营与发展。