我想自动化在我的Android应用程序上运行的Robotium测试,但是,我需要将参数传递到我的测试中,以允许它们在该配置下运行。
我可以这样从命令行开始测试:
adb shell am instrument -r -w -e PARAM PARAM_1,PARAM_2 com.company.product.application.test/android.support.test.runner.AndroidJUnitRunner
我在代码中抓取了这些参数:
Bundle extras = InstrumentationRegistry.getArguments();
if (extras.containsKey("PARAM")) {
this.param1= new ArrayList<>();
this.param1= Arrays.asList(extras.getString("PARAM").split("\\s*,\\s*"));
}
我打算调用Device Farm API(https://docs.aws.amazon.com/devicefarm/latest/APIReference/Welcome.html)来运行测试,但是我很难找到可以声明参数/参数的地方。或者找到一种将它们上传到AWS某处的文件中的方法,以供Device Farm读取。
我发现有4到5年前的一些文章声称不支持传递启动程序参数,但有人对此进行了调查,以防有些人声称我很懒,但是没有人回答那里的任何问题,或者在亚马逊上论坛,所以我想将问题放在这里。
有人可以帮我解决上述问题吗?
答案 0 :(得分:1)
测试是由Device Farm内部执行的,因此当前无法控制运行时发送给它的参数。但是,应该可以包含其他文件,这些文件可以保存相同的测试信息。我对此有两个想法:
测试可以使用Device Farm的extra data feature。多余的数据zip文件将上传到设备上的/sdcard
。然后,测试可以从设备本身获取信息。这是计划运行API的一部分,因此运行测试的脚本可以以编程方式进行。
测试apk中可能包含一个文件,该文件已上传到Device Farm。我用Java Appium tests做过类似的事情,但没有做过表象。从理论上讲,它应该起作用。
除此之外,我还没有找到其他方法来包括Device Farm的参数或文件。
高度 -詹姆斯