AWS Device Farm-将参数传递给Robotium测试脚本-Android

时间:2018-07-25 16:04:59

标签: android amazon-web-services automation robotium aws-device-farm

我想自动化在我的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年前的一些文章声称不支持传递启动程序参数,但有人对此进行了调查,以防有些人声称我很懒,但是没有人回答那里的任何问题,或者在亚马逊上论坛,所以我想将问题放在这里。

有人可以帮我解决上述问题吗?

1 个答案:

答案 0 :(得分:1)

测试是由Device Farm内部执行的,因此当前无法控制运行时发送给它的参数。但是,应该可以包含其他文件,这些文件可以保存相同的测试信息。我对此有两个想法:

  1. 测试可以使用Device Farm的extra data feature。多余的数据zip文件将上传到设备上的/sdcard。然后,测试可以从设备本身获取信息。这是计划运行API的一部分,因此运行测试的脚本可以以编程方式进行。

  2. 测试apk中可能包含一个文件,该文件已上传到Device Farm。我用Java Appium tests做过类似的事情,但没有做过表象。从理论上讲,它应该起作用。

除此之外,我还没有找到其他方法来包括Device Farm的参数或文件。

高度   -詹姆斯