【问题标题】:How to run Maven / JVM (e.g. Appium + Saucelabs / Selenium + Browserstack) Test Automation on Bitrise如何在 Bitrise 上运行 Maven / JVM(例如 Appium + Saucelabs / Selenium + Browserstack)测试自动化
【发布时间】:2019-06-08 10:23:51
【问题描述】:

是否可以在 Bitrise CI/CD 上运行基于 Java 的测试自动化套件?

我将研究的功能: - Maven 运行时 - 字符串参数传递 - 黄瓜-JVM - 与 Browserstack(web) / Saucelabs(mobile) 等云设备提供商的连接

此外,为此我们需要在 Bitrise 上设置什么样的工作

谢谢

【问题讨论】:

    标签: maven saucelabs bitrise


    【解决方案1】:

    这可以通过使用脚本步骤来实现,该步骤在您的存储库中调用一个脚本:(路径与您的存储库相关)

    脚本步骤:

    #!/usr/bin/env bash
    set -ex
    
    bash ./scripts/bitrise/test_controller.sh
    

    test_controller.sh 内部,我们有控制其他 bash 脚本执行的逻辑(也可以使用 ruby​​),然后我们将在其中运行 maven:

    test_controller.sh

    #!/usr/bin/env bash
    set -ex
    
    if [[ "$SHOULD_RUN_SPECIFIC_TESTS" == "false" && "$SHOULD_RUN_RELEASE_TESTS" == "false" ]]; then
      if [[ $BITRISE_TRIGGERED_WORKFLOW_TITLE == "iOS-Appium" ]]; then
        echo "=> Executing run_develop_ios_tests.sh"
        bash ./scripts/bitrise/ios/run_develop_ios_tests.sh
        exit 0
      elif [[ $BITRISE_TRIGGERED_WORKFLOW_TITLE == "Android-Appium" ]]; then
        echo "=> Executing run_develop_android_tests.sh"
        bash ./scripts/bitrise/android/run_develop_android_tests.sh
        exit 0
      fi
    fi
    

    如果我们不想运行特定的测试,而不是发布,并且触发此运行的工作流是 iOS-Appium,那么我们运行 execute run_develop_ios_tests.sh:

    run_develop_ios_tests.sh

    #!/usr/bin/env bash
    set -ex
    
    mvn clean test \
      -DplatformName=IOS \
      -Dsurefire.suiteXmlFiles="${XML_FILES}" \
      -DIOS_DEVICE_NAME="${IOS_DEVICE_NAME}" \
      -DIOS_PLATFORM_VERSION="${IOS_PLATFORM_VERSION}" \
      -DSAUCE_USERNAME="${SAUCE_USERNAME}" \
      -DSAUCE_ACCESS_KEY="${SAUCE_ACCESS_KEY}"
    

    测试控制器内部的逻辑由环境变量驱动——引导我们的mvn clean test 命令的字符串参数也是如此。

    由于我们远程连接到 SauceLabs,因此我们不需要任何特殊代理。只是预装的 JDK 和 Maven。

    【讨论】:

      【解决方案2】:

      Bitrise 确实提供了这些功能,并且可以在您进行项目设置时自动配置或推荐一些解决方案。如果您在此过程中需要任何帮助/指导,请联系 Bitrise 支持(通过现场聊天或电子邮件),他们可以帮助您进行特定设置:)

      【讨论】:

      • Viktor 肯定会更清楚,但我认为 Bitrise 目前不支持识别普通 Java 项目或测试相关(Appium/Selenium)。但是可以添加到开源项目中来实现使用 bitrise init 命令检测这样的项目。
      猜你喜欢
      • 2012-09-16
      • 2020-06-30
      • 1970-01-01
      • 2016-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-26
      • 2020-02-29
      相关资源
      最近更新 更多