使用 AzureDevOps 构建和上传 espresso 测试到 Browserstack

问题描述

我正在关注如何在 browserstack 上运行自动浓缩咖啡测试的 this 链接。我想使用我创建的 azure 管道将那里提到的所需 APK 上传browserstack。正如您在下面的 .yaml 文件中看到的那样,我设法构建并上传了我的应用程序的 APK,但我无法弄清楚如何通过 azure 为我的测试类生成测试 APK,以便我可以将其上传browserstack。上面的指南提到了上传测试套件,是指在构建和运行测试类文件生成的 APK?如果是这样,我是不是需要通过 azure 更改构建配置,然后重新构建?

pool:
  vmImage: ubuntu-latest

# build apk
- task: Gradle@2
  inputs:
    workingDirectory: ''
    gradleWrapperFile: 'gradlew'
    gradleOptions: '-Xmx3072m'
    publishJUnitResults: false
    testResultsFiles: '**/TEST-*.xml'
    tasks: 'assembleDebug'

# retain the apk artifact
- task: copyFiles@2
  inputs:
    contents: '**/*.apk'
    targetFolder: '$(build.artifactStagingDirectory)'

- task: browserstackConfig@0
  inputs:
    browserstackServiceEndPoint: 'browserstack connection'

# Upload apk to browserstack
- task: browserstackAppUploader@0
  inputs:
    appPath: '/my/path/debug/presentation-google-debug.apk'
    appCustomId: 'myID'
  displayName: 'Uploading apk to browserstack'

# build and upload test apk here

# post test results
- task: browserstackResults@0

解决方法

您需要根据您的设置添加构建测试套件 APK 的步骤。

要上传测试套件并触发测试,您可以使用以下内容:

- script: |

   echo "upload test suite"

   curl -u "username:access_key" \
   -X POST "https://api-cloud.browserstack.com/app-automate/espresso/v2/test-suite" \
   -F "file=@/path/to/app/file/Application-debug-test.apk" \
   -F "custom_id=SampleTest"
 
   echo "triggering test" 
   
   curl -u "username:access_key" \
   -X POST "https://api-cloud.browserstack.com/app-automate/espresso/v2/build" \
   -d '{"app": "myID","testSuite": "SampleTest","devices": ["Samsung Galaxy S9 Plus-9.0"]}' \
   -H "Content-Type: application/json" 

  displayName: 'uploading test suite and triggering test'