Day2-用户端Web自动化测试
Day2-用户端 Web 自动化测试 Allure 测试报告
简介
掌握高级定位 css、xpath 的使用方法和显式等待的高级使用。
知识模块
- 用户端 Web 自动化测试 L2
知识点
- 自动化测试流程
- Allure 测试报告
受众
- 初级测试开发工程师
- 初级 Python 开发工程师
相关知识点
用例执行
在开始 web 自动化测试工作后,用例执行是测试环节的核心部分,直接关系到测试的效果和质量,也是能够提升整个测试团队效率的关键。
在实际的工作中,通常会将自动化测试集成到 CI/CD 流程中,通过每日构建能够快速定位到自动化测试的问题,并且可以持续检测系统的稳定性。
因此,为了确保测试过程高效且有序,合理管理和执行自动化测试用例是至关重要的。
基于用例执行,还可细分为如下几个方面,帮助构建更合理且效率更高的自动化执行的结构。
- 阶段管理
- 模块管理
- 用例分类
- 测试报告展示
阶段管理
自动化测试用例在实际的应用中更多的用在了回归测试的阶段,这一阶段的测试至关重要,它不仅验证新版本的功能稳定性,还确保既有功能不被破坏。
所以基于这个需求,自动化用例的编写也需要更加符合回归的需求,即确保流程稳定并涵盖需要每次验证的关键功能,这意味着,更多的精力应集中在能够稳定执行且具有较高优先级的功能模块上。
- 流程稳定性:确保编写的自动化用例能在不同版本间稳定允许,减少因代码或环境变化导致的流程失败。
- 关键功能覆盖:优先编写那些涉及核心业务流程的测试用例。
结合到项目中可以使用 git 分支管理来区分每个阶段的测试任务。
用例分类
用例的合理分类能够显著提升测试执行的效率和准确性,确保关键功能得到有限验证,同时也能更好地管理和维护测试用例。
- 优先级划分:根据业务需求和功能重要性,将用例划分为高、中、低优先级。
- 模块划分:根据系统的功能模块,将测试用例分组、如登录模块、用户管理模块等。
在 Pytest 中,可以通过@pytest.mark
为用例设置优先级标签和模块标签,通过参数化功能@pytest.mark.parametrize
使得同一测试用例能够覆盖多个场景,从而提高用例的覆盖率和执行效率。
测试报告展示
自动化测试不能只关注于编写自动化测试代码。
对于测试结果更需要及时查看并且解决问题。测试报告是测试过程的关键输出,直接影响团队对测试结果的理解和后续的改进措施。
- 实时报告与通知:通过结合 CI/CD 达到在测试执行结束后立即生成测试报告的效果,并通过邮件、消息通知等方式通知给相关人员,确保问题能够快速响应。
- 可视化报告:测试报告应包含详细的测试结果,包括用例结构,用例数,执行通过率,执行时间,用例详情,错误日志和截图等,通过可视化的形式展示这些信息,能够使得团队成员更直观了解测试结果并快速定位问题。
- 数据分析:对于 Jenkins 这样的平台会保留每次构建后的结果,所以更方便分析历史数据发现长期存在的问题或者测试盲区,帮助团队不断优化测试策略。
测试报告可以使用 Allure 来直接生成每次执行的结果。
课堂练习
Allure 报告实战
要求:添加 Allure 报告信息
- 用例模块
- 用例标题
- 用例描述
- 用例截图
- 日志信息
练习一:必应搜索-添加 Allure 报告
"必应搜索" 测试步骤描述:
- 打开必应搜索 https://cn.bing.com/?mkt=zh-CN
- 输入关键字:"Selenium 中文官网"。
- 点击搜索按钮。
- 断言 “Selenium” 和 “https://www.selenium.dev/zh-cn” 在搜索结果的标题中。
- 导出用例,运行成功。
练习二:百度搜索功能练习-添加 Allure 报告
使用八大定位完成"百度搜索功能"自动化测试用例的编写,步骤如下:
- 打开百度搜索 https://www.baidu.com/
- 输入关键字:"测试人社区"。
- 点击搜索按钮。
- 断言 “测试人社区” 在第一个标题中。
练习三:测试人社区搜索-添加 Allure 报告
要求:完成对测试人社区高级搜索功能的测试
- 结合黑盒测试用例设计方法,使用 xmind 编写测试用例
- 选择其中部分用例使用自动化实现
- 使用 pytest 参数化的形式实现
- 添加用例标记分类管理自动化用例
用例执行实战
- 小组新建一个 gitee 仓库
- 小组成员在该仓库上新建个人分支,将每日练习上传至个人分支,并分模块管理
- jenkins 新建属于自己小组的 job,每日构建多分支任务
- 每日查看 Jenkins 运行结果
面试题
总结
- Allure 报告
- 自动化测试流程