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

not able to delete test cases in azure devops through powershell scripts

我检查过

它不适合我。

单独使用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 并尝试捕获错误日志 - 也附上了那些

not able to delete test cases in azure devops through powershell scripts

您似乎没有使用 REST 的测试计划许可 API Test Cases - Delete.

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

Manual test permissions and access

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

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

2) 用户订阅了 VS Enterprise 或 Test Professional

您可以通过访问测试中心并尝试使用与 REST API.

中使用的相同用户(创建 PAT 的帐户)直接添加测试用例来完成此操作

检查 this thread 了解一些细节。

希望对您有所帮助。

啊,我想你错过了 delete 调用中的 autorizationheader API

请包含 -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;

As Leo suggested it also maybe with the license, so how to check your license for the test cases?