Android Firebase测试实验室-使用Orchestrator进行仪器测试,其目的是什么?

Android Firebase测试实验室-使用Orchestrator进行仪器测试,其目的是什么?,android,firebase,firebase-test-lab,Android,Firebase,Firebase Test Lab,从 新:使用Orchestrator的检测测试 Android Test Orchestrator独立运行每个应用程序的检测测试,这有几个好处,但也有一个缺点: 利益 无共享状态:每个测试在其自己的检测实例中运行, 因此,共享状态不会在测试中累积 孤立崩溃:如果测试崩溃,它只取下自己的 实例,因此套件中的其他测试仍然 跑 缺点 更长的运行时间:每个测试运行自己的检测实例 这意味着测试过程总体上需要稍长的时间。这个 增加的运行时间可能会影响配额使用或计费时间和时间 可能会导致您达到设备的超时限制

新:使用Orchestrator的检测测试 Android Test Orchestrator独立运行每个应用程序的检测测试,这有几个好处,但也有一个缺点:

利益

无共享状态:每个测试在其自己的检测实例中运行, 因此,共享状态不会在测试中累积

孤立崩溃:如果测试崩溃,它只取下自己的 实例,因此套件中的其他测试仍然 跑

缺点

更长的运行时间:每个测试运行自己的检测实例 这意味着测试过程总体上需要稍长的时间。这个 增加的运行时间可能会影响配额使用或计费时间和时间 可能会导致您达到设备的超时限制

现在,它建议在本地运行新的orchestrator以确保其正常工作。因此,我在将testOptions添加到模块的build.gradle文件后运行了它:

testOptions {
        execution 'ANDROID_TEST_ORCHESTRATOR'
    }
对于渐变依赖项:

 androidTestImplementation 'com.android.support.test:runner:1.0.1'
        androidTestUtil 'com.android.support.test:orchestrator:1.0.1'
但在执行
/gradlew connectedCheck

我尝试插入一个物理设备,同时运行emulator api 26。所以我现在将有两个设备连接到adb。然后执行./gradlew connectedCheck。我在控制台终端中看到以下输出:

#./gradlew connectedCheck                  
Parallel execution with configuration on demand is an incubating feature.
> Configure project :app 
Configuration 'compile' in project ':app' is deprecated. Use 'implementation' instead.
The Task.leftShift(Closure) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use Task.doLast(Action) instead.
        at build_495ocpxnm4a4fvowoj4qizq7q.run(/Users/me/Development/QA/android/MyApp/app/build.gradle:303)
        (Run with --stacktrace to get the full stack trace of this deprecation warning.)
The CompileOptions.bootClasspath property has been deprecated and is scheduled to be removed in Gradle 5.0. Please use the CompileOptions.bootstrapClasspath property instead.
[newrelic.info] Android Gradle plugin version 3.+ detected. Using transform API
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
> Task :app:processLabsDebugGoogleServices 
Parsing json file: /Users/me/Development/QA/android/Myapp/app/google-services.json
Starting 39 tests on Nexus_6P_API_26_oreo_xxhdpi(AVD) - 8.0.0
Starting 39 tests on SM-G610F - 7.0
<====---------> 33% EXECUTING [4m 40s]
。/gradlew连接检查
按需配置的并行执行是一个酝酿特性。
>配置项目:应用程序
项目中的配置“编译”:app已弃用。改用“实现”。
Task.leftShift(Closure)方法已被弃用,并计划在Gradle 5.0中删除。请改用Task.doLast(操作)。
在build_495ocpxnm4a4fvojoj4qizq7q.运行时(/Users/me/Development/QA/android/MyApp/app/build.gradle:303)
(使用--stacktrace运行以获取此弃用警告的完整堆栈跟踪。)
CompileOptions.bootClasspath属性已被弃用,并计划在Gradle 5.0中删除。请改用CompileOptions.bootstrapClasspath属性。
[newrelic.info]检测到Android Gradle插件版本3.+。使用TransformAPI
registerResGeneratingTask已弃用,请使用registerGeneratedFolders(FileCollection)
registerResGeneratingTask已弃用,请使用registerGeneratedFolders(FileCollection)
registerResGeneratingTask已弃用,请使用registerGeneratedFolders(FileCollection)
registerResGeneratingTask已弃用,请使用registerGeneratedFolders(FileCollection)
registerResGeneratingTask已弃用,请使用registerGeneratedFolders(FileCollection)
registerResGeneratingTask已弃用,请使用registerGeneratedFolders(FileCollection)
registerResGeneratingTask已弃用,请使用registerGeneratedFolders(FileCollection)
registerResGeneratingTask已弃用,请使用registerGeneratedFolders(FileCollection)
registerResGeneratingTask已弃用,请使用registerGeneratedFolders(FileCollection)
registerResGeneratingTask已弃用,请使用registerGeneratedFolders(FileCollection)
registerResGeneratingTask已弃用,请使用registerGeneratedFolders(FileCollection)
registerResGeneratingTask已弃用,请使用registerGeneratedFolders(FileCollection)
>任务:应用程序:ProcessLabsBuggGoogleServices
解析json文件:/Users/me/Development/QA/android/Myapp/app/google-services.json
在Nexus_6P_API_26_oreo_xxhdpi(AVD)-8.0.0上启动39项测试
在SM-G610F-7.0上启动39项测试
33%执行[4m 40秒]
它正在两台设备上运行测试。这就是orchestrator所做的吗

编曲的目的是什么

确保每个测试都在隔离的环境中运行。这意味着先前测试的结果不太可能影响未来测试的结果(由于共享状态)


在Android开发者博客和上。

您是否添加了所有其他依赖项,如
com.Android.support.test:orchestrator:1.0.1
?读一读就知道了。我会更新问题的。我明白了。每个测试都会派生一个新的进程来运行。我想这只是有助于稳定。谢谢你引导我找到答案。