0
votes

I am using the below API call for retrieving all the CouldTests(1000+ cloudtests), but it is returning only 100 records. Here in the below code ContinuationToken is getting as null. Anything wrong here? I tried do..while also, but no difference. Any help is appreciated. Thanks in advance

$personalAccessToken = "Token"
$auth = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$($personalAccessToken)"))

$headers = @{}
$headers.Add("Authorization", "Basic $auth")
$Today = Get-Date -Format "yyyy-MM-dd"
$Tomorrow = (Get-Date).AddDays(1).ToString("yyyy-MM-dd")

do
{
    $uri = "https://{instance}/{collection}/{project}/_apis/test/runs?minLastUpdatedDate=$Today&maxLastUpdatedDate=$Tomorrow&releaseIds=12345678&continuationToken=$ContinuationToken&includeRunDetails=true&api-version=5.0"

    $TestRuns = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get -ContentType "application/json" 
    $continuationToken = $TestRuns.Headers.'x-ms-continuationtoken'
    $Tests += $TestRuns
}
while ($continuationToken -ne $null)
1
You may try 'x-ms-continuation' and not 'x-ms-continuationtoken'.DSpirit
I tried using 'x-ms-continuation', still it is getting as null.Tinz
Have you tried outputting the result itself first? If there are no headers, there seems to be no HTTP response at all, so the request might be faulty.DSpirit

1 Answers

1
votes

You should get it with Invoke-WebRequest and not with Invoke-RestMethod:

do
{
    $uri = "https://{instance}/{collection}/{project}/_apis/test/runs?minLastUpdatedDate=$Today&maxLastUpdatedDate=$Tomorrow&releaseIds=12345678&continuationToken=$ContinuationToken&includeRunDetails=true&api-version=5.0"

    $TestRuns = Invoke-WebRequest -Uri $uri -Headers $headers -Method Get -ContentType "application/json" 
    $continuationToken = $TestRuns.Headers.'x-ms-continuationtoken'
    $Tests += $TestRuns
}
while ($continuationToken -ne $null)