Shaw0xyz 发表于 2024-7-12 17:20:13

Pytest+selenium UI自动化测试实战实例

本帖最后由 Shaw0xyz 于 2024-7-13 16:17 编辑

1. 引言

UI自动化测试是保证Web应用程序质量的重要手段。本文将介绍如何使用Pytest和Selenium进行UI自动化测试,通过一个实战实例,展示从环境配置到编写和运行测试用例的完整过程。

1.1 Pytest简介

Pytest是一个功能强大且灵活的Python测试框架,支持简单的单元测试到复杂的功能测试。它具有易用的语法、丰富的插件和强大的扩展性,非常适合与Selenium结合进行UI自动化测试。

1.2 Selenium简介

Selenium是一个流行的Web自动化测试工具,支持多种浏览器和操作系统。它允许使用不同的编程语言(如Java、Python、C#)编写测试脚本,自动执行浏览器操作,模拟用户行为。

2. 环境配置

2.1 安装Python

确保系统中已安装Python。可以通过以下命令检查Python版本:

python --version

如果未安装Python,可以从Python官方网站下载并安装最新版本。

2.2 安装Selenium

使用pip安装Selenium库:

pip install selenium

2.3 安装Pytest

使用pip安装Pytest框架:

pip install pytest

2.4 配置WebDriver

下载与目标浏览器对应的WebDriver,并将其路径添加到系统环境变量中。例如,若使用Chrome浏览器,则需要下载ChromeDriver。

3. 编写测试用例

3.1 创建测试文件

在项目目录中创建一个名为`test_example.py`的文件,作为我们的测试文件。

3.2 导入必要的库

在测试文件中,导入Selenium和Pytest库:

import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By

3.3 编写测试函数

编写一个简单的测试函数,用于打开Google主页并验证标题:

def test_google_title():
    driver = webdriver.Chrome()
    driver.get("https://www.google.com")
    assert "Google" in driver.title
    driver.quit()

4. 运行测试

使用以下命令运行测试用例:

pytest test_example.py

Pytest将自动发现并执行测试函数,并输出测试结果。

5. 实战实例

5.1 测试百度搜索功能

假设我们要测试百度的搜索功能,编写以下测试用例:

import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

def test_baidu_search():
    driver = webdriver.Chrome()
    driver.get("https://www.baidu.com")

    search_box = driver.find_element(By.NAME, "wd")
    search_box.send_keys("pytest selenium")
    search_box.send_keys(Keys.RETURN)

    assert "pytest selenium" in driver.page_source
    driver.quit()

5.2 添加更多断言

在实际测试中,可以添加更多断言来验证页面元素和行为:

def test_baidu_search():
    driver = webdriver.Chrome()
    driver.get("https://www.baidu.com")

    search_box = driver.find_element(By.NAME, "wd")
    search_box.send_keys("pytest selenium")
    search_box.send_keys(Keys.RETURN)

    assert "pytest selenium" in driver.page_source
    assert "百度一下,你就知道" in driver.page_source

    results = driver.find_elements(By.CSS_SELECTOR, "h3.t")
    assert len(results) > 0

    driver.quit()

5.3 使用Pytest Fixture

使用Pytest Fixture可以简化测试用例中的重复代码,例如浏览器的启动和关闭:

@pytest.fixture
def driver():
    driver = webdriver.Chrome()
    yield driver
    driver.quit()

def test_baidu_search(driver):
    driver.get("https://www.baidu.com")

    search_box = driver.find_element(By.NAME, "wd")
    search_box.send_keys("pytest selenium")
    search_box.send_keys(Keys.RETURN)

    assert "pytest selenium" in driver.page_source
    assert "百度一下,你就知道" in driver.page_source

    results = driver.find_elements(By.CSS_SELECTOR, "h3.t")
    assert len(results) > 0

6. 总结

本文介绍了如何使用Pytest和Selenium进行UI自动化测试,从环境配置到编写和运行测试用例,展示了一个完整的实战实例。通过这种方式,开发者可以高效地进行Web应用程序的自动化测试,确保其在不同浏览器和操作系统上的稳定性和一致性。希望本文能为您在实际项目中提供有用的参考。









/ 荔枝学姐de课后专栏 /

Hi!这里是荔枝学姐~

欢迎来到我的课后专栏

自然语言学渣 NLP摆烂姐

热衷于技术写作 IT边角料

AIGC & Coding & Linux ...

~互撩~ TG: @Shaw_0xyz
页: [1]
查看完整版本: Pytest+selenium UI自动化测试实战实例