Python、Selenium 和 Allure 进行 UI 自动化测试的简单示例脚本

liftword4周前 (04-26)技术文章7

环境准备

确保你已经安装了以下库:

  • 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)


运行测试

  1. 保存上述代码到一个 Python 文件,例如 test_login.py。
  2. 通过以下命令运行测试并生成 Allure 报告:
pytest --alluredir=allure-results


  1. 生成报告后,使用以下命令查看 Allure 报告:
allure serve allure-results


说明

  • webdriver_manager:自动安装和管理浏览器驱动程序。
  • @allure.step:用于标记测试步骤,以便在报告中生成详细信息。
  • pytest.mark.parametrize:用于参数化测试,使你可以用不同的输入运行相同的测试。

相关文章

Pytest 入门与进阶:全面掌握 Python 自动化测试

**Pytest** 是 Python 中非常流行的一个测试框架,它提供了一种简单而高效的方式来编写和执行测试,广泛应用于单元测试、功能测试和集成测试。Pytest 以其简洁的语法和丰富的功能,成为...

从零入门Python测试神器pytest!高效测试,代码质量飙升10倍

引言:为什么测试是开发者的"金钟罩"?在编程江湖中,未经测试的代码如同没有铠甲的战士。今天要介绍的pytest,正是Python领域测试覆盖率排名第一的利器(2023年PyPI官方数据...

Python单元测试最佳实践指南:编写高效测试的7个核心技巧

作为Python开发者,编写单元测试是最值得培养(并不断提升)的优秀习惯之一。它能帮助您及早发现错误、简化调试过程,并让您有信心进行代码修改而不破坏现有功能。但并非所有测试都具有同等价值!如果测试代码...

python四个性能检测工具,包括函数的运行内存、时间等等...

这里总结了五个比较好的python性能检测工具,包括内存使用、运行时间、执行次数等方面。首先,来编写一个基础的python函数用于在后面的各种性能测试。def base_func(): for...

Python实现YOLOv8车道线与车辆检测

以下是一个基于YOLOv8和OpenCV实现车道线与车辆检测的Python示例代码,结合了深度学习目标检测和传统图像处理技术:pythonimport cv2import numpy as npfro...

Python进阶-day19: 测试与调试

一、课程目标理解测试的重要性:掌握软件测试的基本概念,了解单元测试在提高代码质量和可维护性中的作用。学习测试框架:熟悉Python中两种主流测试框架unittest和pytest的使用方法,理解它们的...