Skip to content

Day5-Web自动化测试实战

Day4、5-用户端 Web 自动化测试

简介

完成电子商务 web 产品实战,掌握实战中的用例设计、日志封装、测试报告的编写。

知识模块

  • 用户端 Web 自动化测试 L2

知识点

  • 执行 JavaScript 脚本
  • Selenium 原理解析
  • Litemall 自动化测试实战

受众

  • 初级测试开发工程师
  • 初级 Python 开发工程师

相关知识点

教程地址 视频地址
执行 javascript 脚本 执行 javascript 脚本
Selenium 原理解析
Allure2 报告定制 Allure2 报告定制

场景介绍

你是某家互联网公司的测试团队成员。该公司是一家新兴电子商务平台开发公司,产品具有一定的市场影响力。一直以来,测试团队依靠手工黑盒测试来保障产品的质量。然而,随着公司业务的扩展和产品迭代的加快,手工测试逐渐无法满足快速高效的需求。

管理层决定,必须通过技术革新来提升测试效率,引入自动化测试以应对频繁的回归测试需求。测试团队必须迅速适应这场变革,在短时间内搭建并完善自动化测试体系,确保产品质量不会因迭代频率的增加而下降。

时间安排

时间 工作安排 自动化测试流程
第 1 天 项目启动会议 自动化测试用例编写
第 2 天 需求宣讲、需求评审、测试计划 自动化测试用例编写/CodeReview
第 3 天 开发/用例编写 自动化测试用例编写
第 4 天 开发/用例编写 自动化测试用例编写/CodeReview
第 5 天 开发/用例评审 自动化测试用例编写
第 6 天 冒烟测试/一轮测试 用例执行
第 7 天 一轮测试 用例执行
第 8 天 回归测试 用例执行
第 9 天 上线 用例执行
第 10 天 版本复盘会 Code Review

产品介绍

该产品为 LiteMall 商品管理系统,负责管理商城的商品信息、库存和分类等关键数据。每次版本迭代,商品管理模块的回归测试都成为瓶颈,因此这是自动化测试的首要目标。

  • 测试环境为:https://litemall.hogwarts.ceshiren.com/#/goods/list
  • Jenkins 环境:<待补充>

商品管理模块具体功能包括:

  • 商品列表
  • 商品上架
  • 商品评论

任务简介

  • 测试组长
    • 负责制定自动化测试的总体策略和框架选型。
    • 协调测试组员的工作,确保团队顺利搭建自动化测试体系。
    • 与开发团队沟通,确保测试用例的合理性和充分性。
    • 指导测试组员编写高效、可靠的自动化测试脚本。
  • 测试组员
    • 根据测试组长的策略,编写商品管理模块的自动化测试代码。
    • 定期审查并优化自动化测试用例,确保测试的稳定性。
    • 记录和跟踪自动化测试中发现的缺陷,并与开发工程师协作解决。
    • 参与测试框架的优化,提升整体测试效率。
  • 开发工程师
    • 负责商品管理模块及相关功能的开发与维护。
    • 在测试过程中,及时修复测试组员发现的缺陷。
    • 与测试组长合作,明确自动化测试的范围和优先级,并提供必要的技术支持(如接口、测试数据等)。

剧本剧情

现已确定测试方案,并选择自动化测试框架为 Selenium,用例管理用 Pytest 来实现。

挑战 1:项目启动,完成功能模块范围限定,分配出测试任务。

  • 场景:会议室
  • 内容
    • 测试组长:召开项目启动会议,明确自动化测试的目标和范围。你需要向组员解释为什么选择 Selenium 和 Pytest,并为每个组员分配具体的功能模块。确保每个模块的任务划分合理,并能够在规定时间内完成。
    • 任务:
      • 制定自动化测试用例的编写规范和提交流程。
      • 设定组员的项目权限,确保测试环境的稳定性和安全性。

挑战 2:完成所有 P0 级别的测试用例的编写。

  • 场景:测试工程师的工位
  • 内容
    • 测试组员:在组长分配任务后,立即开始编写 P0 即最高优先级的测试用例。这些用例必须覆盖商品管理模块的核心功能,并确保准确性和可靠性
    • 任务:
      • 使用 Selenium 编写测试脚本,确保每个脚本能稳定运行
      • 利用 Pytest 进行用例管理
      • 使用 Allure 输出报告

挑战 3: 添加到 jenkins 实现每日构建。

  • 场景:测试工程师的工位
  • 内容
    • 测试组长和组员:将已经编写好的自动化测试用例添加到 Jenkins 中,设置每日自动构建任务,确保新代码不会破坏原有的功能用例
    • 任务:
      • 提交各组的项目仓库
      • 完成一次构建成功

挑战 4: 保证每日构建的构建结果是稳定的。

  • 场景:会议室
  • 内容
    • 测试组长:在每日构建中,可能会遇到构建失败或测试用例不稳定的情况。需要及时找到问题相关人,找出构建失败的根本原因,调整测试用例或解决环境问题,确保构建的稳定性。
    • 任务:
      • 优化测试用例,减少偶发性失败
      • 确保 jenkins 环境的稳定运行,及时处理构建异常

挑战 5: 提升代码的可维护性与可读性。

  • 场景:测试工程师的工位
  • 内容
    • 测试组员:随着项目的推进,测试用例越来越多,代码的可维护性变得尤为重要。小组内交叉测试,提升代码的可读性和可维护性。
    • 任务
      • 每个人至少 5 条用例
      • 引入代码审查机制,确保每个测试用例的代码都符合团队的编码规范。
      • 利用 Pytest 和 Allure 的机制提升测试报告的可读性。

挑战 6: 完成商品列表模块的自动化测试用例 30 条

  • 场景:测试工程师的工位
  • 内容
    • 测试组员:在自动化测试项目收尾阶段,需要完成特定模块的自动化测试用例,需要确保用例覆盖全面,且能在不同的测试环境下稳定运行。
    • 任务:
      • 完成商品管理模块自动化测试用例 30 条
      • 输出完整的测试报告

挑战 7: 项目复盘

  • 场景:会议室
  • 内容
    • 测试组长组织并主持项目复盘会议,要求每位组员回顾在此次自动化测试项目中的经验与教训。每个人都需要分享自己在项目中的收获、遇到的问题,以及如何在未来的项目中避免类似问题。
    • 测试组长在所有组员发言后,回顾项目整体流程,分析项目中的成功与不足,并提出下次推进或重构的建议。
    • 任务:
      • 每人提出问题总结和收获
      • 组长总结项目整体并给出优化建议

面试题

总结

  • cookie 复用
  • 浏览器复用
  • 测试用例设计
  • 日志封装
  • Allure 测试报告定制