news 2026/2/8 22:03:23

如何构建Python自动化测试框架?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何构建Python自动化测试框架?

🍅点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快

本文将介绍如何使用Python构建一个自动化测试框架,覆盖到了从架构设计到示例代码的全过程。

1、搭建自动化测试框架会用到的技术

1)Python编程语言

2)Pytest测试框架

3)Selenium WebDriver

4)REST API 测试库(例如:Requests库)

5)数据库操作库(例如:SQLite3)

2、自动化测试框架组成部分及目录结构

2.1 组成部分

1)测试用例管理器(Test Case Manager)

用于管理测试用例及其相关的信息,例如:测试用例编号、测试用例名称、测试用例预期结果等。

2)测试数据管理器(Test Data Manager)

用于存储测试数据,例如:测试环境配置信息、测试数据文件等。

3)测试引擎(Test Execution Engine)

用于按照测试计划执行测试用例,并将测试结果记录在测试报告中。

4)测试报告生成器(Test Report Generator)

用于将测试结果转换为易于理解的格式,例如:HTML格式报告。

2.2 目录结构

├──configs #存放配置文件,例如数据库配置文件、测试环境配置文件等
├──data #存放测试数据文件,例如Excel或CSV数据文件等
├──reports #存放测试报告文件,例如HTML格式报告
├──src
│ ├───page_objects #存放页面对象,例如每个页面的元素定位、操作方法等

│ ├───test_cases #存放测试用例文件,例如py文件
│ ├───test_data_handlers #存放测试数据处理器,例如读取Excel或CSV文件

并返回处理后的数据
│ └───utils #存放各种工具函数,例如数据库连接、日志打印等
├──requirements.txt #包含项目所需依赖的Python包及其版本号

└──run_tests.py #执行测试用例的

3、示例代码

# src/test_cases/test_login.py from src.page_objects.login_page import LoginPage from src.test_data_handlers.data_handler import read_csv_file from src.utils import get_database_connection import pytest from selenium.webdriver import Chrome @pytest.fixture(scope='module') def driver(): driver = Chrome() driver.implicitly_wait(10) yield driver driver.quit() @pytest.fixture(scope='module') def login_page(driver): login_page = LoginPage(driver) return login_page @pytest.fixture(scope='function') def test_data(): test_data = read_csv_file('data/testdata.csv') return test_data def insert_test_result(test_case_id, result): conn = get_database_connection() cursor = conn.cursor() sql = f"INSERT INTO test_results (test_case_id, result) VALUES ({test_case_id}, '{result}')" cursor.execute(sql) conn.commit() conn.close() def test_login_successful(login_page, test_data): for data in test_data: login_page.login(data['username'], data['password']) if data['expected_result'] == 'True': assert login_page.is_login_successful() == True insert_test_result(1, 'pass') else: assert login_page.is_error_message_displayed() == True insert_test_result(1, 'fail')

在上面的示例代码中,提供了一个测试用例 test_login_successful 用于测试登录功能。同时,使用CSV格式的测试数据文件,通过测试数据处理器读取并返回处理后的数据。

从 utils.py 文件中,看到如何连接数据库,这是用来记录测试结果的。insert_test_result 函数,插入测试结果数据到SQLite3数据库中。通过执行 run_tests.py 脚本文件,运行自动化测试用例。

希望这篇文章能够给你提供一些启发,让你更好地理解如何构建Python自动化测试框架。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/3 13:17:49

域名交易中常见骗局揭秘,新手一定要警惕这几种套路

随着互联网的发展,域名逐渐成为一种具有价值的数字资产,参与域名交易的人也越来越多。但与此同时,围绕域名交易的各类骗局也不断出现,尤其是新手用户,更容易因为经验不足而遭受损失。提前了解常见套路,是安…

作者头像 李华
网站建设 2026/2/6 2:01:36

FaceFusion人脸融合在智能安防仿真测试中的应用

FaceFusion人脸融合在智能安防仿真测试中的应用 在城市地铁站的监控中心,安全团队正试图验证新部署的人脸识别系统对通缉人员的捕捉能力。然而,真实案件影像稀少且涉及隐私,无法用于大规模压力测试。于是,工程师上传了10张嫌疑人照…

作者头像 李华
网站建设 2026/2/3 14:39:50

FaceFusion在文化遗产数字化保护中的应用探索

FaceFusion在文化遗产数字化保护中的应用探索 在敦煌莫高窟幽深的洞窟中,一尊千年壁画上的菩萨低眉含笑,颜料斑驳、轮廓模糊。千年来,人们只能凭想象揣摩其神态。如今,借助人工智能技术,这尊静止的画像正被赋予呼吸与表…

作者头像 李华
网站建设 2026/2/8 4:32:03

Qoder 自定义指令功能上线!对话框输入 /,即可快速调用指令

自定义指令功能允许开发者将常用的提示词 (Prompts) 和工作流封装为可复用的命令。只需在 Agent 对话框中输入 ​​/​​,即可快速调用这些指令,显著提升日常开发效率。 无论你是频繁执行代码审查、生成测试用例,还是需要快速查询项目规范&a…

作者头像 李华
网站建设 2026/2/4 12:52:10

FaceFusion在虚拟试妆平台中的集成实践

FaceFusion在虚拟试妆平台中的集成实践 在美妆电商与个性化服务快速演进的今天,用户早已不满足于“看图购物”。他们希望看到自己的脸涂上那支网红口红是什么效果,想预览十年后的自己是否适合某款抗老精华。这种对“真实感”和“即时反馈”的追求&#x…

作者头像 李华
网站建设 2026/2/6 7:42:14

制造业大模型落地新思维:从“AI+“到“+AI“的实战指南!

简介 本文探讨制造业从"AI“到”AI"的转变,强调AI应成为融入流程与决策的基础设施,而非外挂工具。生成式AI通过改变认知方式,成为业务与技术间的"连接器",推动业务流程、知识资产和决策机制的AI化。落地路径需…

作者头像 李华