谁能解释一下 android 中的测试分片意味着什么?
如果有人可以分享任何教程将会非常有帮助。
碎片这个词的意思是整体的一小部分。仅凭一个数字如何进行分片?我应该在什么基础上指定 shardIndex?
定义如开发人员文档中所示。
测试分片
测试运行器支持将单个测试套件拆分为多个
分片,因此您可以轻松运行属于同一分片的测试
作为一个组,在同一个 Instrumentation 实例下。每个
分片由索引号标识。运行测试时,使用 -e
numShards 选项指定要创建的单独分片的数量
以及 -e 分片索引选项来指定要运行的分片。
例如,将测试套件分成 10 个分片并仅运行
测试分组在第二个分片中,请使用以下命令:
adb shell am instrument -w -e numShards 10 -e shardIndex 2
测试分片允许您将测试均匀地分为几组。分片索引是您正在运行的“百分比”组。组的划分方式是任意的,因为分片的目的是并行化您的测试。
例如,假设您要运行 60 个测试,每个测试需要 1 分钟才能完成。如果您要在单个设备上运行此程序,则需要一个小时才能运行所有测试。现在假设您希望通过同时在一台设备上运行一半测试并在另一台设备上运行另一半测试来加快测试速度,这样总共只需要 30 分钟。
您可以通过并行运行以下 ADB 命令来完成此操作。
adb -s DEVICE_1_SERIAL shell am instrument -w -e numShards 2 -e shardIndex 0 > device_1_results // Runs first half of the tests
adb -s DEVICE_2_SERIAL shell am instrument -w -e numShards 2 -e shardIndex 1 > device_2_results // Runs second half of the tests
现在,您通过将负载均匀分布到两台设备,仅在 30 分钟内就运行了所有 60 个测试,并且现在可以处理结果。
有关其工作原理的详细信息,请查看内部的 ShardingFilterhttps://android.googlesource.com/platform/frameworks/testing/+/2fe8aed7542ee05ce504d69656475d1948e9c5b2/androidtestlib/src/com/android/test/runner/TestRequestBuilder.java
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)