使用Python进行自动化测试可以通过多种工具和框架实现,最常用的包括unittest(Python内置)、pytest(第三方库)和Selenium(用于Web应用测试)。下面通过代码示例来讲解如何使用这些工具进行自动化测试。

CSDN大礼包:《2025年最新全套学习资料包》免费分享
在这里插入图片描述

1. 使用 unittest 进行单元测试

unittest 是 Python 内置的单元测试框架,适合编写和运行单元测试。

示例代码:
import unittest

# 被测试的函数
def add(a, b):
    return a + b

def subtract(a, b):
    return a - b

# 测试类
class TestMathOperations(unittest.TestCase):
    def test_add(self):
        self.assertEqual(add(2, 3), 5)  # 测试加法
        self.assertEqual(add(-1, 1), 0)

    def test_subtract(self):
        self.assertEqual(subtract(5, 3), 2)  # 测试减法
        self.assertEqual(subtract(0, 0), 0)

if __name__ == "__main__":
    unittest.main()
运行结果:
  • 如果所有测试通过,会显示 OK
  • 如果有测试失败,会显示失败的测试用例和错误信息。

2. 使用 pytest 进行更简洁的测试

pytest 是一个功能强大且易于使用的第三方测试框架,支持更简洁的语法和丰富的插件。

安装 pytest
pip install pytest
示例代码:
# 被测试的函数
def multiply(a, b):
    return a * b

def divide(a, b):
    if b == 0:
        raise ValueError("Cannot divide by zero")
    return a / b

# 测试函数(文件名需以 test_ 开头,或函数名以 test_ 开头)
def test_multiply():
    assert multiply(2, 3) == 6
    assert multiply(-1, 5) == -5

def test_divide():
    assert divide(10, 2) == 5
    with pytest.raises(ValueError):  # 测试异常
        divide(10, 0)
运行测试:
pytest test_script.py
特点:
  • pytest 自动发现测试文件和函数。
  • 支持更丰富的断言和插件扩展。

3. 使用 Selenium 进行 Web 自动化测试

Selenium 是一个流行的工具,用于自动化测试 Web 应用程序。

安装 Selenium 和浏览器驱动:
pip install selenium

还需要下载对应浏览器的驱动程序(如 ChromeDriver)。

示例代码:
from selenium import webdriver
from selenium.webdriver.common.by import By
import time

# 初始化 WebDriver(以 Chrome 为例)
driver = webdriver.Chrome()  # 确保 chromedriver 在 PATH 中

try:
    # 打开网页
    driver.get("https://www.google.com")

    # 找到搜索框并输入内容
    search_box = driver.find_element(By.NAME, "q")
    search_box.send_keys("Python 自动化测试")

    # 提交搜索
    search_box.submit()

    # 等待结果加载
    time.sleep(2)

    # 验证页面标题
    assert "Python 自动化测试" in driver.title

finally:
    # 关闭浏览器
    driver.quit()
特点:
  • Selenium 可以模拟用户操作(点击、输入等)。
  • 支持多种浏览器(Chrome、Firefox 等)。

4. 测试报告和持续集成

  • 生成测试报告
    • unittest 可以结合 HTMLTestRunner 生成 HTML 报告。
    • pytest 自带支持生成多种格式的报告(如 --result-log)。
  • 持续集成
    • 结合 CI/CD 工具(如 Jenkins、GitHub Actions),可以自动化运行测试并生成报告。

总结

  • unittest:适合简单的单元测试,内置于 Python。
  • pytest:功能更强大,适合复杂的测试场景。
  • Selenium:适合 Web 应用的 UI 自动化测试。

根据具体需求选择合适的工具,结合持续集成和报告工具,可以大大提高测试效率和代码质量。

Logo

一站式 AI 云服务平台

更多推荐