Skip to content

Trigger a test task run in the Hydra Lab test service

OliverShen edited this page Feb 22, 2024 · 7 revisions

Trigger a test task from ADO pipeline

Gradle Plugin

  1. Apply the Gradle plugin to your project.
  • see Gradle plugin README for usage detail of Gradle plugin.
  • see Release Notes for brief release notes and version numbers of the latest versions.
  • Known issue: Gradle plugin leverages GSON for serialization/deserialization between JSON and Java objects. For Gradle with JVM >= 17, there may be some issue like the following on some Java built-in modules:

    Caused by: com.google.gson.JsonIOException: Failed making field 'java.io.File#path' accessible; either change its visibility or write a custom TypeAdapter for its declaring type.

    • Workaround: run Gradle plugin command with the following param: "-Dorg.gradle.jvmargs=--add-opens=java.base/java.io=ALL-UNNAMED", substitute the module name to the one you may encounter with.
  1. Run Gradle task requestHydraLabTest implemented in the Gradle plugin for running test.
     - task: Gradle@2
       displayName: Trigger Hydra Lab UI test
       inputs:
         gradleWrapperFile: 'UIAutomation/gradlew'
         workingDirectory: 'UIAutomation'
         tasks: 'requestHydraLabTest -PappPath=$(build.artifactstagingdirectory) -PtestAppPath=$(build.artifactstagingdirectory)\testApk -PtestSuiteName=$(testSuiteName) -PqueueTimeOutSeconds=$(testQueueTimeOut) -PrunTimeOutSeconds=$(testRunTimeOut) -PdeviceIdentifier=$(Android.Device.Identifier) -PgroupTestType=$(groupTestType) -PextraArgs="type=$(Build.Reason),buildId=$(Build.BuildId)" -PreportAudience=TestLabOwner -PauthToken=$(authToken) -PpkgName=$(pkgName) -PtestPkgName=$(testPkgName)'
         publishJUnitResults: false
    

If you would like to enable check for test failure within the task, set publishJUnitResults to true, and the task will fail if there's any test failure.

By default the runTimeOutSeconds is set to 45*60 (45min) if not provided. So if you expect to have a longer test run please update the value of it.

Config test run timeout in WebUI

  1. PublishTestResults task for publishing test result to tests tab in pipeline result page.
     - task: PublishTestResults@2
       displayName: 'Publish Test Results $(build.sourcesdirectory)/${PATH_TO_YOUR_SUBMODULE_ROOT_WITH_PLUGIN}/build/testResult/**/hydra_result_*.xml'
       inputs:
         testResultsFiles: '$(build.sourcesdirectory)/${PATH_TO_YOUR_SUBMODULE_ROOT_WITH_PLUGIN}/build/testResult/**/hydra_result_*.xml'
         testRunTitle: 'Test-Result'
         failTaskOnFailedTests: true
    
    The "authToken" in the parameter list of pipeline can be found on the HydraLab Portal: image

Testing Result

  • Test result can be found in Tests tab of pipeline running result page:
    image
  • Click on error items on above image to see detailed stack traces:
    image
  • The link of related testing video will also show in pipeline log.

Trigger a test task from Web UI.

Upload Test Package

image image

Choose Device and Config Test Task

image image image

View Test Result

image image

Clone this wiki locally