Python自动化测试中结合unittest与YAML配置文件的实践

木白
木白
发布时间:2026-10-13| 6人浏览过
原创

本文解析在Python自动化测试中,如何利用unittest框架结合YAML配置文件管理测试数据。通过示例展示如何安装PyYAML、安全读取YAML文件以避免警告,并将请求URL和参数统一配置,从而减少重复代码并提升用例维护效率。

Python自动化测试中结合unittest与YAML配置文件的实践

本文详细解析在Python自动化测试中结合unittest框架与YAML配置文件的使用方法,通过具体示例代码展示操作流程,为相关学习与工作提供参考。

在编写unittest自动化用例时,若多个用例涉及相同的请求地址但参数不同,直接硬编码会导致代码冗余且难以维护。此时引入配置文件,将公共参数统一管理,可有效避免重复代码,并简化后期维护工作。

本例选用YAML格式进行配置,首先需安装对应的Python库,执行命令pip install yaml即可完成安装。

安装完成后,在脚本中通过import yaml导入模块。具体语法细节可参考官方入门教程。

YAML配置文件的引入与安装

以下通过具体示例说明配置过程:

基于YAML的查询教师列表用例配置

以“查询教师列表”用例为例,该场景下请求地址固定,但每次请求参数不同。我们将请求地址配置在yaml文件中。

第一步,创建yaml文件并录入请求的URL地址。

读取URL信息与安全加载

第二步,在代码中读取该url信息。


class teaTimeData(unittest.TestCase):
  def setUp(self):
    print("-------教师用例开始执行-------")
    self.file = open(get_path() + "/data/count_query.yaml","r",encoding="utf-8")
    self.data = yaml.load(self.file,Loader=yaml.FullLoader)
    self.file.close()
    self.base_url = self.data["query"].get("url")

注意:若直接使用yaml.load(),可能会收到关于安全性的警告。建议参考PyYaml文档中关于yaml.load(input)弃用说明的处理方式,通常推荐使用yaml.FullLoader。

编辑与执行测试用例

第三步,编辑具体的测试用例代码。


def test_01(self):
    headers ={
      "frontcode": "frontcode",
      "token": user_token
    }
    params={
      "pageSize": "5"
    }
    r = requests.get(url = self.query_url,headers = headers,params = params)
    self.assertEqual(r.status_code,200)

继续编写其他用例时,只需在yaml文件中配置不同的参数值即可,无需修改代码逻辑。

最后,执行所有配置好的用例。

以上就是本文的全部内容,希望能为读者的学习和工作提供帮助,欢迎继续支持本站。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。