Azure Devops Browserstack 集成 - BrowserStackResults 任务 - 意外的“按名称找不到构建”错误

问题描述 投票:0回答:3

尝试设置 Azure Devops 管道以进行测试自动化运行(Java + Maven + Selenium)测试正在 Browserstack 上运行

为了查看浏览器堆栈结果,我向 pipiline YAML 文件添加了两个任务 BrowserStackConfig 和 BrowserStackResults (根据来自BrowserStack的说明

但是我在 BrowserStackResults 步骤中遇到意外错误:“按名称未找到构建..”

现在我正在尝试获取在 BS 上运行的“旧”自动化结果(将 BROWSERSTACK_BUILD_NAME 设置为现有 BS 结果 = 20220114_666666)

设置: 将 Azure DevOps 与已安装的 Browserstack 扩展一起使用

步骤:

  1. 准备好的YML文件

  1. 为 YML 添加管道

  2. 运行管道

结果:

BS 配置步骤有效

BrowserStackResults 步骤出现意外错误“##[错误]按名称未找到构建:”20220114_666666”错误

selenium azure-devops browserstack
3个回答
0
投票

以下仅修复BrowserStackConfig任务:

variables:
- name: BROWSERSTACK_BUILD_NAME
  value: "test-001"

但不适用于 BrowserStackResults 任务。是否还有另一个环境变量控制后者?或者 browserstack 使用的变量列表?


0
投票

根据浏览器堆栈 注意:确保使用环境变量

build
在测试脚本中设置
BROWSERSTACK_BUILD_NAME
功能。如果缺少此功能,扩展将无法将测试报告嵌入到您的管道中。

为 BrowserStack Azure DevOps 扩展设置变量

BrowserStack Azure DevOps 扩展默认设置以下环境变量:

BROWSERSTACK_USERNAME
BROWSERSTACK_ACCESS_KEY
BROWSERSTACK_LOCAL
BROWSERSTACK_LOCAL_IDENTIFIER
BROWSERSTACK_BUILD_NAME

创建服务连接时,

BROWSERSTACK_USERNAME
BROWSERSTACK_ACCESS_KEY
会在配置步骤中自动添加为变量。

该扩展还添加了

BROWSERSTACK_BUILD_NAME
变量,可为您的测试运行自动生成构建名称。

编辑测试脚本以调用环境变量

编辑测试脚本以添加环境变量以使用以下代码片段设置功能:

String buildName = System.getenv("BROWSERSTACK_BUILD_NAME");

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("build", buildName); // CI/CD job name using BROWSERSTACK_BUILD_NAME env variable

似乎您需要检查代码是否将

BROWSERSTACK_BUILD_NAME
环境变量值传递给
buildName
并添加到功能中。否则,将不会生成报告


0
投票

事实上,您的 CI 脚本缺少实际运行测试的必要步骤。这就是为什么 BrowserStack 报告没有使用该名称的构建。

您的工作包括上传应用程序和发布结果,而其间没有执行任何测试。换句话说,您没有启动任何测试,而是要求提供测试结果。

要解决此问题,您应该将负责启动测试的脚本作为“脚本”步骤包含在您的作业中。 (您在终端中使用的脚本与自动化框架启动测试相同)

例如,如果您正在使用 Python、Robot Framework 和 Appium,则可以使用以下命令:

  - script: |
    browserstack-sdk robot --include Minor Tests/.
  displayName: Launching Automated Tests

此外,如果您的代码中没有应用程序的链接,您可以配置BrowserstackAppUploader。通过这种方式,您可以提交并推送您的构建,BS 插件将处理它:

- task: BrowserStackAppUploader@0
inputs:
  appPath: '$(Build.SourcesDirectory)/Resources/app/app.apk'

现在,整个管道代码看起来像这样:

trigger:
- main
pool:
  vmImage: ubuntu-latest
jobs:
- job: RunTests
  displayName: 'Run Tests on BrowserStack'
  steps:
  - task: UsePythonVersion@0
    inputs:
      versionSpec: '3.9'  # Use the version of Python you need        
  - script: |
      pip install -r requirements.txt
    displayName: 'Install Dependencies'
  - task: BrowserStackConfig@0
    inputs:
      BrowserStackServiceEndPoint: 'IDFM BrowserStack Connection'
  - task: BrowserStackAppUploader@0
    inputs:
      appPath: '$(Build.SourcesDirectory)/Resources/app/app.apk'
  - script: |
      browserstack-sdk robot --include Minor Tests/.
    displayName: Launching Automated Tests
  - task: BrowserStackResults@1
    inputs:
      BrowserStackServiceEndPoint: 'IDFM BrowserStack Connection'
  - task: BrowserStackAppUploader@0
    inputs:
      appPath: '$(Build.SourcesDirectory)/Resources/app/app.apk'
  - script: |
      browserstack-sdk robot --include Minor Tests/.
    displayName: Launching Automated Tests
  - task: BrowserStackResults@1
    inputs:
      browserstackProduct: 'App Automate'
© www.soinside.com 2019 - 2024. All rights reserved.