一步一步教你编写与搭建自动化测试框架——python篇

简介: [本文出自天外归云的博客园] 这两天用python2写了一个自动化测试框架,取名为Auty。准备用来做Web方面的接口测试,以下为Auty框架一步一步的搭建过程—— 首先在这里我要感谢我的大师兄朱勃的指点、交流和帮助! Auty文件夹结构介绍 1.

[本文出自天外归云的博客园]

这两天用python2写了一个自动化测试框架,取名为Auty。准备用来做Web方面的接口测试,以下为Auty框架一步一步的搭建过程——

首先在这里我要感谢我的大师兄朱勃的指点、交流和帮助!

Auty文件夹结构介绍

1. actions文件夹:包含了和业务相关的包含可复用方法的脚本文件,根据业务的不同可以在actions文件夹下创建不同的业务文件夹;
2. constants文件夹:包含了常量初始化的python脚本文件,根据业务划分可以再创建子文件夹或多个常量文件;
3. data文件夹:包含了测试用的数据;
4. lib文件夹:包含了支持框架运行的python文件;
5. log文件夹:包含了运行测试过程中生成的日志文件;
6. results文件夹:包含了测试结果文件;
7. scripts文件夹:包含了scripts文件夹和selections文件夹;
  1)scripts文件夹下包含了测试脚本(可根据业务划分成多个子目录);
  2)selections文件夹下包含了suite文件(包含了需要执行的脚本路径集合);
8. utils文件夹:包含了和业务逻辑无关的包含可复用方法的脚本文件;

Auty文件结构介绍

1. Auty文件夹下:
  1)__init__.py文件:包结构所必需文件(以下所有涉及可调用脚本的文件夹下均需有此文件);
  2)config.txt文件:Auty框架配置说明文件;
  3)recovery.py文件:垃圾代码回收文件(用来回收执行测试过程中因故障未能自动删除的自动生成的代码);
  4)requirements文件:包含了框架所需要安装的python库信息;
  5)setup.py文件:执行脚本以安装requirements文件中所包含的python库;
  6)start.py文件:执行脚本以启动接口自动化测试;
2. lib文件夹下:
  1)exe_deco.py文件:包含修饰脚本运行时方法的文件;
  2)execute_selection.py文件:包含运行suite集合下脚本方法的文件;
  3)generate_html.py文件:包含根据生成的csv格式测试结果文件生成html类型测试结果文件方法的文件;
  4)generate_result.py文件:包含生成csv格式测试结果方法的文件;
  5)read_selection.py文件:包含读取可执行的脚本列表方法的文件;
  6)recovery_code.py文件:包含垃圾代码回收方法的文件;
  7)write_log.py文件:包含生成日志文件方法的文件;
3. scripts文件夹下:
  1)create_selection.py文件:包含创建suite文件(all_scripts_selection.txt)方法的文件;

Auty使用步骤

1. 运行Auty/setup.py文件;
2. 编写接口测试python脚本并放到Auty/scripts/scripts目录(或子目录)下;
3. 运行Auty/scripts/create_selection.py文件生成Auty/scripts/all_scripts_selection.txt文件;
4. 修改Auty/scripts/all_scripts_selection.txt文件自定义test_selection.txt文件(名字随意起)并放到Auty/scripts/selections文件夹下;
5. 运行Auty/start.py文件开始接口自动化测试;
6. 在Auty/results文件夹下生成的测试结果文件中查看测试结果。

Auty编写过程

这个框架里scripts、utils、actions、contants四个文件夹中的内容是根据实际工作内容可以随意替换的,其他为Auty接口自动化测试框架必需的组成部分。由于后续开发工作比较琐碎,一些更改的代码不能及时更新到以下各篇文章中。最新代码请见:Github

第一篇——生成执行列表

第二篇——读取与执行脚本列表

第三篇——添加异常处理与日志收集

第四篇——生成测试结果报告

第五篇——调用支持、自动化安装库与配置说明

第六篇——垃圾代码回收、添加suite支持

第七篇——添加动作库和常量文件库

Auty框架表现篇——python flask框架实践

接口测试用例编写建议

框架的诞生从某种层面上讲也是为了让编写的代码更加规范化。抛开框架而言,对于接口测试用例的编写,还是要给出以下 建议
1. 涉及接口中的url,不要写死在case中,要通过常量访问,将url存储在指定constant文件中(以免接口域名变更等原因造成的不可维护);
2. 测试用例中不要包含测试数据等可变信息,要设成变量,专门将变量的初始化工作在一个指定的文件中完成;
3. 测试用例中不要重复粘贴大段代码逻辑(不利于代码的走查,会造成代码冗余并提高出错几率),凡是可以复用的过程一律提取成方法,分类放置在指定的存放业务逻辑action的文件夹中;
4. 关于注释:用语一定要官方,注释的意义更多是对别人而言的,要让其他人一看就懂;一定要具体详细,不要话说一半;一定要位置准确,注释下方代码逻辑一定要与注释内容吻合而不是在注释下方过了一段代码后才开始注释所包含的内容逻辑。
 
 
 
 
 
 
相关文章
|
1天前
|
监控 测试技术 持续交付
Python自动化测试代理程序可用性
总之,通过编写测试用例、自动化测试和设置监控系统,您可以确保Python自动化测试代理程序的可用性,并及时发现和解决问题。这有助于提供更可靠和高性能的代理服务。
10 4
|
3天前
|
数据管理 测试技术
深入理解自动化测试框架:以Selenium为例
【4月更文挑战第30天】 随着软件开发的快速发展,自动化测试已经成为保证软件质量和提升开发效率的重要手段。本文将深入探讨自动化测试框架的核心概念,并以广泛应用的开源工具Selenium为例,解析其架构、原理及在实际项目中的运用。通过实例分析与性能评估,旨在为读者提供一套系统的自动化测试解决方案,并探讨其在复杂应用场景下的优化策略。
|
3天前
|
机器学习/深度学习 数据采集 算法
【Python机器学习专栏】自动化特征选择与优化的实践
【4月更文挑战第30天】特征选择在机器学习中至关重要,能降低模型复杂度,提高泛化能力和避免过拟合。本文介绍了自动化特征选择的三种方法:过滤法(如SelectKBest)、包装法(如RFE)和嵌入法(如随机森林)。通过结合这些方法,可实现特征优化,包括数据预处理、初步筛选、模型训练与评估、特征优化和结果验证。自动化特征选择能提升模型性能,适应不同数据集和任务需求,为机器学习项目提供坚实基础。
|
3天前
|
敏捷开发 前端开发 JavaScript
深入理解自动化测试框架:以Selenium为例
【4月更文挑战第30天】 在现代软件开发过程中,自动化测试已成为确保产品质量和加快市场投放的关键步骤。本文聚焦于流行的自动化测试框架——Selenium,探讨其架构、核心组件以及如何有效地利用Selenium进行Web应用测试。通过分析真实案例,我们将揭示Selenium在实际项目中的应用优势与面临的挑战,并提出优化策略。文章的目的在于帮助测试工程师深入理解Selenium,提升其在复杂项目中的运用效率。
|
3天前
|
前端开发 IDE 数据可视化
深入理解与应用自动化测试框架Selenium的最佳实践
【4月更文挑战第30天】 本文将深入剖析自动化测试框架Selenium的核心原理,并结合最佳实践案例,探讨如何有效提升测试覆盖率和效率。文中不仅涉及Selenium的架构解析,还将提供针对性的策略来优化测试脚本,确保测试流程的稳定性与可靠性。通过实例演示,读者可以掌握如何在不同测试场景中灵活运用Selenium,以及如何处理常见的技术挑战。
|
3天前
|
JavaScript 安全 编译器
【TypeScript 技术专栏】TypeScript 与 Jest 测试框架
【4月更文挑战第30天】本文探讨了TypeScript与Jest测试框架的结合在确保代码质量和稳定性上的重要性。Jest以其易用性、内置断言库、快照测试和代码覆盖率分析等特点,为TypeScript提供全面的测试支持。两者结合能实现类型安全的测试,提高开发效率,并涵盖各种测试场景,包括异步操作。通过实际案例分析,展示了如何有效利用这两个工具提升测试质量和开发效率,为项目成功奠定基础。
|
3天前
|
敏捷开发 监控 前端开发
深入理解与应用自动化测试框架:以Selenium为例
【4月更文挑战第30天】 在软件开发的快速迭代周期中,质量保证(QA)团队面临持续的压力,需确保产品在每次发布时都达到预期的质量标准。为了应对这一挑战,自动化测试成为了关键工具,它不仅提高了测试效率,还确保了测试的一致性和可重复性。本文将探讨自动化测试框架Selenium的核心组件、工作原理及其在实际测试中的应用。通过分析Selenium的优势和面临的常见问题,我们将讨论如何有效地集成Selenium到现有的测试流程中,以及如何克服常见的技术障碍。我们的目标是为读者提供一个清晰的指南,帮助他们理解和利用自动化测试框架来优化他们的软件测试实践。
|
4天前
|
机器学习/深度学习 人工智能 数据管理
深入探索自动化测试框架的设计与实践
【4月更文挑战第30天】 随着软件行业的快速发展,传统的手动测试方式在效率和可靠性方面逐渐暴露出不足。本文将重点探讨自动化测试框架的设计理念、关键组成部分以及实际应用中的挑战与解决方案。通过对自动化测试框架的深入研究,我们旨在为读者提供构建高效、可靠的自动化测试系统的指导和启示。文章首先分析了自动化测试的重要性,接着详细介绍了几种流行的自动化测试工具,并以此为基础提出了设计框架的核心原则和架构模式。最后,通过案例研究,展示了如何在实际项目中实施自动化测试框架,并讨论了面临的常见问题及解决策略。
|
4天前
|
机器学习/深度学习 人工智能 机器人
深入理解自动化测试:框架、工具与实践
【4月更文挑战第30天】 在现代软件开发周期中,自动化测试已成为确保产品质量和加速市场交付的关键环节。本文将探讨自动化测试的核心框架、常用工具以及实际应用的最佳实践,旨在为软件测试工程师提供深入的理解和有效的策略,以改进其自动化测试流程。我们将分析几种流行的测试自动化框架,包括Selenium、Appium和JUnit,并讨论如何根据项目需求选择适合的工具。此外,文中还将介绍持续集成(CI)环境下的自动化测试策略,以及如何通过测试结果分析和报告来优化测试过程。目标是帮助读者构建更健壮、更高效的自动化测试系统。
|
4天前
|
缓存 前端开发 安全
Python web框架fastapi中间件的使用,CORS跨域详解
Python web框架fastapi中间件的使用,CORS跨域详解