Python、Selenium 和 Allure 进行 UI 自动化测试的简单示例脚本
环境准备
确保你已经安装了以下库:
- Selenium
- Allure
- pytest
你可以使用以下命令安装所需库:
pip install selenium allure-pytest pytest
示例代码
下面的代码示例是一个简单的登录测试,用于测试一个示例网站(例如:登录页面)。
import time
import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
import allure
# 配置 Allure
@allure.step("打开网页")
def open_page(driver, url):
driver.get(url)
@allure.step("输入用户名和密码")
def input_credentials(driver, username, password):
driver.find_element(By.NAME, "username").send_keys(username)
driver.find_element(By.NAME, "password").send_keys(password)
@allure.step("点击登录按钮")
def click_login(driver):
driver.find_element(By.NAME, "login").click()
@allure.step("检查登录结果")
def check_login_success(driver):
assert "Welcome" in driver.page_source
@pytest.fixture(scope="module")
def driver():
# 初始化 WebDriver
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
yield driver
driver.quit()
@pytest.mark.parametrize("username,password", [
("testuser", "testpassword") # 替换为实际的测试用户
])
def test_login(driver, username, password):
open_page(driver, "https://example.com/login") # 替换为实际的登录页面
input_credentials(driver, username, password)
click_login(driver)
time.sleep(2) # 等待页面加载
check_login_success(driver)
运行测试
- 保存上述代码到一个 Python 文件,例如 test_login.py。
- 通过以下命令运行测试并生成 Allure 报告:
pytest --alluredir=allure-results
- 生成报告后,使用以下命令查看 Allure 报告:
allure serve allure-results
说明
- webdriver_manager:自动安装和管理浏览器驱动程序。
- @allure.step:用于标记测试步骤,以便在报告中生成详细信息。
- pytest.mark.parametrize:用于参数化测试,使你可以用不同的输入运行相同的测试。