Python自动化测试教程


前言

以下是一份较为全面的 Python 自动化测试教程,涵盖了自动化测试的基础知识、使用unittest和pytest框架进行测试的方法,以及 Web 应用自动化测试的示例。


1. 环境准备

1.1Python安装

访问 Python 官方网站,根据你的操作系统(Windows、Mac 或 Linux)下载并安装 Python 3.x 版本。安装时勾选 “Add Python to PATH”,方便在命令行中使用 Python。

Python 3.11安装教程:https://blog.csdn.net/u014164303/article/details/145549489
Python 3.13安装教程:https://blog.csdn.net/u014164303/article/details/146024500

Python 3.11下载地址:https://pan.quark.cn/s/9c44793cb24c
Python 3.13下载地址:https://pan.quark.cn/s/bce37ebd7f70

1.2选择Python开发环境

PyCharm 社区版(免费)或专业版(需付费或申请教育版)。安装完成后,打开 PyCharm,创建一个新的项目,在项目设置中选择之前创建的虚拟环境作为项目的 Python 解释器。PyCharm 功能强大,提供代码自动补全、调试等功能,适合开发大型项目。

Pycharm安装教程:https://blog.csdn.net/u014164303/article/details/145674773
PyCharm下载地址:https://pan.quark.cn/s/5756c8cf8b2a

2.1 安装

自动化测试是使用自动化工具来执行测试用例的过程,它可以提高测试效率、减少人为错误,并能快速反馈软件的质量。在 Python 中,有多个库和框架可用于自动化测试,常见的有unittest(Python 内置的测试框架)和pytest(功能强大且灵活的第三方测试框架)。

unittest是 Python 的内置模块,无需额外安装。

2.2 示例代码

import unittest

# 定义一个待测试的函数
def add(a, b):
    return a + b

# 创建一个测试类,继承自 unittest.TestCase
class TestAdd(unittest.TestCase):

    # 测试方法必须以 test_ 开头
    def test_add(self):
        result = add(2, 3)
        # 使用断言方法来验证结果
        self.assertEqual(result, 5)

if __name__ == '__main__':
    # 运行测试
    unittest.main()

2.3 代码解释

  • unittest.TestCase:是所有测试类的基类,测试类需要继承自它。
  • test_ 开头的方法:是测试方法,unittest会自动识别并执行这些方法。
  • 断言方法:如self.assertEqual()用于验证两个值是否相等。

3. 使用pytest框架进行单元测试

3.1 安装

pip install pytest

扫描二维码关注公众号,回复: 17604694 查看本文章

3.2 示例代码

# 定义一个待测试的函数
def add(a, b):
    return a + b

# 定义测试函数
def test_add():
    result = add(2, 3)
    assert result == 5

3.3 运行测试

在终端中,进入包含上述代码文件的目录,运行以下命令:

pytest

3.4 代码解释

pytest不需要创建测试类,直接定义以test_开头的函数即可。

  • assert语句:用于验证条件是否为真,如果条件为假,测试将失败。

4. Web 应用自动化测试(使用Selenium)

4.1 安装

pip install selenium

还需要下载对应浏览器的驱动(如 ChromeDriver),并将其添加到系统的环境变量中。

4.2 示例代码

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

# 创建 Chrome 浏览器驱动实例
driver = webdriver.Chrome()

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(3)

    # 验证页面标题是否包含搜索关键词
    assert 'Python自动化测试' in driver.title

except AssertionError:
    print("测试失败:页面标题不包含搜索关键词。")
finally:
    # 关闭浏览器
    driver.quit()

4.3 代码解释

  • webdriver.Chrome():创建一个 Chrome 浏览器的驱动实例。
  • driver.get():打开指定的网页。
  • driver.find_element():根据指定的定位方式(如By.NAME)找到页面上的元素。
  • send_keys():向输入框中输入内容。
  • submit():提交表单。
  • assert语句:用于验证页面标题是否包含搜索关键词。
  • driver.quit():关闭浏览器。

5. 测试报告生成

5.1 使用pytest-html生成 HTML 测试报告

pip install pytest-html

运行测试时,添加–html=report.html参数:

pytest --html=report.html

运行结束后,会在当前目录下生成一个名为report.html的测试报告文件。

6. 注意事项

  • 测试用例的独立性:每个测试用例应该相互独立,不依赖于其他测试用例的执行结果。
  • 异常处理:在测试代码中适当添加异常处理,以确保测试过程的稳定性。
  • 测试数据的准备:对于复杂的测试场景,需要准备合适的测试数据,以覆盖各种情况。

猜你喜欢

转载自blog.csdn.net/u014164303/article/details/146078850
今日推荐