【问题标题】:Azure DevOps API: powershell get list of test pointsAzure DevOps API:powershell 获取测试点列表
【发布时间】:2021-08-28 20:17:17
【问题描述】:

有没有办法通过 Azure DevOps API 获取测试点数据列表?

list

我试过这个 powershell 脚本

function GetUrl() {
    param(
        [string]$orgUrl, 
        [hashtable]$header, 
        [string]$AreaId
    )

    # Area ids
    # https://docs.microsoft.com/en-us/azure/devops/extend/develop/work-with-urls?view=azure-devops&tabs=http&viewFallbackFrom=vsts#resource-area-ids-reference
    # Build the URL for calling the org-level Resource Areas REST API for the RM APIs
    $orgResourceAreasUrl = [string]::Format("{0}/_apis/resourceAreas/{1}?api-preview=5.0-preview.1", $orgUrl, $AreaId)

    # Do a GET on this URL (this returns an object with a "locationUrl" field)
    $results = Invoke-RestMethod -Uri $orgResourceAreasUrl -Headers $header

    # The "locationUrl" field reflects the correct base URL for RM REST API calls
    if ("null" -eq $results) {
        $areaUrl = $orgUrl
    }
    else {
        $areaUrl = $results.locationUrl
    }

    return $areaUrl
}

$orgUrl = "https://dev.azure.com/fodservices"
$personalToken = "<my token pat>"

Write-Host "Initialize authentication context" -ForegroundColor Yellow
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($personalToken)"))
$header = @{authorization = "Basic $token"}

Write-Host "Demo 3"

$coreAreaId = "3b95fb80-fdda-4218-b60e-1052d070ae6b"
$tfsBaseUrl = GetUrl -orgUrl $orgUrl -header $header -AreaId $coreAreaId

$relDefUrl = "$($tfsBaseUrl)/_apis/testplan/Plans/70152/Suites/70154/TestPoint?api-version=5.0-preview.2"
try {
    $output = Invoke-RestMethod -Uri $relDefUrl -Method Get -ContentType "application/json" -Headers $header

}
catch{
    Write-Host "StatusCode:" $_.Exception.Response.StatusCode.value__ 
    Write-Host "StatusDescription:" $_.Exception.Response.StatusDescription

}
$output.value | ForEach-Object {
    Write-Host $_.id
}

结果是:

演示3

状态码:404

状态描述:未找到

任何人都可以告诉我我在使用 powershell 和 azure devops rest api 时做错了什么

【问题讨论】:

  • $tfsBaseUrl 的值是多少?它需要包含团队项目。
  • 我编辑并添加了我最初使用的函数'geturl'和我拥有的令牌+我使用的url
  • 对,但请查看该变量的内容。它包括组织名称,但是项目名称。您需要在 URL 中包含项目名称。查看文档并将您的 URL 与文档的 URL 进行比较。

标签: powershell azure-devops azure-devops-rest-api


【解决方案1】:

查看$tfsBaseUrl 变量的内容。它包括组织名称,但不包括项目名称。您需要在 URL 中包含项目名称。查看文档并将您的 URL 与文档的 URL 进行比较。

【讨论】:

  • 我试过了:$relDefUrl = "$($tfsBaseUrl)/Training%20projects/_apis/testplan/Plans/70152/Suites/70154/TestPoint?api-version=5.0-preview.2" 但是同样的问题
  • 还是有点卡在这个问题上,如果有解决方案,我会欢迎任何帮助并提前谢谢
猜你喜欢
  • 2020-05-04
  • 1970-01-01
  • 2021-06-25
  • 2021-10-02
  • 2022-07-07
  • 1970-01-01
  • 1970-01-01
  • 2020-07-24
  • 1970-01-01
相关资源
最近更新 更多