自动化测试框架

在学习自动化测试或者实践自动化测试时,我们一定会对一个名词不陌生,那就是“自动化测试框架”,而有些人也将Selenium、Appium这样的工具也称之为“自动化测试框架”,那么到底自动化测试框架如何理解呢?

软件工程中的框架(framework),特指为解决一个开放性问题而设计的具有一定约束性的支撑结构。在此结构上可以根据具体问题扩展、安插更多的组成部分(升级),从而更迅速和方便地构建完整的解决问题的方案。

根据以上框架的定义引申到自动化测试领域,我们可以定义自动化测试框架包括如下功能:

(1) 日志组件

记录和管理日志,方便定位问题,如Log4j、logging模块等;

(2) 测试报告

管理与生成测试报告,快速得到测试结果,如Allure、HtmlReport等;

(3) 测试静态资源

如配置文件、引用的其他静态资源管理,实现配置与测试脚本分离;

(4) 测试用例管理与执行

如 Java 语言体系 TestNG、Junit,Python 语言体系 UnitTest、Pytest 等;

(5) 测试数据管理

保存用例参数化数据,如可采用Excel、yaml、csv格式文件,实现测试脚本与测 试数据分离;

(6) 公共模块(Common)

保存用例公共方法、通用操作;

(7) 驱动模块(Driver)

底层执行自动化测试引擎,如Selenium Webdriver网页端测试库、Appium client 移动端测试库、Requests/REST-assured接口测试库。

其他辅助功能:

除了上述自动化测试框架基本组成成分之外,自动化测试框架还可以有更多其他的辅助功能,比如并行执行、失败重试、异常处理以及通过持续集成平台构建(如Jenkins)。

总的来说,一个完善的自动化测试框架应该是具备高扩展性、可维护性、稳定性。如Selenium、Appium只是具备上述框架的部分功能而已,所以我们在选择自动化测试框架时更多的是多个工具/库的组合,比如:Selenium+TestNG+Allure+Jenkins,Appium+TestNG+Allure+Jenkins等等。

测试框架技术选型

目前常见的自动化测试类型包括接口自动化和UI自动化,目前市面上针对接口、UI层面的自动化测试工具/框架有很多选择。在进行技术选型之前首先要分析项目的架构和类型,如果项目主要通过接口的形式提供给其他服务使用,我们可以使用接口自动化。对于项目既有后端也有前端,在接口自动化层面的质量保证基础上再采用UI自动化。

接口自动化

目前市面上接口自动化测试技术都已经非常成熟,以下介绍几款比较主流的技术:

(1) Jmeter+Ant/Maven+Jenkins

Jmeter由Java开发并开源,并且提供了可视化界面。通过Jenkins持续集成平台集成Maven或Ant插件,再通过Maven或Ant构建Jmeter脚本可以满足自动化测试持续集成。熟悉Java语言的情况下还可以对Jmeter做二次开发。

(2) Postman+Newman+Jenkins

Postman是非常多测试人员会选择使用的一款接口测试工具,并且很多开发人员也会使用它对接口进行调试,上手简单并且功能强大。通过newman可以支持命令行方式调用Postman测试用例执行,并且还可以通过Jenkins平台结合newman进行持续集成。

(3) Robotframework+RequestsLibrary+Jenkins

Robotframework(简称RF),是一款基于关键字驱动的测试框架,主要通过封装关键字进行调用,使用RequestsLibrary测试库可以进行接口测试,RF不需要懂编程语言也可以编写自动化测试用例。

(4) Java+REST-assured+TestNG+Jenkins

Java语言体系中的REST-assured作为目前最流行的接口测试框架,基于BDD语法风格让编写接口测试用例变得非常简单,内置非常强大的功能如hamcrest断言及Gpath响应解析等,使用TestNG测试框架我们可以管理及执行测试用例。

(5) Python+Requests+Pytest+Jenkins

在Python语言体系中requests模块基于标准库urllib进行封装,支持其几乎所有特性,是目前最火的python语言接口测试库。Pytest同样属于python中的第三方单元测试库,相比标准库Unittest更加强大。

Web自动化

目前应用最主流的的web自动化框架还是Selenium,其内置的Selenium Webdriver组件通过JSON wire protocol协议能够支持多款浏览器的自动化测试,包括Chrome、Firefox、IE、Safari等等。Selenide及Katalon这些自动化测试工具基于Selenium构建封装,其内部核心还是Selenium Webdriver。

Java语言技术栈:

Java+Selenium+TestNG+Jenkins

Python语言技术栈:

Python+Selenium+Pytest+Jenkins

移动端自动化

移动端使用最为广泛的应该就是Appium了,Appium是一个开源的自动化测试框架,支持Android和IOS上的Web App、Native App和Hybrid App的自动化测试。Appium基于Selenium Webdriver并添加了移动端相关的API。

Java语言技术栈:

Java+Appium+TestNG+Jenkins

Python语言技术栈:

Python+Selenium+Pytest+Jenkins

持续集成

自动化测试作为持续集成的重要一环,当开发部署新功能或更新功能时,持续集成平台运行自动化测试能够快速提供质量和定期反馈,目前成熟的持续集成平台非Jenkins莫属。

你真的会自动化测试?自动化测试技术选型抉择相关推荐

  1. 你真的了解传统IT的集中式三层架构及主流开发技术选型?!

    [引言] 最近在看一本书<未来架构 从服务化到云原生>,关于技术架构这部分,结合书中内容,有一些认知和感悟. 互联网的技术架构正在经历由集中式->分布式->云平台的发展历程中. ...

  2. APP UI 真的可以实现自动化测试吗?

    本文来自作者 我是坏蛋 在 GitChat 上分享「论 APP UI 自动化测试的可行性」,「阅读原文」查看交流实录 「文末高能」 编辑 | 家辉 背 景 在这个科技时代,app 数量也是逐年递增,只 ...

  3. 【5.21】六、自动化测试—常见技术

    目录 6.2 自动化测试常见技术 1. 录制与回放测试 2. 脚本测试 3. 数据驱动测试 6.2 自动化测试常见技术 自动化测试技术有很多种,这里介绍3种常见的技术: 1. 录制与回放测试 录制是指 ...

  4. 如何做好企业/团队的技术选型?

    好的技术选型,能最大程度地提高企业和团队的效率,从而开发出满足用户需求的产品.作为一线的技术管理者,他们都是怎样做的呢? 大公司或者大一点的团队的技术选型几乎不需要太多讨论,因为最后会不可避免地绕到技 ...

  5. 技术选型都做不好,难怪自动化做得这么费力...

    01.自动化测试框架 在学习自动化测试或者实践自动化测试时,我们一定会对一个名词不陌生,那就是"自动化测试框架". 而有些人也将 Selenium.Appium 这样的工具也称之为 ...

  6. 谈谈创业公司的技术选型

    从公司成立第一天起,我们就以 Google 的技术标准要求团队,鼓励使用新技术.鼓励重新造轮子.鼓励全栈,同时因为业务涉及视频.电商.社交多个领域,我们在创业环境下对微服务.DevOps.自动化测试和 ...

  7. 技术选型-RabbitMQ 和 Kafka

    技术选型-RabbitMQ 和 Kafka 转载声明: 本文系转载自以下两篇文章: RabbitMQ 和 Kafka 到底怎么选? 公众号: 菜鸟架构 作者: haolujun 消息中间件选型分析-- ...

  8. 服务化框架技术选型实践

    前言 首先本文不讨论为什么要服务化,包括服务化的优点缺点. 其次本文也不讨论什么是微服务,也不讨论微服务和SOA的区别. 最后本文也不讨论哪个技术最优. 服务框架构成 最基本的服务框架 基本的服务化框 ...

  9. 前端技术选型的遗憾和经验教训

    我是Max,Spectrum的技术联合创始人.Spectrum 是一个面向大型在线社区的开源聊天应用程序,最近被GitHub收购.我们是一个三人团队,主要拥有前端和设计背景,我们在这个项目上工作了近两 ...

最新文章

  1. 【python】关于python的链表结构实现
  2. 求n个数中的最大或最小k个数
  3. 18_clickhouse副本同步与高可用功能验证,分布式表与集群配置,数据副本与复制表,ZooKeeper整合,创建复制表,副本同步机制,数据原子写入与去重,负载平衡策略,案例(学习笔记)
  4. 外贸电商选择美国服务器的优势分析
  5. python循环10次1001python循环10次_Python循环题怎么做?
  6. Redis 支持的数据类型
  7. python封装exe如何返回上一步_如何将python脚本封装成exe程序?
  8. 【Vue2.0学习】—Vuex工作原理图(二十五)
  9. 2014/08/11 – Backbonejs
  10. FFTW3在VS环境下的安装(亲测)
  11. Gns3模拟器配置Cisco ASA防火墙
  12. vue 响应式布局组件_今天如何使用响应式Web组件
  13. ept技术_速懂X86虚拟化关键概念 - Intel EPT
  14. 怎么安装Nginx的监控模块
  15. 模型预测控制(MPC)解析(十一):变量约束的预测控制
  16. onkeydown基本用法
  17. iOS小技能:UIWebView 被拒的解决方案(用更安全的WKWebView替代UIWebView)
  18. TeX,LaTeX和KaTeX简介
  19. stm32下的IIC实现EEPROM代码-stm32G431RBT6(蓝桥杯嵌入式)
  20. icon图标和文字对不齐(已解决)

热门文章

  1. Twitter 产品设计师王源专访
  2. Bone Collector(骨头收集者)c++(01背包问题)
  3. Pane和Panel
  4. 寒假Python第三天作业
  5. 蓝海创意云丨互联网助力中国电影产业升级之路
  6. Word中插入图片不按原始大小显示的问题
  7. Ubuntu20.4系统隐藏顶栏
  8. 通信原理——MIMO
  9. std::vector 用法
  10. 为父从军,一战天下知