自动化测试在产品测试上有着非常重要的作用。实现测试自动化有多种积极的方式,包括:

·最大限度地减少测试执行时间;

· 在关键的发布阶段,用更少的时间确保更大的覆盖范围;

· 在产品开发阶段,可靠又重复性地运行以确保没有引进回归问题,最大限度地减少重复性回归测试循环时的人为错误和疏忽的风险;

· 在市场上有很多可用的工具,开源的或要付费的。虽然付费和开源工具各有利弊,但是后者在自动化测试社区得到了广泛的应用。

  根据项目需求来选择合适的自动化工具是非常棘手的。下面介绍5个最佳的iOS和Android开源自动化工具。

 Appium(Android和iOS)

  Appium是SauceLabs出品的一个开源的自动化测试框架,用于原生、混合和移动的WebApp。

  框架内的Appium库函数调用Appium服务器是在操作连接设备的后台运行的。它在内部使用JSONWireProtocol,来与使用Selenium的WebDriver的iOS和AndroidApp进行互动。

  不像Calabash只支持Ruby开发,在框架中使用Appium时,你可以从JavaPython和Ruby以及所有其他SeleniumWebDriver支持的语言中选择。

  Appium服务器被托管在Node服务器上,你可以通过触发一组Node命令来启动Appium服务器。使用AppiumStandaloneApplication作为服务器(从Appium网站下载),Inspector工具可对App的所有定位器提供查找/识别/操作的能力。

  优点:

  支持多种语言,不需要访问源代码,跨平台脚本开发,大型社区支持,支持Mac上的脚本记录

  使用AppiumServer应用程序的Inspector工具提取标识符;

  通过AppiumServer的桌面应用程序对Selendroid内置支持;

  它还使用供应商提供的框架:适用于iOS的UIAutomation,分别适用于Android4.2+和2.3+的UIAutomator和Selendroid;

  支持物理设备与仿真器,支持原生,混合和移动的web自动化应用程序。

  缺点:

  AppiumServer桌面应用程序的发布常常不稳定;

  脚本记录不适用于Application服务器对于WindowsOS的桌面应用程序。

我在这里整理了一些软件测试的资料,汇集成了资料大礼包,需要的小伙伴可以查看文章最后

  Calabash(Android和iOS)

  Calabash是一个开源的验收测试框架,支持Android和iOS自动化。Calabash为Android和iOS自动化测试提供了一个单独的库,是一个跨平台的框架,支持Cucumber,Cucumber能让你用自然的英语语言表述App的行为,实现BDD(BehaviorDrivenDevelopment,行为驱动开发)。

  Calabash提供了一个桥梁,允许Cucumber测试对iOS和Android运行和验证。Cucumber测试使用一列语句写入,这些语句会形成很多测试场景。Cucumber中的所有语句使用Ruby定义。

  在Calabash,Cucumber语句只能被定义一次,但可以在Cucumber脚本的不同场景中重复使用。

  实际测试是用Gherkin写的,依靠Ruby代码的支持,并在Cucumber框架的上下文中运行。

  优点:

  大型社区支持,使用起来简单,类似英语表述的测试语句;

  支持在屏幕上的所有动作,如滑动、缩放、旋转、敲击等;

  是大型且热心的社区,跨平台开发支持(同样的代码在Android和iOS设备中都适用)。

  缺点:

  测试步骤失败后,将跳过所有的后续步骤。这可能会导致错过更严重的产品问题;

  需要时间来进行测试,因为它首先总是默认安装App。但是,这种设置可以通过在代码中配置一个钩子(hook)覆盖掉;

  需要Calabash框架安装在iOS的ipa文件中,且我们必须要有iOS的App代码;

  除了Ruby,对其他语言不友好。

Robotium(Android)

  Robotium是一个开源的测试框架,用于开发功能性、系统和验收测试场景。它与Selenium非常相似,除了Robotium只适用于Android,注册在ApacheLicense2.0下。

  因为它不但简单,而且又具有创建强大又可靠的自动化场景的能力,因而在自动化测试社区广泛流行。

  它采用运行时绑定到GUI组件,安装了一个测试用例套件作为在Android设备或仿真器上的应用程序,并提供用于执行测试的真实环境。

  优点:

  容易在最短的时间内编写测试脚本,预装自动化App是可能的,自动跟随当前activity;

  由于运行时绑定到GUI组件,所以相比Appium,它的测试执行更快、更强大,不访问代码或不知道App实现,也可以工作;

  支持Activities、Dialogs、Toasts、Menus、ContextMenus和其他AndroidSDK控件。

  缺点:

  不能处理flash和Web组件,支持Java开发,在旧设备上会变得很慢;

  由于不支持iOS设备,当自动化测试同时覆盖Android与iOS的情况时,测试会被中断;

  没有内置的记录和回放功能,使用记录功能需要TestDroid和RobotiumRecorder这样收费工具。

 Frank(iOS)

  Frank是一个iOSApp的自动化框架,允许使用Cucumber编写结构化英语句子的测试场景。

  Frank要求测试时在应用程序内部编译,这意味着对源代码的改变是强制性的。这是一个使用Cucumber和JSON组合命令的工具,命令发送到在本地应用程序内部运行的服务器上,并利用UISpec运行命令。

  优点:

  测试场景是在Cucumber的帮助下,用可理解的英语句子写的;

  Symbiote——包含实时检查工具;

  如果团队有关于WebSelenium和Cucumber自动化框架的经验,也有效;

  活跃的社区支持以及不断扩大的库。

  缺点:

  对手势的支持有限,在设备上运行测试有点难;

  修改配置文件需要在实际设备上运行,记录功能不可用。

 UIAutomator(Android)

  UIAutomator是由谷歌提供的测试框架,它提供了原生AndroidApp和游戏的高级UI测试。这是一个包含API的Java库,用来创建功能性UI测试,还有运行测试的执行引擎。

  该库自带AndroidSDK,有很多教程可供初学者上手。优点是它在运行访问不同的进程时,会给JUnit测试案例特权。虽然这对本地自动化App既好又更简单,但是它对Web自动化视图非常有限或几乎没有任何支持。

  它仅支持使用APIlevel16及以上的设备,不过这也不算什么很大的因素,因为现在大多数的App支持APIlevel19及以上。

  优点:

  提供简单易学的教程,库由谷歌社区支持和维护,第三方支付集成了基于云计算的测试管理。

  缺点:

  仅支持Android4.1及以上,不支持脚本记录,支持的重点是Java。

  个人不能获得当前活动或仪表化,目前不支持Web视图,因此是混合App;

  库支持使用Java,因此如果有人想和使用Ruby的cucumber混合,会很困难。不过Java有它自己的BDD框架,虽然在实践中用到的也不多。

Robotium和Appium区别

  Appium是基于UIAutomator框架实现的(iOS和安卓都适用);

  Robotium是基于Instrumentation框架的(只适用于安卓);

  Appium是模拟用户的场景触发相对应的事件,而Robotium是直接在内部修改相应数据,相对来说Robotium更底层。

  就我们测试而言是模拟用户的场景触发相应的事件。所以选择Appium。

5个超好用手机开源自动化工具,哪个适合你?相关推荐

  1. Android和iOS 测试五个最好的开源自动化工具

    本文主要介绍Android和iOS 五个最好的开源自动化工具,这里整理了相关资料,希望能帮助测试软件的朋友,有需要的看下 自动化测试在产品测试上有着非常重要的作用.实现测试自动化有多种积极的方式,包括 ...

  2. 【自动化测试】推荐一款超好用的ui自动化工具--uiautomator2

    今天直接进入正文,给大家推荐一款超级好用的ui自动化工具 uiautomator2 正文来了 我将从以下几个方面,向大家介绍 uiautormator2,希望该项目的作者看到我的文章之后,可以请我喝杯 ...

  3. 推荐一款超好用的ui自动化工具--uiautomator2

    给大家推荐一款超级好用的ui自动化工具 uiautomator2 先上目录 简要介绍 实现原理 安装步骤 使用简介 优点缺点 简要介绍 项目地址:https://github.com/openatx/ ...

  4. docker里面什么emule比较好_推荐 5 款超好用的开源 Docker 工具

    Docker 社区已经创建了许多开源工具,它们能帮我们处理各种用例.作者在本文中推荐了 5 款认为最有用的 Docker 工具,分别是 Watchtower(自动更新 Docker 容器).docke ...

  5. 开源应用中心 | 这款超好用的开源调查工具,别说你还不知道!

    1. 背景 你是否在为寻找一个好用的调查软件而苦恼,那LimeSurvey将是你值得一试的选择.LimeSurvey是一个用PHP开发的在线问卷工具,Github上一千多个Star即奠定了其No.1的 ...

  6. 乙醇的selenium java_揭秘webdriver实现原理 | 乙醇的开源自动化工具研究Blog

    通过研究selenium-webdriver的源码,笔者发现其实webdriver的实现原理并不高深莫测无法揣度.在这里以webdriver ruby binding的firefox-webdrive ...

  7. 开源自动化机器学习框架

    20211101 在 Airbnb 使用机器学习预测房源的价格 https://blog.csdn.net/weixin_33735077/article/details/87976278?spm=1 ...

  8. 【机器学习】太棒了!8 个开源自动化机器学习框架,轻松搞定机器学习!

    自动化机器学习(AutoML)可以帮助机器学习管道中的某些关键组件实现自动化.其中机器学习管道包括数据理解.数据工程.特征工程.模型训练.超参数调整.模型监控等. 在这篇文章中,我将分享 8 个开源的 ...

  9. appium手机APP自动化定位元素

    目录 1 什么事手机app自动化,作用和特点 2 自动化原理: 3 定位元素 根据ID 根据CLASS NAME 根据ACCESSIBILITY ID Xpath 1 什么事手机app自动化,作用和特 ...

最新文章

  1. iBatis自动生成的主键 (Oracle,MS Sql Server,MySQL)【转】
  2. 【bzoj3209】 花神的数论题
  3. 在Windows QT下使用ZeroMQ
  4. 宠粉老鱼皮带你 “入坑” GitHub!
  5. 【Hive的高级查询详】
  6. 支付业务与技术架构学习总结(3)——账务系统
  7. Android中下载编译Volley
  8. ffmpeg php centos,Centos安装ffmpeg插件
  9. Django基础--4
  10. 模仿Google搜索功能
  11. 微信终端跨平台组件 Mars 在移动网络的探索和实践
  12. 计算机桌面复制到画图,Windows10系统下将画图小工具添加到桌面的技巧
  13. 【笔记】lua - 协程
  14. 用python一键去除图片、PDF水印
  15. 新华社客户端文章:区块链金融:新蓝海还是新挑战
  16. 【数据结构】---时间复杂度与空间复杂度
  17. 云付注册推荐人怎么填?云付新手怎么操作
  18. ::before 和:before 区别
  19. Android 11---WMS之横竖屏切换流程详解之一
  20. 计算机大赛鼓励语录,致2019年的自己 鼓励自己的经典语句

热门文章

  1. 如何等待ajax完成再执行相应操作
  2. html/php学生管理系统显示图片代码示例
  3. DvaJS快速上手(1)
  4. SpringBoot整合MongoDB以及副本集、分片集群的搭建
  5. 深度学习与自然语言处理(4)_斯坦福cs224d 大作业测验1与解答
  6. python readlines返回值_Python readlines没有返回任何内容?
  7. switch循环的default
  8. Android程序员学PHP开发(36)-ThinkPHP5.0(8)前台引入模板分离-phpStudy+Sublime
  9. linux mutt安装配置_Linux系统中安装配置Mutt来作为Gmail客户端
  10. 录音读写程序c语言,如果用c语言程序读取一段音频文件要如何做,具体要调用哪些函数,在网上搜索了半天,乱七八糟的,找不到什么有用的信息...