我试图在前提下从Azure DevOps服务器获得一些信息。但是,下面的代码只返回10个测试。如何进行一个月的测试?
$Api = "http://azuredepopsserver/tfs/Default/MyProject/_apis"
$testUrl = "$Api/test/runs?api-version=5.1&`$top=100"
$tests = Invoke-RestMethod $testUrl -UseDefaultCredentials
$tests顺便说一句,如何得到测试用例的计数?
我从Levi的答案中尝试了以下代码,
$WorkItemType = "Test Case"
$WIQL_query = "Select [System.Id], [System.Title], [System.State] From WorkItems Where [System.WorkItemType] = '$WorkItemType'"
$body = @{ query = $WIQL_query }
$bodyJson = @($body) | ConvertTo-Json
Invoke-RestMethod -Uri "$($Api)?api-version=5.1-preview" -Method Post -ContentType "application/json" -Body $bodyJson -UseDefaultCredentials但它的错误是
调用-eventId:{"$id":"1","innerException":null,“消息”:“值不能为空。\r\n参数名称:配置”,"typeName":"System.ArgumentNullException,mscorlib","typeKey":"ArgumentNullException","errorCode":0,"eventId":0}
发布于 2019-11-19 04:29:48
您可以使用Test 查询api使测试运行一个月。根据api,最小和最大日期可以在最多7天。但是我们可以在powershell中做一个循环,让测试运行一个月。请查看下面的示例:
$mindate = [dateTime]::ParseExact("2019-09-01","yyyy-MM-dd",$null)
$maxdate = [dateTime]::ParseExact("2019-09-30","yyyy-MM-dd",$null)
$connectionToken="PAT"
$base64AuthInfo= [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($connectionToken)"))
For($i = $mindate; $i -lt $maxdate; $i=$i.AddDays(7)){
$min=$i.ToString('yyyy-MM-dd')
if($i.AddDays(7) -gt $mdate){
$max = $mdate.ToString('yyyy-MM-dd')
}else{
$max = $i.AddDays(7).ToString('yyyy-MM-dd')
}
$testurl = "https://dev.azure.com/ORG/PROJECT/_apis/test/runs?minLastUpdatedDate=$min&maxLastUpdatedDate=$max&api-version=5.1"
$result4 = Invoke-RestMethod -Uri $urldate -Headers @{authorization = "Basic $base64AuthInfo"} -Method Get
$result4
}要获得测试用例计数,可以使用wiql api。请查看下面的示例:
$url = "https://dev.azure.com/org/proj/_apis/wit/wiql?api-version=5.1"
$WorkItemType = "Test Case"
$WIQL_query = "Select [System.Id], [System.Title], [System.State] From WorkItems Where [System.WorkItemType] = '" + $WorkItemType + "'"
$body = @{ query = $WIQL_query }
$bodyJson=@($body) | ConvertTo-Json
$connectionToken="PAT"
$base64AuthInfo= [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($connectionToken)"))
$result4 = Invoke-RestMethod -Uri $url -Headers @{authorization = "Basic $base64AuthInfo"} -Method Post -ContentType "application/json" -Body $bodyJson
$result4.workItems.count希望你能发现上面的帮助。
https://stackoverflow.com/questions/58923600
复制相似问题