1

我已经检查了如何在 Azure DevOps 中删除多个测试用例

它对我不起作用。

单独使用 PowerShell 脚本,我想在 Azure DevOps 中一次性删除多个测试用例。目前,门户网站一次只允许删除一个。

我已经尝试过以下方式,并引发异常。

$url = "https://dev.azure.com/testarulmouzhie/testDemo_Project/_apis/test/testcases/21?api-version=5.0-preview.1"
Invoke-RestMethod -Uri $url -Method Delete -ContentType application/json

它会引发如下错误- 在此处输入图像描述

即使尝试使用新的 api 版本,同样的错误也会出现 -

$url = "https://dev.azure.com/testarulmouzhie/testDemo_Project/_apis/test/testcases/21?api-version=5.1-preview.1"
Invoke-RestMethod -Uri $url -Method Delete -ContentType application/json

附上 ref- 的错误

Invoke-RestMethod :
Azure DevOps
Service Status Support @AzureDevOps
At line:1 char:1
+ Invoke-RestMethod -Uri $url -Method Delete -ContentType application/json
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], WebExc
   eption
    + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand

任何人都可以帮助解决这个问题吗?提前致谢。

对于 ref,无论如何简单的 GET rest api 调用都可以正常工作。我已经尝试过以下一个,并且工作正常。

$AzureDevOpsPAT = "a2wzly2bsirXXXXXXXXXXXXXXXXXXXXXXXXXXX"
$OrganizationName = "testarulmouzhie"

$AzureDevOpsAuthenicationHeader = @{Authorization = 'Basic ' + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$($AzureDevOpsPAT)")) }

$UriOrga = "https://dev.azure.com/$($OrganizationName)/" 
$uriAccount = $UriOrga + "_apis/projects?api-version=5.1"

Invoke-RestMethod -Uri $uriAccount -Method get -Headers $AzureDevOpsAuthenicationHeader

甚至使用 fiddler 并尝试捕获错误日志 - 也附上这些 在此处输入图像描述 在此处输入图像描述

4

2 回答 2

2

无法通过 powershell 脚本删除 azure devops 中的测试用例

您似乎没有使用 REST API测试用例的测试计划许可证 - 删除

Azure Test Plans 使用称为Basic + Test Plans的访问级别,您需要 Basic + Test Plans 许可证来管理测试计划和测试套件等。请查看以下链接:

手动测试权限和访问

在此处输入图像描述

以下是确保您拥有正确许可证的两种方法。

1) 为用户分配了测试管理器扩展许可证 - https://marketplace.visualstudio.com/items?itemName=ms.vss-testmanager-web

2) 用户拥有 VS Enterprise 或 Test Professional 订阅

您可以通过访问测试中心并尝试使用与 REST API 中使用的相同用户(创建 PAT 的帐户)直接添加测试用例来执行此操作。

检查此线程以获取一些详细信息。

希望这可以帮助。

于 2020-05-27T03:49:50.860 回答
1

啊,我想你错过了deleteInvoke API中的 autorizationheader

请包括-Headers $AzureDevOpsAuthenicationHeader如下所示

--give below your pat access token

$AzureDevOpsPAT = "ukcvd42u5rXXXXXXXXXXXXXXXXXXX";
$AzureDevOpsAuthenicationHeader = @{Authorization = 'Basic ' + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$($AzureDevOpsPAT)")) };
$url = "https://dev.azure.com/testarulmouzhie/testDemo_Project/_apis/test/testcases/21?api-version=5.0-preview.1"
Invoke-RestMethod -Uri $url -Method Delete -ContentType application/json -Headers $AzureDevOpsAuthenicationHeader;

正如 Leo 建议的那样,它也可能带有许可证,那么如何检查测试用例的许可证呢?

在此处输入图像描述

于 2020-05-28T06:23:45.697 回答