苹果开发者福音:iOS自动化测试方案Galileo

Galileo 确实是个科学革命的伟人!
也因为这样,我们给它起了这个智慧饱满的名字Galileo。Galileo是天猫技术-手机天猫架构&体验团队历时8个月倾情打造的,业界全新的iOS自动化测试方案。它与业界现有各种iOS自动化测试方案有着本质的区别,基于苹果的各种黑科技,Galileo研发团队着力打造了真正意义上的无线化、插件化、自动化的iOS测试工具链。

听起来很强大

先通过几个简单的视频向大家展示一下Galileo的强大功能。

  • 支持Instrument Javascript脚本

Galileo支持苹果Instrument Javascript脚本
开发者可以通过Native代码灵活扩展脚本接口,实现更加复杂的功能

  • 真正无线的自动化运行工具

1. 支持iOS8.0及iOS8.0以上系统的真机和模拟器
2. 支持通过app内部入口触发执行自动化
3. 无需USB连接电脑
4. 内置Monkey业务,通过配置灵活控制Monkey逻辑
5. 对接扫码,扫一扫即可运行UI自动化自测试

  • Galileo多屏互动-多机测试神器
  • 使用自主研发的全链路唯一标示技术同步定位元素
  • 支持多台真机同步测试
  • 支持同步点击、同步滚动
  • 支持同步输入
  • 支持WebView
  • 全新打造的脚本调试工具

1. 支持真机和模拟器
2. 可实时查看app运行日志
3. 实时执行自动化脚本,无需重新编译
4. 实时查看App元素树,高亮显示选中元素,方便调试

Galileo强大在哪里

  • 无线化
  1. 通过Framework集成到app内部
  2. 无需USB连接
  3. 支持通过扫码运行自动化测试
  4. 支持通过GalileoPCTool调试工具运行自动化测试
  5. 支持通过服务端推送运行自动化测试
  6. 支持通过App内部入口运行自动化测试
  • 插件化
  1. 内存泄露监控插件
  2. CPU监控插件
  3. 卡顿监控插件
  4. 用户自定义插件
  • 自动化
  1. 崩溃自动恢复执行
  2. 服务端定时推送执行
  3. 数据自动收集和上报

深入解读Galileo

一. Galileo的设计原理:

  • Galileo整体系统设计

  • Galileo客户端SDK设计

二. Galileo客户端SDK:

Galileo客户端SDK主要包含两个库GalileoCore和GalileoUltility,开发人员可以通过pod引入Galileo的客户端SDK

  • GalileoCore

GalileoCore是Galileo的核心客户端SDK,主要包含以下3部分功能:

  1. 模拟硬件级的屏幕触摸事件,并提供相应的接口可以进行方便的调用
  2. 基于Accessibility对iOS的所有Native和web UI进行抽象,并进行了封装,方便编写自动化脚本时进行调用
  3. 基于JavascriptCore事项了Galileo的Javascript执行引擎,用于执行js自动化测试脚本

下面js代码是可以被GalileoCore执行的示例脚本代码:

amkTest('[UIAAlert]同步处理alert和actionsheet',function(target, app){
        UIALogger.logMessage('返回首页');
        UIAPage.currentPage().backToRoot();
        target.delay(2.0);

        target.onAlert(undefined);

        UIALogger.logMessage('进入Alert Controller页面');

        var currentPageElement = UIAPage.currentPageElement();
        var tableView = currentPageElement.withName('UITableView');
        var ele = tableView.scrollToElementWithName('Alert Controller');
        target.delay(2.0);
        ele.tap();
        target.delay(2.0);

        currentPageElement = UIAPage.currentPageElement();
        var eles = currentPageElement.arrayWithName('UITableViewCell');
        for(var index = 0; index < eles.length(); index++){
            var e = eles[index];
            e.tap();
            target.delay(2.0);
            app.alert().dismissWithButtonAtIndex(0);
            target.delay(2.0);
        }
        UIALogger.logMessage('返回首页');
        UIAPage.currentPage().backToRoot();
        target.delay(2.0);
});
  • GalileoUltility

GalileoUltility是Galileo的工具库,主要包含以下3部分功能:

  1. 与GalileoRobot守护程序进行通信,接受来自守护程序下发的指令,并执行对应的自动化操作
  2. 监控自动化执行过程中的内存、CPU、线程、卡顿等信息,并进行收集,开发和测试人员可以通过GalileoUltility提供的顶级浮窗在应用内直接查看这些信息
  3. 与Galileo PC端调试工具进行通信,执行调试工具传输的脚本,并将统计信息传输给调试工具

三. Galileo守护程序:

GalileoRobot守护程序是一个独立的iOS客户端程序,它可以接收voip推送消息,并会将推送的消息传输给被测试的集成了Galileo客户端SDK的应用,我们提供了功能强大的web服务,便于使用者编辑需要推送给GalileoRobot的推送消息,另外也提供了自动定时推送的功能,可以让开发者实现无人值守的自动化服务。

四. Galileo调试工具

Galileo调试工具是可以运行在Mac OSX和windows PC上的脚本调试开发工具,开发人员无需将手机连接电脑,只需要保证手机和电脑在同一个局域网,即可进行自动化脚本的调试,另外使用Galileo调试工具也可以使用模拟器进行脚本调试,脚本开发人员可以使用任何工具进行脚本开发,然后只需要在调试工具中点击运行,即可立即将脚本传输到手机上执行,调试工具具有以下功能:
1. 在手机或者模拟器上实时执行js自动化脚本,无需使用xcode或者instrument,也无需重新编译
2. 实时查看脚本执行日志,了解脚本的执行情况
3. 调试工具提供了实时查看手机界面元素的功能,极大的方便了开发人员编写自动化脚本

五. Galileo服务端

为了达到真正的全自动化执行自动化测试和数据收集分析,我们为Galileo开发了对应的服务端和web界面,该web服务主要有以下两个功能:

  1. 管理用户的自动化任务,并根据用户的配置自动推送给对应的手机执行指定的脚本
  2. 自动从客户端收集自动化执行过程中产生的性能和体验数据,并进行聚类和分析,方便开发人员定位问题

下图是使用Galileo的服务端对猫客进行内存泄露分析得到的数据:

通过Galileo服务端,开发和测试人员只需要进行简单的配置,其他的交由Galileo系统,应用的性能和体验问题就可以在不断地自动重复执行过程中暴露出来,开发人员不需要再盯着Instrument的数据流,喝杯咖啡的时间,也许困扰已久的性能问题就会浮出水面。

Galileo与现有iOS自动化测试方案比较

在双十一期间,Galileo自动化运行了3000多次,发现上百处崩溃问题,80多处严重的内存泄露问题,为天猫双十一的客户端稳定保驾护航。

同时,Galileo已经与手淘共同打造的Galileo多屏互动功能,技术的输出极大提高了回归测试的效率。阿里旅行、UC也已经开始接入Galileo。

目前Galileo的服务端正在对接MTL的mcip系统,期望打造从开发提交代码-> 触发自动化测试-> 收集测试结果的一整条测试链路的持续集成系统。预计2017的年中,Galileo客户端SDK将开源,回馈各位挚爱和开源社区。

原文链接

时间: 2025-01-19 08:24:09

苹果开发者福音:iOS自动化测试方案Galileo的相关文章

读懂苹果:开发者看iOS 7潜力

这两天看到国内不少业内人士在疯狂吐槽苹果iOS 7,不乏"苹果从创新转向山寨"."库克打造投降的苹果"."觉得他(Jony Ive)除了工业设计之外基本上是一个白痴"等犀利言论.发现其实很多盲目的评论影响着新技术传播的结果. 我不认为iOS 7是个完美的产品,但对吐槽言论,有2点需要注意: 1.Google Android业务主管Sundar Pichai为什么高调表扬iOS 7?难道是竞争对手的不怀好意吗?他是真正的行家. 2.iOS 7并不完

苹果开发者大会发布iOS 8:可发送免费语音信息及视频

凤凰数码讯 北京时间6月3日消息,6月3日-6月7日期间,一年一度的苹果开发者大会于北京时间6月3日凌晨1点在美国旧金山Moscone中心开幕,届时来自世界各地的苹果开发者将齐聚一堂,参加这个年度盛会.苹果在此次大会中发布了全新的移动设备操作系统iOS 8.在全新的iOS 8中,苹果重新定义了通知中心,可以在锁屏状态下对通知中心进行控制,通过双击Home键可以显示多任务操作以及常用联系人.同时,iOS 8中加入了全新的互动通知中心,可以在锁屏界面实现快速回复短信.在iOS 8的邮件系统中,加入了

[译]开发者眼中 iOS 11 都更新了什么?

本文讲的是[译]开发者眼中 iOS 11 都更新了什么?, 原文地址:What's new in iOS 11 for developers 原文作者:Paul Hudson 译文出自:掘金翻译计划 译者: Swants 校对者: Danny1451 RichardLeeH 苹果在 2017 年全球开发者大会上公布了 iOS 11 , 其加入许多强大的功能,如 Core ML,ARKit,Vision,PDFKit,MusicKit 拖放等等. 我尝试着把主要变化在接下来的文章里总结了出来,并在

不让苹果开发者账号折磨我

在iOS开发过程中,不可避免的要和证书打交道,真机调试.App上架.打包给测试去测试等都需要搞证书.在此过程中我们会遇到很多的问题,但是如果掌握了真机调试的原理和本质:遇到问题,我们就更容易定位问题之所在,从而迅速的解决问题.这篇文章不是一步步教给你证书,描述文件的制作(其实制作步骤是非常简单的),而是尽可能的讲明白Member Center中的一些知识及原理.并且此文不涉及如何申请开发者账号,以及App上架App Store的流程. 此篇文章的逻辑如下图所示: 图0-0 此篇文章的逻辑图 Ce

iOS自动化测试的那些干货

前言 如果有测试大佬发现内容不对,欢迎指正,我会及时修改. 大多数的iOS App(没有持续集成)迭代流程是这样的   也就是说,测试是发布之前的最后一道关卡.如果bug不能在测试中发现,那么bug 就会抵达用户,所以测试的完整性和可靠性十分重要. 目前,大多数App还停留在人工测试阶段,人工测试投入的成本最低,能够保证核心功能的使用,而且测试人员不需要会写代码. 但是,在很多测试场景下,人工测试的效率太低,容易出错.举两个常见的例子: 一个App的核心功能,在每一次发布版本前的测试必定会跑一遍

苹果开发者大会1599美元天价门票抢购一空

"别人都是好吃好喝好招待的邀请开发者为自己的硬件平台开发软件,http://www.aliyun.com/zixun/aggregation/10125.html">苹果开发者大会居然还要卖票?"这是很多人在看到苹果宣布WWDC 2011开发者大会,门票价格高达1599美元的消息后,不由发出的感叹.但恐怕下面一条消息会更令你惊讶.因为这每张售价1599美元的门票,已经在不到12个小时的时间内被软件开发者们抢购一空了. 苹果的WWDC全球开发者大会除了一场开幕演讲/新品发

苹果WWDC聚焦iOS 6、iCloud和自有地图

6月4日消息,据国外媒体报道,苹果的全球开发者大会将于6月11日开幕,但关于大会的种种猜测已经遍布开来. 五月份的报道称,苹果将发布拥有照片分享功能的iCloud服务.吴肖(Shaw Wu)为券商Sterne Agee的分析师,常期关注以Mac为核心报道的博客AppleInsider,他称,苹果的移动iOS操作系统将升级改善照片分享功能且增加系统内部的3D地图应用程序,以此来取代谷歌地图. 据称,苹果的新地图应用程序将运用去年收购的C3科技公司的3D功能.随后收购的地图软件公司Placebase

苹果开发者成惊弓之鸟:一封邮件引发的风波

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 网上曝光的苹果拒绝应用推荐类App邮件 新浪科技均为 如果你爱一个人,让他去开发苹果App;如果你恨一个人,也让他去开发苹果App.这句话送给当下的苹果开发者也许最为贴切. 苹果AppStore成就了一批开发者,但目前还在这个平台奋斗的人们正面临着越来越多"飞来横祸".继苹果App审核时间大幅延长之后,近期又再曝出苹果收紧

苹果开发者站神游薄记 - 概述

苹果开发者站神游薄记 - 概述 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 新 iMac 正在下载 Xcode(应用商店会出错,此种方式可以使用断点续传工具,多线程同步下载),神游苹果开发者