Azure devops VSTS发布管道发布门:如何进行HTTP响应体字符串相等性检查?
我想检查我部署的ASP.NET应用程序是否从运行状况检查端点返回健康的Azure devops VSTS发布管道发布门:如何进行HTTP响应体字符串相等性检查?,azure-devops,azure-pipelines-release-pipeline,Azure Devops,Azure Pipelines Release Pipeline,我想检查我部署的ASP.NET应用程序是否从运行状况检查端点返回健康的health 不幸的是,“调用Rest API”发布门的成功标准示例仅显示如何评估JSON响应,如eq(root['status'],'successful')或eq(count(jsonpath('Items[?(@.price)如果端点仅返回字符串,请尝试以下操作: eq(root, 'SomeString') 这真的很奇怪,你得到这样的错误。它在我的发布管道上工作: 以下是设置: 结果如下: 如果端点只返回一个字符串
health
不幸的是,“调用Rest API”发布门的成功标准示例仅显示如何评估JSON响应,如
eq(root['status'],'successful')
或eq(count(jsonpath('Items[?(@.price)如果端点仅返回字符串,请尝试以下操作:
eq(root, 'SomeString')
这真的很奇怪,你得到这样的错误。它在我的发布管道上工作:
以下是设置:
结果如下:
如果端点只返回一个字符串,请简单地尝试以下操作:
eq(root, 'SomeString')
这真的很奇怪,你得到这样的错误。它在我的发布管道上工作:
以下是设置:
结果如下:
同意Krzysztof Madej的观点
异常消息:将API响应解析为JSON对象时出错
您可以检查“调用RESTAPI任务”中的“URL后缀和参数”字段
请确保整个URL是有效的
整个URL包含服务器URL(在服务连接中设置)以及URL后缀和参数(在调用RESTAPI任务中设置)
希望这有帮助。同意Krzysztof Madej的观点
异常消息:将API响应解析为JSON对象时出错
您可以检查“调用RESTAPI任务”中的“URL后缀和参数”字段
请确保整个URL是有效的
整个URL包含服务器URL(在服务连接中设置)以及URL后缀和参数(在调用RESTAPI任务中设置)
希望这能有所帮助。我刚在私人公关中遇到这个问题,不确定是否相关,因为我不想在任务之外使用身体作为变量:这个问题有任何更新吗?你解决了这个问题吗?如果没有,请让我知道这个问题的最新信息吗?@KevinLu MSFT现在我们只依靠检查whet端点返回200 OK(表示健康或降级)或500(不健康),因为重写健康检查后端以返回有效的JSON而不是text/plain(默认情况下是这样)并不重要所以这个问题仍然存在,我们现在只使用这种解决方案。非常感谢这里共享的解决方案。因为这个问题的根本原因是成功的标准不支持比较规则字符串,也许你可以尝试在我们中提交一个特征请求。那里的团队会检查你的想法并考虑THA。t、 我只是在私人PR中遇到了这个问题,不确定是否相关,因为我不想在任务之外使用body作为变量:这个问题有任何更新吗?你解决了这个问题吗?如果没有,请让我知道关于这个问题的最新信息吗?@KevinLu MSFT现在我们只依靠检查端点retu是否rns为200 OK(表示健康或降级)或500(不健康),因为它对于我们重写健康检查后端以返回有效的JSON(而不是文本/纯文本)(默认情况下是这样)来说不够重要所以这个问题仍然存在,我们现在只使用这种解决方案。非常感谢这里共享的解决方案。因为这个问题的根本原因是成功的标准不支持比较规则字符串,也许你可以尝试在我们中提交一个特征请求。那里的团队会检查你的想法并考虑THA。t、 它会导致“异常消息:将API响应解析为JSON对象时出错”。这可能对您有效,因为“某些”
是有效的JSON,而某些”
不是。请参阅我上面的提示“我的端点不返回任何JSON”。您是对的。因此您知道答案。您可以使用“健康”
作为黑客或完整的json。因为不可能进行常规字符串比较。这是开发人员社区的理想选择。感谢您的教训!它会导致“异常消息:将API响应解析为json对象时出错”。这可能对您有效,因为“某些”
是有效的json,而某些
不是。请参阅我的提示上面的“我的端点不返回任何JSON”。你是对的。所以你知道答案。你可以使用“health”“
作为黑客或完整的json。因为无法进行常规字符串比较。很适合开发人员社区。感谢您的教训!服务器URL有效且可访问。日志输出还显示响应代码:OK;响应:Health;表达式'eq'的计算(根,'Health')'失败。异常消息:将API响应解析为JSON对象时出错。(类型DistributedTaskException)
-服务器的响应是一个简单的健康的
字符串,带有文本/普通内容类型。Krzysztof Madej的字符串周围有引号,这是有效的JSON。我的字符串不是。我理解了差异,并测试了文本/普通内容类型。这确实可能会导致此问题。它似乎无法比较字符串值(文本/普通内容类型)。正如Krzysztof所说,您需要将字符串用作Json类型。服务器URL有效且可访问。日志输出还显示响应代码:OK;响应:Health;表达式'eq(root,'Health')的计算失败。异常消息:将API响应解析为Json对象时出错。(类型DistributedTaskException)
-服务器的响应是一个简单的健康的
字符串,带有文本/普通内容类型。Krzysztof Madej的字符串周围有引号,这是有效的JSON。我的字符串不是。我理解了差异,并测试了文本/普通内容类型。这确实可能会导致此问题。它似乎无法比较字符串值正如Krzysztof所说,您需要将字符串用作Json类型。