python+ Selenium + TestNg + Allure Web UI 自动化
时间: 2025-04-05 22:16:30 浏览: 51
### Python、Selenium、TestNG 和 Allure 的 Web UI 自动化测试
尽管 TestNG 是 Java 中常用的测试框架,但在 Python 生态系统中,通常会使用 pytest 来替代 TestNG。以下是基于 Python、Selenium、pytest 和 Allure 构建 Web UI 自动化测试框架的方法。
#### 1. 环境准备
为了构建自动化测试环境,需要安装以下依赖项:
- **Python**: 使用版本 `3.10` 或更高版本[^1]。
- **Pytest**: 单元测试框架,推荐版本为 `7.x`。
- **Selenium**: Web 应用程序自动化测试工具,建议版本为 `4.x`。
- **Allure**: 报告生成工具,支持版本 `2.x`。
可以通过 pip 安装这些库:
```bash
pip install selenium==4.15 allure-pytest pytest==7.10
```
#### 2. 配置 Selenium WebDriver
Selenium 需要浏览器驱动来控制浏览器行为。例如,对于 Chrome 浏览器,可以下载对应版本的 Chromedriver 并配置路径:
```python
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))
```
上述代码片段展示了如何动态管理并加载 ChromeDriver。
#### 3. 编写 Pytest 测试脚本
创建一个简单的测试文件 `test_webui.py`,其中包含基本的功能测试逻辑:
```python
import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By
@pytest.fixture(scope="module")
def browser():
driver = webdriver.Chrome()
yield driver
driver.quit()
def test_login_page(browser):
"""验证登录页面"""
browser.get("https://example.com/login") # 替换为目标网站地址
title = browser.title
assert "Login" in title, f"Expected 'Login' in title but got {title}" # 断言标题是否包含特定字符串
def test_user_login(browser):
"""执行用户登录操作"""
browser.find_element(By.ID, "username").send_keys("admin") # 输入用户名
browser.find_element(By.ID, "password").send_keys("password123") # 输入密码
browser.find_element(By.NAME, "login_button").click() # 提交表单
welcome_message = browser.find_element(By.CLASS_NAME, "welcome-message").text
assert "Welcome" in welcome_message, f"Expected 'Welcome', but found {welcome_message}"
```
此部分实现了两个测试案例:一个是验证登录页标题,另一个模拟用户登录过程。
#### 4. 整合 Allure 报告
通过命令行运行测试并将结果导出到 Allure 报告目录:
```bash
pytest --alluredir=./results test_webui.py
allure serve ./results
```
这将启动本地服务器展示 HTML 格式的测试报告。
#### 5. 结论
虽然 TestNG 主要在 Java 社区流行,但 Python 用户可以选择 pytest 作为其强大的替代方案。结合 Selenium 进行功能测试以及 Allure 实现可视化报告,能够显著提升团队协作效率和质量保障能力。
---
阅读全文
相关推荐


















