【发布时间】:2022-12-20 14:06:10
【问题描述】:
我们正在尝试使用 azuredevops 任务自动化测试自动化框架与 Azure 测试计划的集成,如 article 中所述。
我尝试第一步从“planName”的参数值中获取一个 testplanid,但它没有给出任何输出。是因为它没有通过 accesstoken 吗?
parameters:
- name: planName
type: string
stages:
- stage: get_TestplanID
pool:
name: myspoke
jobs:
- job: Get_TestPlanID
steps:
- script: |
echo ${AZURE_DEVOPS_CLI_PAT} | az devops login
env:
AZURE_DEVOPS_CLI_PAT: $(System.AccessToken)
displayName: 'Login to Azure DevOps'
- bash: |
TestPlan_ID=$(curl --location --request GET 'https://dev.azure.com/yourOrganizationName/yourProjectName/_apis/test/plans/planID/suites?api-version=5.0' --header 'Authorization: Basic ${AZURE_DEVOPS_CLI_PAT}' | jq ".value[] | select(.name==\"${{ parameters.planName }}\")" | jq .id)
echo "TestPlanId is $TestPlan_ID"
我在这里的要求是,一旦我可以导出 testplanID 的值,就需要将该变量传递给下一步,这也应该是进一步的 azuredevops 任务,如下所示。
- 获取测试套件 ID
端点: https://dev.azure.com/yourOrganizationName/yourProjectName/_apis/test/plans/planID/suites?api-version=5.0 方法 : 得到 获取测试套件 ID 的 JsonPath: $.value.[?(@.name == 'yourSuiteName')].id planID - 可从步骤 1 获得
- 获取测试用例 ID
端点: https://dev.azure.com/yourOrganizationName/yourProjectName/_apis/test/plans/planID/suites/suiteID/points?api-version=5.0 方法 : 得到 JsonPath 获取测试用例 ID: $..[?(@.name == 'yourTestCaseName')].id planID - 可从步骤 1 获得 suiteID - 可从步骤 2 获得
- 获取测试点 ID
端点: https://dev.azure.com/yourOrganizationName/yourProjectName/_apis/test/plans/planID/suites/suiteID/points?testCaseId=tcID&api-version=5.0 方法 : 得到 获取测试点 ID 的 JsonPath: $.value.[0].id planID - 可从步骤 1 获得 suiteID - 可从步骤 2 获得 tcID-可从步骤 3 获得
- 创建测试运行
端点: https://dev.azure.com/yourOrganizationName/yourProjectName/_apis/test/runs?api-version=5.0 方法 : 邮政 内容类型 : 应用程序/json 样本有效载荷: {"name":"runName","plan":{"id":planID},"pointIds":[pointID]} 获取测试运行 ID 的 JsonPath: $.id planID - 可从步骤 1 获得 pointID - 可从第 4 步获得
- 获取测试结果 ID
端点: https://dev.azure.com/yourOrganizationName/yourProjectName/_apis/test/runs/runID/results?api-version=6.0-preview.6 方法 : 得到 获取测试结果 ID 的 JsonPath: $.value.[0].id runID - 可从第 5 步获得
- 创建错误(可选步骤)
端点: https://dev.azure.com/yourOrganizationName/yourProjectName/_apis/wit/workitems/$bug?api-version=5.0 方法 : 邮政 内容类型 : 应用程序/json补丁+json 样本有效载荷: [{“op”:“add”,“path”:“/fields/System.Title”,“from”:null,“value”:“titleOfBug”}] 获取 Bug ID 的 JsonPath: $.id 8. 在测试运行中更新结果
端点: https://dev.azure.com/yourOrganizationName/yourProjectName/_apis/test/runs/runID/results?api-version=6.0-preview.6 方法 : 修补 内容类型 : 应用程序/json 如果通过,则示例有效负载: [{ "id": resultID , "outcome": "PASSED" , "state": "Completed", "comment": "执行成功" }] 失败时的示例负载: [{ "id": resultID, "outcome": "FAILED" , "state": "Completed", "comment": "执行失败", "associatedBugs": [{"id":bugID}]}]
【问题讨论】:
标签: azure-devops azure-pipelines azure-devops-rest-api azure-devops-extensions azure-devops-server-2019