Appetizer移动开发智能化平台发布

本帖已被设为精华帖!,

Appetizer.io交流 QQ群:467889502, slack群组:https://ken234.typeform.com/to/QGf3G0

  • 演示视频合集
  • 1.1.0: 新增自动质量监控,详情请见 https://testerhome.com/topics/8162
  • win7稳定性调整,linux支持到ubuntu 12.04,见:(命令行,Python SDK)
  • 1.0.2: 开放appetizer核心功能(命令行,Python SDK),修正中文路径bug,修正自动更新问题
  • 1.0.1: 支持win7+, Mac Mavericks+以及Linux(centos, ubuntu, fedora可能,要求glibc>2.1.7)

  • 感谢beta阶段大家的帮助

介绍

Appetizer 是一个面向移动开发程序员的智能化开发平台,旨在提高软件开发人员进行产品交互、测试、维护的效率,以适应移动开发快速迭代的特点,加强开发人员的职能,简化移动平台App的开发流程,达到解放开发者,提高生产力的目的。

Appetizer 1.0.x 处于Beta阶段,广泛征集大家的意见以及bug report。

平台支持

Appetizer 客户端是一个基于 Electron 开发的跨平台的 Web App,可以运行在 Windows、Mac OS、Linux 三个平台。目前 Appetizer 1.0.1 版本暂时只支持 Android 设备的功能,2.3+,并且不需要ROOT。Appetizer 提供的功能可用广泛用于原生App(基于Android View)、Web App(WebView或者H5或者Cordova框架的)、Hybrid App、手机游戏(Unity3D 和 Cocos2D-x 框架)。在将来会扩充更多支持,同时支持 iOS 平台。

Appetizer 平台支持

获取 Appetizer

Appetizer 1.0.1 所有功能免费使用,只需要按照如下步骤:

  1. 下载 Appetizer 软件客户端到开发机
  2. 注册 Appetizer 账号,或使用 GitHub 账号授权登录
  3. 使用账号登录 Appetizer 客户端

下载 Appetizer 客户端

官方网站首页提供mac, Windows和Linux的Appetizer客户端。

下载 Appetizer

注册账号

  • 通过 Appetizer.io 主页链接进入账号注册页面,填写表单进行注册。页面采用 HTTPS 协议,加密存储密码,无需担心密码泄漏。

Appetizer 注册页面

  • GitHub 授权账号: Appetizer 支持使用 GitHub 授权账号作为第三方账号登录,点击后会跳转到 GitHub OAuth 授权页面,点击授权即可登录。账号在功能上和注册一样,账号登录后的主页面会缺少修改密码的功能,因为无需密码登录。Appetizer 账号系统会读取用户 GitHub 的部分个人信息,但不能使用 GitHub 账号的邮箱直接登录,只能通过 GitHub 授权的方式进行登录。第一次通过第三方平台登录的账号可以认为是在 Appetizer 账号系统上创建的全新的账号。

GitHub 授权登录

Appetizer 功能

第一次在开发机上打开 Appetizer 客户端,需要进行登录,方法同下载时在网站上的登录,可以使用之前注册的账号或者 GitHub 授权账号登录。

主界面

设置ADB路径

Appetizer 需要开发机上已经安装 Android SDK,同时 adb 需要在 PATH 环境变量中。启动Appetizer后,如果 Appetizer 可以获取 adb 的路径,则会直接进入主界面,否则会弹框要求指定 adb 路径。通常 Windows 上此路径在 C:\Users\<UserName>\AppData\Local\Android\sdk\,MacOS 上此路径在 /Users/<UserName>/Library/Android/sdk/platform-tools/,Linux 上在 Android-sdk/platform-tools/

请求指定adb路径

选择正确的 adb 路径后,Appetizer 会告知 adb 已经被检测到,并进入主界面,adb 路径只需要指定一次,在特殊情况下(例如Android SDK被移动位置等),可通过主界面的 Settings 来重新指定。

多设备控制

将至少一台Android设备通过 USB 连接到开发机,点击左侧导航 Device Control 进入多设备管理界面,点击右侧功能按钮 Refresh Devices 可以检测已经正确连接的设备(要求 adb debugging 功能已经打开)。当设备正确连接时,Appetizer 界面上就会显示所有设备及其参数和样例图片,否则请检测 USB 连接或者 ADB debugging 是否已经授权。在界面的右侧 Filter Tab 选项卡中,可以根据设备名称、屏幕分辨率、系统版本对系统上的 Android 设备进行筛选。

点击每个设备的 Select Device 按钮能够选中设备,Appetizer 的相关功能都会基于选中的设备运行。Filter Tab 下方是 Appetizer 提供的对多设备的一些基本的批量控制命令,例如可以对选中的设备进行批量执行,包括安装应用、删除应用、重启和运行Shell命令等。这些功能需要选定至少一台设备。

例如在下图中,选中五台设备,通过 Run Shell Command 执行 cat /system/build.prop | grep ro.product ,可以同时在五台设备上执行该命令,并查看五台设备的返回输出。

在多台设备上执行 Shell 命令

值得注意的是 Appetizer 处理提供基本的批量控制功能外,还提供了三项特色功能,如下。

镜像操作 Mirror Touches

镜像操作需要选择至少两台设备进行操作,其中一台为 master 设备,其余为 slave 设备。镜像操作会自动将 master 设备的触摸屏输入(坐标位置)实时传给所有的 slave 设备,从而达到使用一台设备控制多台设备的效果。镜像操作广泛支持短按(tap)、长按(long click)、拖动(swipe)以及复杂的手势轨迹。同时该功能支持多点触控,因此可以完成图片、网页缩放等操作。

注意:镜像操作要求master设备与所有设备的纵宽比相同。

点击查看使用镜像操作功能从一台设备实时控制多台设备的演示视频

录制和重放 Record & Replay Touches

Appetizer 不仅能实时将设备的触摸屏输入复制到其他设备,也可以将输入记录下来以便未来多次重复播放。录制操作需要选中单台设备,点击后会弹框选择触目标文件,存储该设备的触摸屏输入。完成录制后,点击 Stop。进而可以使用重放操作选择刚才产生的问题件进行重放。Appetizer 会准确记录每次触摸屏输入的位置、时间,并准确重放。

重放能够对选中的多个设备同步重放,达到自动化的对批量设备完成一些复杂的操作的目的。同样,重放要求目标设备与源设备的纵宽比一致(一致的情况会自动拉伸),否则无法重放。

点击查看录制和重放的功能演示视频

重放测试方案 Replay Testing

重放测试是 Appetizer 的核心功能,综合了之前介绍的录制和重放功能,能全自动化地完成测试人员需要执行的一系列复杂的测试流程。

重放测试首先需要选择一个 apk,开始重放测试的时候会先将 就版本从每个设备上卸载,并安装指定的 apk ,然后需要用户设定重放测试的流程和步骤,步骤可以包括以下几种:

  • 重放一个脚本
  • 截屏
  • 暂停一段时间

重放测试的步骤可以按照任意顺序增添、放置、排列,用户在步骤设置的界面上可以很方便地增加重放测试步骤,直接用鼠标拖动步骤即可改变重放测试的执行顺序。重放测试所使用的脚本,需要先通过录制功能进行录制。截屏和暂停可以帮助用户更好的完成重放测试流程,检测过程中设备所运行程序的状态。一切就绪,点击开始重放,选择存放结果的文件夹,然后测试就好像是重放录像一样。

设定测试流程

点击查看重放测试方案演示视频

  • 重放结束后,结果文件夹中会有多个子文件夹保存中间的截屏结果,每一个子文件夹对应一个设备,每个子文件夹中的截屏图片按照时间进行排序。

自动更新

Appetizer 客户端会自动检查是否有版本更新并下载,当下载完毕后会弹出如下提示框,点击 Restart 即可更新到最新版本。Mac版本的客户端暂时不支持自动更新,点击后会在浏览器内跳转到最新版本的下载页面下载最新的完整版。

Appetizer 自动升级

社区以及未来的功能

Appetizer 是一个快速发展的移动开发工具,有活跃的核心开发者维护。 Appetizer的中文社区在 TesterHome,欢迎开发者使用并积极为 Appetizer 的开发提意见。我们正在完善并计划推出的功能有:

  • Android Studio 插件支持,之后直接从 Android Studio build 到 Appetizer 测试,一键自动化
  • Appetizer的 Record Replay Mirror 部分将开放 API,方便开发者将其集成到自己的自动化QA过程中(例如Jenkins, Appium)
  • 截屏比较插件:可以自动对测试过程中产生的截屏进行图像学的比较,筛选错误的步骤加速测试人员快速定位问题
  • 崩溃诊断插件:应用在测试过程中崩溃将由该插件自动获取崩溃信息并产生报告,减少人工看截屏的工作量
  • 性能诊断插件:在测试过程中自动搜集应用的性能参数,并在测试完成后分析性能问题,返回问题报告
  • (欢迎您的意见和参与)

* 注:本文来自网络投稿,不代表本站立场,如若侵犯版权,请及时知会删除