无法通过 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?
我检查过
它不适合我。
单独使用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?