Skip to content

一、Firebase打包文档

注意

目前IDE提供的打包功能正在重新开发中,请无法正常使用打包功能的同学暂停使用该功能。另外,打包成apk并不意味这可以脱离ADB,成功打包之后还是依赖ADB的。

1. 注意事项

很多用户对于Firebase打包脚本的功能很感兴趣,但是并不是所有的脚本的都可以正常打包。以下是打包功能对脚本的一些限制,希望用户先了解打包功能的适用场景,再酌情适用该功能。

  • 安卓原生应用的poco无法使用,因为无法从一个app去启动另外一个app。但是游戏引擎的poco均可使用。
  • 部分airtest接口,无法使用该方式执行,例如
    • clear_app
    • install_app
    • uninstall_app
  • 由于启动脚本时,会出现kivy闪屏图片,所以请在脚本中打开待测应用,即你的脚本应该以 start_app()开始
  • 打包时,因为涉及到文件删除操作,所以不要使用目标包体的目录(有些用户习惯性直接在生成包体的目录打开命令行安装,会导致无法进行下一次打包)

2. Firebase介绍

AirtestProject开发组与Google-Firebase合作,为测试脚本在Firebase的云测试平台上的运行提供了支持。AirtestIDE目前集成了Firebase插件,提供了将测试脚本打包成apk,然后通过instrumentation在手机上运行测试脚本的一种测试模式。

我们可以通过下图来了解firebase包是如何在手机上运行测试脚本的。

firebase_structure

注:矩形代表测试apk;五边形表示游戏apk;蓝色字体表示python代码;黑色字体代表java代码

接下来,我们看下如何才能在Airtest-IDE中打出instrumentation包,并运行在手机上呢。

3. 打包环境配置

因为打包需要使用到使用的jdk的jarsigner模块,因此在使用AirtestIDE的Firebase打包功能,需要配置java(jdk,非jre)环境(需重签APK包):

安装完jdk后,需要配置环境变量:

完成安装和配置后,在命令行输入jarsigner。如果命令行没有报错,则完成环境配置,可以开始打包。

4. 打包流程

  • 在AirtestIDE中调试好测试脚本
  • 点击下拉菜单"Firebase"-"Build Instrumentation Test Apk"可以打包单个脚本。点击下拉菜单"Firebase"-"Multiple Scripts Build"可以选择多脚本打包,打包顺序会按照从上到下的脚本顺序完成:
    • firebase_structure
  • 等待打包完成,AirtestIDE会将测试脚本及python环境注入apk包体并进行重签名。
    • firebase_structure
  • 脚本打包完成后,点击open可以打开apk所在路径
    • firebase_structure

5. 运行测试脚本

  • 将打包成功的测试脚本apk,与被测应用同时安装到手机上
  • 然后用adb指令启动测试脚本 adb shell am instrument -w com.netease.open.airbase/android.support.test.runner.AndroidJUnitRunner