开源自动化测试框架

开源自动化测试框架

做者:码云 Gitee
连接:https://www.zhihu.com/question/19923336/answer/187045725
来源:知乎
著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。

1. 项目名称:基于selenium webdriver 自动化测试框架html

邮件展现以下:java

日志文件展现以下:node

项目简介:这是一个WebUI自动化测试框架,由webdriver中文社区创办人土豆(本人技术笔名)所建立,该web自动化测试框架是用java语言编写的,基于selenium webdriver 的开源自动化测试框架,该框架结合了testng,selenium,webdriver,jxl,jodd-http 等工具。该框架基于页面对象模型(POM)架构,实现了关键字驱动技术,数据驱动,无需掌握多少编程知识便可编写脚本,同时实现了数据与代码分离的功能:python

  • 元素定位信息保存在对象库文件中 ;
  • 测试用例数据能够存储在excel中。从而实现,页面元素位置变化,无需改动脚本,只需修改对应的元素定位信息便可。

该框架实现了检查点及用例失败自动截图功能,自动生成html测试报告及自动发送html邮件测试报告功能。目前框架还不是特别完善,还须要写一些脚本实现自动化;学习该框架须要熟悉必定的HTML 和java基础,后续能够考虑自动编码的实现。android

实现的功能:git

  • XML管理元素对象信息;
  • 统一的操做API风格,action.操做(某个页面.某个元素());
  • 数据驱动;
  • 关键字驱动;
  • 用例失败自动截图并展现到报表中;
  • 自动生成html报表,自动发送html邮件报告;
  • 用例串行一次性执行多个浏览器,可用于兼容性测试。

项目地址:web


2. 项目名称:maven 自动化集成测试chrome

项目简介:本项目是参考国外文章来编写的 Maven 自动化集成测试工具,可测试 Spring+SpringMVC+Hibernate 技术,也可以使用 HttpClient 测试 SpringMVC 中 Action,同时增长统一验证功能,且数据可以使用 hibernate 的自动导入数据功能。shell

项目地址:编程


3. 项目名称:基于python 实现的自动化接口测试

项目简介:本项目是基于 python3 实现的 http 接口自动化测试,支持常见的 HTTP 中的 post 和 get 方法;测试案例驱动用 excel 管理,注意的地方是为每一个案例新增自定义检查函数(更新为了生成器为 xml 管理);根据须要配置,能够运行部分用例,所有用例;测试结合最后生成了 html 文件,方便查看。

开发环境:

  • Win7 64,python 3,Pycharm. unittest;
  • 读取配置文件--读取测试用例--执行测试用例--记录测试结果--生成html结果文件。

模块类的设计说明:

  • Httpbase.py 读取http的域名和端口;
  • Config.py http方法的封装,能够支持多协议扩展,get,post;
  • Runner_m.py 核心代码。run_case是程序的入口;
  • Htmlreport.py 结果生成html文件。

项目地址:


4. 项目名称:Phoenix Framework 自动化测试平台


项目简介:集代码托管, 分机(node节点)管理,定时任务, 分布式或并发等方式执行经过 phoenix_develop 模块调试好的用例。 平台使用 SSH4 开发,覆盖了 webgui,接口,移动 mobile 等终端的测试与监控。 webGUI 模块兼容 chrome,Firefox,IE,httpunit 以及 phantomjs 驱动。原生支持对 FTPServer,svn,SocketServer,图片文字识别的操做, 深度集成了 Jmeter,支持 Web 性能测试。 平台经过 phoenix_develop 模块在客户端开发及调试代码, 而后经过将代码托管到 phoenix_web 控制端, 控制端经过指派多个 phoenix_node 端方式执行测试用例。 经过使用phoenix_develop 开发用例代码的示例, 用例若是在本地调试时没有问题,那么就能够放到控制端进行执行了。

项目地址:


5. 项目名称:restful 接口的测试工具

项目简介:目前大部分的 restful 接口测试工具,仅仅停留在验证接口响应是否正常,具体的业务是否正确须要靠人工来分析。人工分析势必比较耗时,并且随着项目的迭代,重复工做量的浪费比较严重。所以,考虑到接口的变更会较少,自动化接口测试将颇有必要。

项目技术实现:

  • 采用 HttpClient 实现接口的调用,支持 GET/PUT/POST/DELETE 方式,支持目前 Restful 接口规范经常使用的 Http 方法;
  • 自动化脚本的编写采用 Cucumber 来实现,脚本编写的时候分为 Feature、Scenario 以及 Step。每一个 Feature 下能够包含 N 个场景,每一个场景下有 M 个步骤,和实际测试中的测试用例场景贴近;
  • 结果验证采用 Javascript Engine,因为 Javascript 支持弱语言,所以在处理上兼容性会更好。

项目地址:


6. 项目名称:基于 Android 的测试经常使用脚本

项目简介:批量安装应用(支持以中文命名的 apk)、批量卸载、截屏、录制视频、获取当前应用的 apk 文件、包名、Activity 以及当前运行的应用的 cpu、memory 信息,默认 top times 取值为20次,可本身修改脚本中的该参数。

项目地址:


7. 项目名称:基于 Android 的自动化测试工具 MonkeyRunner

项目简介:MonkeyRunner 是 Google Android SDK 下的一个工具,用于自动化测试 Android 程序。Monkeyrunner 工具提供了一套 API,使用这些api 写出的 Python 程序能够在黑盒地控制 Android 设置和模拟器。有了 Monkeyrunner,咱们能够经过 python 语句控制 apk 包的安装和卸载、启动 app、向 app 发送各类动做指令、截取图片并保存。

Monkeyrunner 和 Monkey 不一样,Monkey 是直接运行在 adb shell 中的命令,它随机的生成用户或者系统的各类随机事件,而 MonkeyRunner 则能够经过 api 来产生特定命令和事件来控制设备和模拟器。

MonkeyRunner 在 android 测试中有下面特色:

  • 支持多设备: API 能够跨多个设备或模拟器实施测试套件。您能够在同一时间接上全部的设备或一次启动所有模拟器(或通通一块儿),依据程序依次链接到每个,而后运行一个或多个测试。您也能够用程序启动一个配置好的模拟器,运行一个或多个测试,而后关闭模拟器。
  • 功能测试: monkeyrunner 能够为一个应用自动贯彻一次功能测试。您提供按键或触摸事件的输入数值,而后观察输出结果的截屏。
  • 回归测试:monkeyrunner 能够运行某个应用,并将其结果截屏与既定已知正确的结果截屏相比较,以此测试应用的稳定性。
  • 可扩展的自动化:因为 monkeyrunner 是一个 API 工具包,您能够基于 Python 模块和程序开发一整套系统,以此来控制 Android 设备。除了使用monkeyrunner API 以外,您还可使用标准的 Python os 和 subprocess 模块来调用如 adb 这样的 Android 工具。您还能够向 monkeyrunner API 中添加您本身的类。咱们将在使用插件扩展 monkeyrunner 一节中对此进行详细讨论。

monkeyrunner 工具使用 Jython(使用 Java 编程语言的一种 Python 实现)。Jython 容许 monkeyrunnerAPI 与 Android 框架轻松的进行交互。使用 Jython,您可使用 Python 语法来获取 API 中的常量、类以及方法。

项目地址:

 
 

这个框架须要开发数据表和关键字,这些数据表和关键字独立于执行它们的测试自动化工具,并能够用来“驱动"待测应用程序和数据的测试脚本代码,关键宇驱动测试看上去与手工测试用例很相似。

概述

在自动化的软件测试系统实现过程当中使用框架设计可使得测试脚本的维护量减至最少。然而,大量的自动化测试工具均采用传统的“录制一回放”模型,致使了较高的脚本维护量,由于测试数据在测试脚本程序中是以硬编码方式实现的。此外,工具内建的测试用例除了测试应用程序的图形用户界面,实际上并无其它用处。所以,如何选择一个合适的测试自动化框架,是一个自动化测试小组开始启动前须要最优先考虑的一个问题。

 

一个自动化测试框架就是一个由假设、概念以及为自动化测试提供支持的实践的集合。如下描述五种基本的自动测试框架:模块化测试脚本框架,测试库构架框架,关键字驱动/表驱动测试框架,数据驱动测试框架,以及混合测试框架。

能够根据实际须要去考虑采用其中的一种测试框架而不是仅仅依赖于一个简单的捕获工具。同时,这些框架是了解自动测试框架以及根据本身的须要和经验来设计自动测试框架的基础。

1.模块化测试框架

在五种框架中,模块化框架是最容易掌握和使用的。在一个组件上方创建一个抽象层使其在余下的应用中隐藏起来,这是众所周知的编程技巧。这样应用同组件中的修改隔离开来,提供了程序设计的模块化特性。模块化测试脚本框架使用这一抽象或者封装的原理来提升自动测试组合的可维护性和可升级性。

 

2.测试库框架

测试库框架(Test Library Architecture)与模块化测试脚本框架很相似,而且具备一样的优势。不一样的是测试库框架把待测应用程序分解为过程和函数而不是脚本。这个框架须要建立描述模块、片段以及待测应用程序的功能库文件。

 

3.关键字驱动或表驱动的测试框架

对于一个独立于应用的自动化框架,关键字驱动(KEYWORD DRIVEN)I9LJJ试和表驱动(TABLE DRIVEN)测试是能够互换的术语。这个框架须要开发数据表和关键字。这些数据表和关键字独立于执行它们的测试自动化工具,并能够用来“驱动"待测应用程序和数据的测试脚本代码,关键宇驱动测试看上去与手工测试用例很相似。在一个关键字驱动测试中,把待测应用程序的功能和每一个测试的执行步骤一块儿写到一个表中。

这个测试框架能够经过不多的代码来产生大量的测试用例。一样的代码在用数据表来产生各个测试用例的同时被复用。

框架自己所要作的就是识别Excel表格中的这些控件对象以及Action

4.数据驱动测试框架

数据驱动(DATA DRIVEN),LJ试是一个框架。在这里测试的输入和输出数据是从数据文件中读取(数据池,ODBC源,CSV文件,EXCEL文件,ADO对象等)而且经过捕获工具生成或者手工生成的代码脚本被载入到变量中。在这个框架中,变量不只被用来存放输入值还被用来存放输出的验证值。整个程序中,测试脚原本读取数值文件,记载测试状态和信息。这相似于表驱动测试,在表驱动测 试中,它的测试用例是包含在数据文件而不是在脚本中,对于数据而言,脚本仅仅是一个“驱动器”,或者是一个传送机构。然而,数据驱动测试不一样于表驱动测试,尽管导航数据并不包含在表结构中。在数据驱动测试中,数据文件中只包含测试数据。

这个框架意图减小须要执行全部测试用例所须要的总的测试脚本数。数据驱动须要不多的代码来产生大量的测试用例,这与表驱动极其相似。

 

5.混合测试自动化(Hybrid Test Automation)框架

最广泛的执行框架是上面介绍的全部技术的一个结合,取其长处,弥补其不足。这个混合测试框架是由大部分框架随着时间并通过若干项目演化而来的。

我的认为以上的架构是存在递进关系的,至少前四个是确定的,仍是须要多种框架特色组合在一块儿的,有很好的借鉴意义!

 

篇幅有限,今天主要就介绍到这了,后期会更多分享一些自动化测试内容,感兴趣的朋友能够关注下~

 

  • 发表于: 2018-10-24
  • 原文连接:https://kuaibao.qq.com/s/20181024A04DPF00?refer=cp_1026
相关文章
相关标签/搜索