Java 使用Saucelabs和Appium为Android应用程序配置CI测试

Java 使用Saucelabs和Appium为Android应用程序配置CI测试,java,android,maven,appium,saucelabs,Java,Android,Maven,Appium,Saucelabs,我正在尝试获取我正在使用maven android插件创建的android应用程序,以便在Saucelabs和Appium上自动运行集成测试。到目前为止,我所尝试的一切只给了我一个错误“无法下载移动应用程序:c:\workspace\android\android it..\android app\target\android app.apk” 我正在集成测试pom文件中使用sauceconnect,配置如下: <plugins> <plugin>

我正在尝试获取我正在使用maven android插件创建的android应用程序,以便在Saucelabs和Appium上自动运行集成测试。到目前为止,我所尝试的一切只给了我一个错误“无法下载移动应用程序:c:\workspace\android\android it..\android app\target\android app.apk”

我正在集成测试pom文件中使用sauceconnect,配置如下:

<plugins>
         <plugin>
        <groupId>com.saucelabs.maven.plugin</groupId>
        <artifactId>sauce-connect-plugin</artifactId>
        <version>1.0.15</version>
        <configuration>
            <sauceUsername>MY USERNAME</sauceUsername>
            <sauceAccessKey>MY KEY</sauceAccessKey>
        </configuration>
        <executions>
            <!-- Start Sauce Connect prior to running the integration tests -->
            <execution>
                <id>start-sauceconnct</id>
                <phase>pre-integration-test</phase>
                <goals>
                    <goal>start-sauceconnect</goal>
                </goals>
            </execution>
            <!-- Stop the Sauce Connect process after the integration tests have finished -->
            <execution>
                <id>stop-sauceconnect</id>
                <phase>post-integration-test</phase>
                <goals>
                    <goal>stop-sauceconnect</goal>
                </goals>
            </execution>
        </executions>
    </plugin>

根据我在Saucelabs和Appium上读到的所有内容,这应该允许我的apk正确下载并在我运行maven构建时运行,但是,如上所述,情况似乎并非如此。如果有人能为我提供我所缺少的东西的指导,我将不胜感激。

您正在尝试使用本地应用程序路径启动一个Sauce会话;由于该路径不可访问,因此无法从中下载APK

我假设您是您的应用程序,或者您的Maven配置在每次构建之前都会这样做。(额外提示:确保传递了
overwrite
参数,并使其为真!)

如果您将“应用程序”功能设置为“apk”功能(存储参考)所使用的值,您的测试应该能够下载您的应用程序。另一方面,我不确定您的测试使用的“apk”功能来自何方;酱汁实验室/Appium文档中的哪里引用了它

您也不再需要Appium 1.0的
应用程序包
应用程序活动
功能

尝试以下功能:

capabilities.setCapability("appium-version", "1.0");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("platformVersion", "4.2");
capabilities.setCapability("deviceName", "Android Emulator");
capabilities.setCapability("deviceType", "phone");
capabilities.setCapability("app", "sauce-storage:my_app.apk");
capabilities.setCapability("takesScreenshot", true);
capabilities.setCapability("appium-version", "1.0");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("platformVersion", "4.2");
capabilities.setCapability("deviceName", "Android Emulator");
capabilities.setCapability("deviceType", "phone");
capabilities.setCapability("app", "sauce-storage:my_app.apk");
capabilities.setCapability("takesScreenshot", true);