基于OCR的SeeTest框架可行性分析总结
总的来说相比其他几个免费框架,SeeTest功能更全面和易用,但收费有点昂贵:License 3500/年;多平台和多语言(基于OCR)还需要额外购买,分别是500/Year和1750$/。详情请查看下面详细描述,与其他之前调研的框架的对比请查看下一篇《流行自动化框架逐项比拼》。
Summary
- 多种多样的控件定位方式,包括额外比Appium多出来的通过OCR图像元素进行定位的方式,这是SeeTest非常两眼的一个卖点,解决了就算是自己编写的控件也可以辨识,以及跨平台的问题。
- 自动捕捉用户在屏幕的大部分操作(长按没有支持,但是可以在代码手动添加),然后自动生成对应的脚本。这个也是非常大的亮点,帮大部分基础测试人员提高效率
- 类似Appium的架构,控制代码在PC端,与Eclipse集成起来编码更灵活
- 漂亮的基于HTML/XML的报告生成。
工作原理简述
SeeTest将目标安卓机器的桌面映射到PC端,在PC客户端映射器的操作会通过XMLRPC传到目标安卓端。所以服务器端需要有一个类似Bootstrap的daemon接受客户端的命令。 因此它采取的是类似Appium的C/S结构,控制代码在客户端,命令事件控制会发到客户端桌面映射器,桌面映射器再会传送给目标设备进行事件注入。
SeeTest 关键功能描述
控件定位和验证:
- 通过图片元素定位:例如通过在录制期间截取某个按钮的图片并保存起来到SeeTest的对象库,运行时就可以通过该图片对象来定位对应的按钮进行测试。
- 基于上面的图片定位,可以通过OCR技术取出控件图片里面的文本文字进行定位或者验证。
- 基于控件属性动态识别控件(Native Insturmented Dynamic录制方式,跟Appium和UiAutomator基本一样),比如通过控件id,hint等属性来识别。
- 基于XPATH(Native Non-Instrumented 录制方式)
操作支持:
正常操作包括手势等都有支持,和UiAutomator一样可以满足我们的这方面要求。单元测试框架支持
可以支持Junit3,TestNG,和Junit4, 比起UiAutomator只能支持Junit3来得更灵活。比如Junit3限制每个测试用例只能以test开
头,Junit3没有setupBeforeClass,tearDownAfterClass等,而Junit4没有这些限制。跨应用支持
支持跨平台支持:
支持Android,iOS,Blackberry等。事件注入:
因为事件注入是完全是由闭源的客户端映射器控制,所以我们只能依靠它的质量。报告:
自动生成html报告,便于阅读编程语言支持:
Java等多语言支持,类似AppiumWeb应用支持
支持,可以辨识到浏览器的元素进行测试。
作者:天地会珠海分舵
微信公众号:TechGoGoGo
微博:http://weibo.com/techgogogo
CSDN:http://blog.csdn.net/zhubaitian
基于OCR的SeeTest框架可行性分析总结的更多相关文章
- 基于LoadRunner构建接口测试框架
基于LoadRunner构建接口测试框架 http://www.docin.com/p-775544153.html
- 8个强大的基于Bootstrap的CSS框架
做过前端开发的小伙伴们应该对Bootstrap不会陌生,它是由Twitter推出的开源CSS框架,其中包含了很多Web前端开发的工具包和应用组件.当然,和jQuery一样,Bootstrap同时也是一 ...
- 基于cocos2d-x的游戏框架设计——李成
视频:http://v.youku.com/v_show/id_XMzc5ODUyMTI4.html?f=17330006 网易科技讯 3月31日,第四届CocoaChina开发者大会暨Cocos2d ...
- 基于MEF的插件框架之总体设计
基于MEF的插件框架之总体设计 1.MEF框架简介 MEF的全称是Managed Extensibility Framework(MEF),其是.net4.0的组成部分,在3.5上也可以使用.熟悉ja ...
- 【百度地图开发之二】基于Fragment的地图框架的使用
写在前面的话: [百度地图开发之二]基于Fragment的地图框架的使用(博客地址:http://blog.csdn.net/developer_jiangqq),转载请注明. Author:hmji ...
- 基于maven的ssm框架整合
基于maven的ssm框架整合 第一步:通过maven建立一个web项目. 第二步:pom文件导入jar包 (1 ...
- 基于NetMQ的TLS框架NetMQ.Security的实现分析
基于NetMQ的TLS框架NetMQ.Security的实现分析 前言 介绍 交互过程 支持的协议 TLS协议 支持的算法 实现 握手 第一次握手 Client Hello 第二次握手 Server ...
- 基于springboot的SSM框架实现返回easyui-tree所需要数据
1.easyui-tree easui-tree目所需要的数据结构类型如下: [ { "children": [ { "children": [], " ...
- DIY一些基于netty的开源框架
几款基于netty的开源框架,有益于对netty的理解和学习! 基于netty的http server框架 https://github.com/TogetherOS/cicada 基于netty的即 ...
随机推荐
- Hybrid app 发展历程
距离上一篇<基于微信 js-sdk 的简单应用>已经快一年了,说来真是惭愧.上次不久之后便换了工作,一直处于比较忙的状态.其次后面酣畅一段时间都没有从事移动相关的工作.直到今年3月份开始, ...
- Android应用公布的准备——生成渠道包
我们须要使用一个变量标明该app的渠道.通常我们能够在manifest中的application节点下声明.例如以下. <meta-data android:name="CHANNEL ...
- 微软MVP社区夏日巡讲诚邀您的参与: 北京,上海,西宁,成都,西安
- Android 设计模式Template Method模式
自定义模板方法模式:定义的算法的骨架中的方法,虽然某些步骤推迟到子类中,下模板方法允许子类不能改变在的情况下,该算法的结构.算法重新定义某些步骤. 设计原则:不要给我们打电话.我会打电话给你.(像猎头 ...
- CoffeeScript NgComponent
Angular遇上CoffeeScript - NgComponent封装 CoffeeScript是基于JavaScript的一门扩展小巧语言,它需要编译成JavaScript,然后再运行与浏览器或 ...
- 看多csdn它还烂论坛?
什么? 版权声明:本文博主原创文章,博客,未经同意不得转载.
- MySQL SQL分析(SQL profile)
分析SQL优化运营开销SQL的重要手段.在MySQL数据库.可配置profiling参数启用SQL分析.此参数可以在全局和session水平集.级别则作用于整个MySQL实例,而session级别紧影 ...
- shell变一些小技巧
如果我们定义了一个变量为: file=/dir1/dir2/dir3/my.file.txt 能够用${ }分别替换得到不同的值: ${file#*/}:删掉第一个 / 及其左边的字符串:dir1/d ...
- Python基本语法[二],python入门到精通[四] (转)
写在前面 python你不去认识它,可能没什么,一旦你认识了它,你就会爱上它 回到顶部 v正文开始:Python基本语法 1.定义常量: 之所以上篇博客介绍了定义变量没有一起介绍定义常量,是因为Pyt ...
- Unix / 类 Unix shell 中有哪些很酷很冷门很少用很有用的命令?(转)
著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 作者:孙立伟 链接:http://www.zhihu.com/question/20140085/answer/14107336 ...