【问题标题】:Android Test Sharding with Spoon使用 Spoon 进行 Android 测试分片
【发布时间】:2016-05-06 19:11:16
【问题描述】:

我正在使用 Spoon 和 Espresso 在我们的 Android 应用上自动执行 UI/功能检测测试。

我想知道是否有一种方法可以在多个连接的设备和/或模拟器之间分配仪器测试,以便我可以减少测试执行时间。

例如:我说过 300 个测试需要 15 分钟才能在 1 个模拟器上运行。有没有办法我可以添加更多的模拟器(比如 4 个),为每个模拟器分配 75 个测试并减少测试执行时间?

感谢您对此的投入。

【问题讨论】:

    标签: android-testing android-espresso android-instrumentation spoon


    【解决方案1】:

    您要查找的内容称为auto-sharding。您必须使用--shard 调用spoon-runner,并使用-serial 添加所有连接设备的序列号。您可以通过adb devices 找到连续剧。

    【讨论】:

    • 谢谢。这是我尝试过的选项。但是当我添加两个或更多模拟器并进行自动分片时,我看到 espresso 测试随机失败。但是,如果我只有一个模拟器,则不会出现随机测试失败。你遇到过这个问题吗?
    • 关于你随机失败的测试,我在真实设备上也经历过类似的失败。但事实证明这是实际的实施问题,例如。多线程,因为仪器在不同的线程中运行。希望对您有所帮助。
    • 我想在这里加两分钱,即使我们遇到了同样的问题,即在我们使用分片选项后一些随机测试开始失败。我们发现失败的测试依赖于现在在不同设备上运行的其他测试,因此我们必须修复这些测试并使它们完全独立,并且它按预期工作。但有时可能是因为@WenChao 提到的原因。
    【解决方案2】:

    您可以在选择对话框中选择多个设备。单击时按ShiftCTRL 键。

    另一种解决方案是使用Gradle。在 Android Studio 的右侧选择Gradle,然后选择verification,最后选择connectedAndroidTest。它会给你和你在控制台中一样的效果:

    ./gradlew connectedAndroidTestgradlew.bat connectedAndroidTest

    我的意思是我会在所有可用设备(物理设备和模拟器)上运行所有测试用例。为了准确选择您应该在build.gradle 中创建任务的测试类。

    了解Groovy 编程语言的基础知识,以更有效地编写 Gradle 任务脚本。下面是一个用 Groovy 编写的任务示例:Run gradle task X after "connectedAndroidTest" task is successful

    您还可以了解Continuous Integration 及其工具,例如JenkinsTravis,您可以将它们配置为在每次提交时运行特定的测试用例。 作为示例,请查看我的 Android 项目的构建日志:https://travis-ci.org/piotrek1543/WeatherforPoznan/builds/126944044 这是Travis的配置:https://github.com/piotrek1543/WeatherforPoznan/blob/master/.travis.yml

    还有其他问题吗?请随意询问。

    希望对你有帮助

    【讨论】:

    • 感谢您的回复。如果我在这篇文章中的查询不清楚,我很抱歉。作为持续集成的一部分,我们在 Android 模拟器上为开发人员推送的每个提交运行大约 500 次测试。目前这需要 25 分钟,并且随着我们添加更多测试而增加。我在这里寻找一种方法来减少执行时间,方法是将这 500 个测试分发到两个或更多配置完全相同的 Android 模拟器。如果您对此有任何想法,请提出建议。
    • 嘿@PavanAgarwal 你解决你的问题了吗?如果是,你能告诉我怎么做吗?我正在尝试使用勺子,但它并没有收集到我的测试包中的所有测试。另外,我可以看到它正在模拟器上一一运行测试。即一次一个模拟器。请帮忙 ??提前致谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    相关资源
    最近更新 更多