聊聊自动化测试框架

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 关于自动化测试框架的一些理解和思考总结,就是上面这些内容,提到的一些框架组件可能存在不合理的地方,仅供参考,如有更好的建议,请指出,不胜感激

来源:http://www.51testing.com

  无论是在自动化测试实践,还是日常交流中,经常听到一个词:框架。之前学习自动化测试的过程中,一直对“框架”这个词知其然不知其所以然。

  最近看了很多自动化相关的资料,加上自己的一些实践,算是对“框架”有了一些理解,这篇博客,就聊聊自动化框架的一些事吧。。。

  一、什么是框架

  框架(framework)是一个框子——指其约束性,也是一个架子——指其支撑性。是一个基本概念上的结构,用于去解决或者处理复杂的问题。

  在软件工程中,框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;

  另一种定义认为,框架是可被应用开发者定制的应用骨架,前者是从应用方面而后者是从目的方面给出的定义。

  —— 百度百科

  上面的概念比较抽象,换另一个角度解释:

  1、框架本身一般不完整到可以解决特定问题;

  2、框架天生就是为扩展而设计的;

  3、框架里面可以为后续扩展的组件提供很多辅助性、支撑性的方便易用的工具,也就是说框架是配套了一些帮助解决某类问题的库(libraries)或工具(tools)。

  约束性:针对解决特定问题的软件框架会首先定义问题的边界,进而将相关的软件组件约束在这个边界内,保持框架在解决问题方面上的内聚性。

  支撑性:框架本身不解决什么问题,但给了解决问题的相关组件一个组合底子,这个底子的科学性和易用性直接影响在此之上进一步开发的科学性和方便性。

  —— 知乎

  上面的2个对框架的解释和定义,看起来也并没有很简单直白的说清楚什么是框架,下面是我的一些理解:

  定义:为解决某些特定问题而约束边界,支撑整个问题解决方案,配套了一些解决问题的组件而构成的工具。

  特定问题:什么问题?——自动化测试

  约束边界:为什么约束?——明确测试范围和目的

  解决方案:用什么方案解决问题?——编程语言+工具+其他

  构成工具的组件:哪些组件?—— 用例、脚本、数据、日志、报告、通知

  工具:特点是什么?—— 灵活性、可扩展性、高内聚低耦合

二、自动化测试

  1、为什么要进行自动化测试?

  ①、黑盒测试回归效率低

  ②、手动测试的偶然性和不确定性

  ③、回归的覆盖率不足

  ④、交付的产品质量无法保证,全靠评估

  ⑤、系统越复杂,问题越多

  ⑥、上线时间长、构件失败率高导致的蝴蝶效应(迭代快,加班多)

  2、自动化测试能解决什么问题?

  ①、提高出现问题后的响应速率

  ②、降低回归成本

  ③、提高回归覆盖率

  ④、提高回归效率

  ⑤、提高回归的稳定性

  3、自动化测试的不足有哪些?

  ①、无法减少成本投入,而是为了加快测试结果反馈,提升测试质量

  ②、自动化适用于回归和冒烟,而不是发现BUG

  ③、录制回放功能是鸡肋,可视化并不是一个很好的做法

  ④、不是所有所有系统所有功能都适合做自动化测试

 三、自动化测试框架

  构成框架的组件,最起码应该具备以下的功能:

  Log:日志记录和管理功能,针对不同的情况,设置不同的日志级别,方便定位问题;

  Report:测试报告生成和管理以及即时通知,测试结果快速响应;

  Source:配置文件、静态资源的管理,遵循高内聚低耦合原则;

  Common:公共函数、方法以及通用操作的管理,遵循高内聚低耦合原则;

  TestCase:测试用例管理功能,一个功能点对应一个或者多个case,尽可能的提高覆盖率;

  TestData:测试数据管理功能,数据与脚本分离,降低维护成本,提高可移植性;

  TestSuite:测试组件管理功能,针对不同场景不同需求,组装构建不同的测试框架,遵循框架的灵活性和扩展性;

  Statistics:测试结果统计管理功能,每次执行测试的结果统计、分析、对比以及反馈,数据驱动,为软件优化和流程改进,提供参考;

  Continuous:持续集成环境,即CI环境,包括测试文件提交、扫描编译、执行测试、生成报告及时通知等功能,持续集成是自动化测试的核心!

 四、常见的自动化测试框架

1、接口自动化框架:

  ①、java+testNG/Junit+Maven/Ant/Gradle+Jenkins+MySQL+testlink/redmine

  ②、python+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine

  ③、python+rebot framework+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine

  ④、jmeter+Maven/Ant+Jenkins+MySQL+testlink/redmine

 2、UI自动化测试框架

  ①、java+selenium/appium+testNG/Junit+Maven/Ant/Gradle+Jenkins+MySQL+testlink/redmine

  ②、python+selenium/appium+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine

  ③、python+rebot framework+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine

  通过上面的一些常见框架,你发现了什么?

  它们都拥有共同特性:编程语言+单元测试框架+扫描编译工具+持续集成工具+数据库+项目管理工具。

  编程语言:编写测试脚本、日志记录和输出;

单元测试框架:提供测试脚本运行、异常校验等一些列的配置;

  扫描编译工具:测试文件扫描编译,一般配合持续集成工具使用效果更佳;

  持续集成工具:Jenkins,经典的持续集成工具;

数据库:测试数据管理;

项目管理工具:测试结果统计管理;

  PS:自动化测试工具太多,上面只是列举了使用率较高以及我个人还算了解的一些开源工具,具体的框架选型,需要根据具体项目特点和团队、个人技术特点来决定!

  关于自动化测试框架的一些理解和思考总结,就是上面这些内容,提到的一些框架组件可能存在不合理的地方,仅供参考,如有更好的建议,请指出,不胜感激。。。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
探索软件测试中的自动化测试框架选择与优化策略
本文深入探讨了在现代软件开发流程中,如何根据项目特性、团队技能和长期维护需求,精准选择合适的自动化测试框架。
115 8
AIOpsLab:云服务自动化运维 AI,微软开源云服务 AI 框架,覆盖整个生命周期
AIOpsLab 是微软等机构推出的开源框架,支持云服务自动化运维,涵盖故障检测、根本原因分析等完整生命周期。
89 13
AIOpsLab:云服务自动化运维 AI,微软开源云服务 AI 框架,覆盖整个生命周期
AGUVIS:指导模型实现 GUI 自动化训练框架,结合视觉-语言模型进行训练,实现跨平台自主 GUI 交互
AGUVIS 是香港大学与 Salesforce 联合推出的纯视觉 GUI 自动化框架,能够在多种平台上实现自主 GUI 交互,结合显式规划和推理,提升复杂数字环境中的导航和交互能力。
64 8
AGUVIS:指导模型实现 GUI 自动化训练框架,结合视觉-语言模型进行训练,实现跨平台自主 GUI 交互
PromptWizard:微软开源 AI 提示词自动化优化框架,能够迭代优化提示指令和上下文示例,提升 LLMs 特定任务的表现
PromptWizard 是微软开源的 AI 提示词自动化优化框架,通过自我演变和自我适应机制,迭代优化提示指令和上下文示例,提升大型语言模型(LLMs)在特定任务中的表现。本文详细介绍了 PromptWizard 的主要功能、技术原理以及如何运行该框架。
154 8
PromptWizard:微软开源 AI 提示词自动化优化框架,能够迭代优化提示指令和上下文示例,提升 LLMs 特定任务的表现
pytest接口自动化测试框架搭建
通过上述步骤,我们成功搭建了一个基于 `pytest`的接口自动化测试框架。这个框架具备良好的扩展性和可维护性,能够高效地管理和执行API测试。通过封装HTTP请求逻辑、使用 `conftest.py`定义共享资源和前置条件,并利用 `pytest.ini`进行配置管理,可以大幅提高测试的自动化程度和执行效率。希望本文能为您的测试工作提供实用的指导和帮助。
79 15
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
Midscene.js 是一款基于 AI 技术的 UI 自动化测试框架,通过自然语言交互简化测试流程,支持动作执行、数据查询和页面断言,提供可视化报告,适用于多种应用场景。
217 1
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
73 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
1月前
|
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
51 9
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
python+requests接口自动化框架的实现
通过以上步骤,我们构建了一个基本的Python+Requests接口自动化测试框架。这个框架具有良好的扩展性,可以根据实际需求进行功能扩展和优化。它不仅能提高测试效率,还能保证接口的稳定性和可靠性,为软件质量提供有力保障。
69 7
探索软件测试中的自动化测试框架
本文深入探讨了自动化测试在软件开发中的重要性,并详细介绍了几种流行的自动化测试框架。通过比较它们的优缺点和适用场景,旨在为读者提供选择合适自动化测试工具的参考依据。

热门文章

最新文章