Testing 如何在DevOps上为多个服务运行集成测试?

Testing 如何在DevOps上为多个服务运行集成测试?,testing,azure-devops,integration,Testing,Azure Devops,Integration,我希望我的服务在其中一个发布时触发相同的测试。有可能吗?谢谢 您可以调用服务管道来触发发布以运行集成测试。请参阅以下步骤: 1,在每个服务管道的末尾添加一个脚本任务,以调用createreleaserestapi。例如,在中运行以下脚本 您可以从地址栏获取测试发布管道的definitionId。 转到发布页面-->单击运行测试-->的发布管道,您将在地址栏上看到定义ID 如果服务管道与测试发布管道位于不同的项目中。您需要转到测试发布管道安全设置页面以允许服务管道创建发布权限。(搜索{servi

我希望我的服务在其中一个发布时触发相同的测试。有可能吗?谢谢

您可以调用服务管道来触发发布以运行集成测试。请参阅以下步骤:

1,在每个服务管道的末尾添加一个脚本任务,以调用createreleaserestapi。例如,在中运行以下脚本

您可以从地址栏获取测试发布管道的definitionId。 转到发布页面-->单击运行测试-->的发布管道,您将在地址栏上看到定义ID

如果服务管道与测试发布管道位于不同的项目中。您需要转到测试发布管道安全设置页面以允许服务管道创建发布权限。(搜索
{service ProjectName}生成服务({OrganizationName})


这样,当服务管道完成释放服务时,将执行最后的powershell任务。powershell任务中的脚本将调用create release rest api。然后将触发测试发布管道并运行集成测试。

集成测试是否在发布管道中?服务是否内置于构建管道中?当服务在构建管道中构建并且发布了其构建工件时,集成测试应该运行?是的,测试在发布管道中,服务在piepline中相同的构建,当其中一个服务发布时,测试在不同的环境中运行。您的服务也通过azure管道发布吗?我在想,如果您可以添加一个脚本任务来调用rest api,从而触发pipepline中的集成测试发布管道,该管道将发布您的服务。是的,因此所有服务也都通过azure piepline,我不希望每个服务都创建新的工件,我希望使用我在不同服务中的测试,当其中一个服务发布时,测试将在那里触发,当第二个服务发布时,测试将在第二个服务上触发。另一个问题我不确定。当一个服务被发布到一个环境中时,测试应该在这个环境中运行。如何在发布管道中配置运行集成测试的环境。还是集成测试管道不需要更改任何东西,只需要在发布一个服务时触发并运行测试?我用上面的代码创建了powershell脚本,但出现了错误。2020-07-21T09:45:16.5297523Z变量引用无效。“:”后跟的变量名字符无效。考虑使用${}到2020-0721T09:45:16.529 7903Z分隔该名称。2020-07-21T09:45:16.5298734Z在D:\a_temp\52f9338c-3c70-4c3e-9d32-662e8cc3fd79。ps1:12字符:159 2020-07-21T09:45:16.5299237Z+。。。CESSTOKEN“}-Method post-Body$Body-ContentType“application/json”2020-07-21T09:45:16.5299739Z+~2020-07-21T09:45:16.5300134Z字符串缺少终止符:.2020-07-21T09:45:16.5300985Z在D:\a_temp\52f9338c-3c70-4c3e-9d32-662e8cc3fd79.ps1:12字符:77 2020-07-21T09:45:16.5301435Z+…=“持票人”$env:SYSTEM\u ACCESSTOKEN}-Method post-Body$Body-Cont…2020-07-21T09:45:16.5301854Z+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2020-07-21T09:45:16.5302307Z意外的$env:SYSTEM\u ACCESSTOKEN~~~~~~~~~~~~~~~~~~~~方法post-Body$Body$Body-ContentType-ContentType-ContentType应用程序/json-21307:307:27If!(测试路径-LiteralPath变量:\LASTEXITCODE)){2020-07-21T09:45:16.5303615Z}其他{2020-07-21T09:45:16.5304267Z退出$LASTEXITCODE 2020-07-21T09:45:16.5304879Z}'在表达式或语句中.2020-07-21T09:45:16.5305621Z在D:\a_temp\52f9338c-3c70-4c3e-9d32-662e8cc3fd79.ps1:12 char:76 2020-07-21T09:45:16.5306417Z+…oke RestMethod-Uri$rurl-Headers@{authorization=“bear”$env:SY…2020-07-21T09:45:16.5307386Z+~2020-07-21T09:45:16.5307675Z哈希文本不完整。2020-07-21T09:45:16.5307967Z+类别信息:解析器错误:(:)[],ParseException 2020-07-21T09:45:16.5308341Z+FullyQualifiedErrorId:InvalidVariableReferenceWithDrive 2020-07-21T09:45:16.5308621Z 2020-07-21T09:45:16.6943406Z##[错误]PowerShell已退出,代码为“1”。2020-07-21T09:45:16.7391772Z##[部分]完成:集成测试
$rurl="https://vsrm.dev.azure.com/{org}/{proj}/_apis/release/releases?api-version=6.0-preview.8"

# the definitionId is the definitionId of release pipeline of the integration tests
$body='{
 
 "definitionId": 3

}'
 
$result1 = Invoke-RestMethod -Uri $rurl -Headers @{authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"} -Method post  -Body $body -ContentType "application/json"