自动化测试框架简单对比

框架分析:

1、底层是什么语言编写的

2、框架封装了什么

3、框架原理是什么

4、框架是干什么的

 

Appium

1、底层框架语言:node.js的express框架写的Http server

2、封装的协议:appium不是自己创建一套新的测试框架,而是对现有框架进行集成,包括安卓的UIautomator框架和ios的Instruments框架中的UIautomation,以Selenium WebDriver(JsonWireProtocol/Restful web service)的协议统一起来。

3、框架原理:appium核心是一个遵循REST设计风格的web服务器,它接受客户端的连接,接受客户端的命令,在设备上执行命令,并将命令执行结果包含在HTTP的响应中返回给客户端。

4、用途:

Android端:appium基于WebDriver,点击事件给appium server,利用中间件Bootstrap.jar监听到appium server命令,通过调用UiAutomator的命令,实现App自动化测试。UiAutomator对H5支持有限,又引入了chromedriver来实现基于H5的自动化。

IOS端:appium基于WebDriver,ios封装了apple的Instruments框架,主要用了Instruments中的UI Automation。点击事件请求给appium server,它调用Instruments.js启动socket server,同时分出一个子进程运行instruments.app,将bootstrap.js(一个UIAutomator脚本)注入到device,和外界交互,对于H5操作,运用了ios webkit debug proxy实现

 

概念性陈述:

1、node.js的express框架

是一个简洁灵活的node.js web应用框架,提供了一系列强大特性帮助创建各种Web应用,和丰富的Http工具,可以快速的搭建一个完整功能的网站

2、JSON wire protocol

这是WebDriver开发者编写的一种通信机制,通过RESTful API暴漏标准端口,WebDriver和JSONWP目的是通过Firefox driver,IE driver和chrome driver浏览器执行网站自动化测试。

3、RESTful web service

符合RESTful风格的web services。

4、REST设计风格

REST是一种轻量级的web services架构风格,可以完全通过HTTP协议实现,还可以利用缓存cache提高响应速度,性能,效率,易用,高于SOAP协议,大量用于web2.0网站

原有web应用,B/S架构规范:

客户-服务器,无状态性(客户到服务器的request必须包含理解该request索必须的所有信息),缓存

REST新增规范:

统一接口(组件之间有统一接口),分层系统(各种层次之间独立),按需代码(允许对客户端功能扩展)

5、bootstrap.jar

Catalina就是servlet容器,bootstrap.jar传递了start作为参数,org.apache.catalina.startup.Bootstrap的main方法初始化了一个bootstrap守护进程,调用catalina.java对应方法。

bootstrap是一个快速开发web应用程序和网站的前端框架,基于html,css,javascript

6、ios webkit debug proxy

通过websocket连接代理来自usbmuxd守护程序的请求,允许开发人员在真是和模拟ios设备上像MobileSafari和WebViews发送命令

开源地址:https://github.com/google/ios-webkit-debug-proxy

 

UIAutomator框架

1、底层语言

2、框架封装

通过模拟用户操作来与设备用户界面交互以及获取屏幕内容,以来平台的辅助功能API来远程的控件树上获取屏幕内容以及执行一些操作,允许注入原生事件(InptEvent,keyEvent继承于InputEvent)模拟用户按键和触屏操作,UIAutomator是一个特殊类型的AccessibilityService,UiAutomator类提供了一系列的API来允许在测试自动化时模拟用户操作,通过封装平台上的AccessibilityService API,允许获取窗口空间内容并且注入案件和触屏事件

 

selenium框架

1、底层语言

2、框架封装

selenium是一个浏览器自动化操作框架。由三种工具组成,第一个工具seniumIDE,是Firefox的扩展插件,支持用户录制和回访测试,但有局限性。

第二个工具是selenium web driver提供了各种语言环境API来支持更多的控制权和编写符合标准软件开发实践的应用程序。

第三个工具是seleniumGrid帮助工程师使用seleniumApi控制分布在一系列机器上的浏览器实例,支持并发运行更多测试

3、框架原理

WebDriver支持Firefox,,ie,opera,chrom,android,ios测试。

WebDriver是W3C的一个标准。

WebDriver之所以能够实现与浏览器进行交互,是因为浏览器实现了这些协议,这个协议是使用JSON通过HTTP进行传输,使用了经典的Client-Server模式,客户端送一个request,服务器端返回一个response。

4、框架用途

web测试

 

qt4a框架

1、底层语言

python

2、框架封装

QT4A是android应用程序的QTA测试自动化驱动程序

支持大多数版本的Android的操作系统从2.3到6.0

支持多设备同时测试

支持跨进程,跨应用测试

支持进行过控件混淆的安装包(需要映射文件)

支持自定义控件(如果有代码混淆需要映射文件)

3、框架原理

封装了

androiddriver:封装adb功能,adb客户端与ADB守护进程通信,获取android设备信息,android测试桩,维护客户端的socket连接,web页面测试桩代理,通用功能模块(日志,按键对应关系)

4、用途

android应用程序的qta测试自动化驱动程序

开源地址:https://github.com/Tencent/QT4A

帮助文档:https://qta-testbase.readthedocs.io/zh/latest/

5、概念

代码混淆:

对源代码进行处理变成相同功能但是难以阅读和理解的形式,加大反编译难度,精简编译后程序大小

 

qta工具

1、底层语言

python

2、框架封装

QTA是一种用于服务器和本机,混合和应用程序的跨平台测试自动化工具

支持的平台

ios(由QT4I驱动程序提供支持)

Android(由QT4A驱动程序提供支持)

Windows(由QT4C驱动程序模块提供)

Web(由QT4W驱动程序提供支持)

服务器(由QT4S驱动程序提供)

QTAF(QTA框架)是QTA的基础框架,包括testbase,TUIA

 

3、框架原理

4、用途

对各平台驱动程序提供基础框架

开源地址:https://github.com/Tencent/QTAF

5、概念

testbase

testbase是一个提供测试执行,报告和管理的测试框架,是每个特定于平台的QTA驱动程序的通用基础

TUIA

腾讯UI自动化是UI测试自动化的基础框架,每个特定于平台的QTA驱动程序都用于客户端

 

Maxim_monkey

1、底层语言

java

2、框架封装

告诉uiautomator控件解析算法的android monkey,每秒10-15个action event,实现快速的DFS算法的android monkey,每秒5个action event

支持android5,6,7,8,真机及模拟器,android5不支持dfs mode

增加防跳出,切回,防误点状态栏及下拉状态栏

增加防睡眠及睡眠唤醒,防假死及自拉活机制

增加随机输入

3、框架原理

基于monkey进行二次开发,有3种策略,DFS –uiautomatordfs 增加深度遍历算法;模式Mix –uiautomatormix直接使用底层accessibiltyserver获取界面接口,解析各控件,随机选取一个控件执行touch操作;模式Troy –uiautomatortroy控件选择策略安找max.xpath.selector配置的高低优先级进行深度遍历

4、用途

随机压力测试

开源地址:https://github.com/zhangzhao4444/Maxim

5、概念

accessibiltyserver

https://blog.csdn.net/zhgeliang/article/details/80832535

 

 

你可能感兴趣的:(软件测试基础知识)