Pytest-Bdd-Playwright 系列教程(1):从零开始教你写自动化测试框架「喂饭教程」
前言
- 最近收到一些小伙伴在后台的留言,能不能提供相应的自动化测试项目的源码参考下,那么今天就来开始新的一期喂饭教程专栏,教大家如何完整的搭建一个完善的自动化测试框架;
- 我们将逐步讲解从项目结构设计到测试执行的整个过程,帮助大家深入理解自动化测试框架的各个组成部分及其工作原理。
本专栏教程知识点:
- BDD&页面对象模型;
- 测试报告&日志展示;
- 支持在多浏览器&多环境中执行测试;
- 支持用例多进程并发执行;
- 日志功能改造;
- 支持自动截图、录制视频、HAR、Traces;
- 支持成功&失败用例的截图、视频文件自动附加到 Allure 报告;
- 支持测试用例过滤;
- 支持测试用例执行结果收集;
- 支持测试用例执行时间、成功率统计;
- 未完待续,敬请期待…
本文教程知识点:
- BDD&页面对象模型
- 测试报告&日志生成
通过本文内容的学习,你将能够:
- 理解BDD在自动化测试中的应用;
- 掌握Page Object设计模式;
- 学会使用Pytest和Playwright进行Web自动化测试;
- 了解如何组织和管理自动化测试项目;
- 掌握测试报告生成和日志管理技巧。
一、项目结构
│
├── features/ # BDD特性文件
│ └── search.feature # 搜索功能的特性文件
│
├── pages/ # 页面对象
│ └── search_page.py # 搜索页面对象
│
├── steps/ # 步骤定义
│ └── search_steps.py # 搜索相关步骤定义
│
├── tests/ # 测试脚本
│ └── test_search.py
│
├── reports/ # 测试报告(自动生成)
│ ├── logs/ # 日志文件目录(自动生成)
│ │ └── test_log.log # 测试日志文件(自动生成)
│ └── test_report.html # HTML格式的测试报告(自动生成)
│
├── conftest.py # Pytest fixtures和全局配置
├── pytest.ini # Pytest配置文件
├── requirements.txt # 项目依赖
└── README.md # 项目说明文档
二、安装依赖
- 安装 Python
- 项目最低支持 Python 版本: 3.7
- 推荐 Python 版本: 3.8+(我自己安装的是3.11.9)
- 创建
requirements.txt
文件,包含以下依赖:
pytest==7.3.1
pytest-bdd==7.3.0
playwright==1.48.0
pytest-html==4.1.1
- 使用以下命令安装依赖:
pip install -r requirements.txt
- 下载Playwright浏览器驱动
playwright install
三、BDD特性文件
首先,安装Gherkin插件;
然后,在features/search.feature
中编写BDD场景:
Feature: 百度搜索
作为用户
我想要能够在百度上搜索信息
以便找到相关的信息
Background:
Given 我在百度搜索页面
Scenario Outline: 成功搜索
When 我输入搜索词 "<search_term>"
And 点击搜索按钮
Then 我应该看到搜索结果
Examples:
| search_term |
| python |