微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

可用性测试:是否可以在启用 AAD 的情况下对端点进行 HTTP ping?

如何解决可用性测试:是否可以在启用 AAD 的情况下对端点进行 HTTP ping?

为了更好地理解并在我们的项目中实施它,我创建了一个带有 3 个端点的功能应用this gist 中的源代码)并配置了 6 个可用性测试强>(类似Ping 测试):

oktest: https://myfuncname.azurewebsites.net/apI/Ok (parse dependent requests = false)
oktest2: https://myfuncname.azurewebsites.net/apI/Ok (parse dependent requests = true)
badtest: https://myfuncname.azurewebsites.net/api/bad (parse dependent requests = false)
badtest2: https://myfuncname.azurewebsites.net/api/bad (parse dependent requests = true)
errtest: https://myfuncname.azurewebsites.net/api/err (parse dependent requests = false)
errtest2: https://myfuncname.azurewebsites.net/api/err (parse dependent requests = true)

函数应用使用客户端 ID 和允许的令牌受众配置了 AAD

/ok returns 200 content OK
/bad returns 400 content BAD
/err returns 500

使用 Postman(使用有效的Bearer Token)测试 Azure 端点会产生与本地托管环境相同的预期结果。

我预计 oktestoktest2 的成功率为 100%,其他测试的失败率为 100%。

我得到了这些结果:

oktest: success 21 fail 0
oktest2: success 17 fail 0
badtest: success 20 fail 2
badtest2: success 17 fail 0
errtest: success 21 fail 1
errtest2: success 17 fail 0

然后我将身份验证设置为允许匿名,经过一段时间后我得到了这些结果:

oktest: success 31 fail 0
oktest2: success 36 fail 0
badtest: success 29 fail 9
badtest2: success 25 fail 8
errtest: success 28 fail 8
errtest2: success 24 fail 7

很明显,首次身份验证设置阻止了端点HTTP ping。这是否可以保留 AAD 身份验证,或者我们必须重新考虑我们的网络架构?

任何帮助或建议将不胜感激!

问候, 贾科莫 S. S.

解决方法

我想我已经了解情况了。

启用允许匿名后,HTTP-ping 在“badtest”中正确失败:

enter image description here

启用AAD 身份验证后,HTTP-ping 会返回成功,导致 可用性测试能够进行身份验证,然后返回 200 OK(成功的身份验证):

enter image description here

查看这些细节可以解释任何一个结果。

我的结论:可用性测试更倾向于测试网页而不是 REST 服务。

可以在 MS 文档中找到确认。

如果有人要补充的话,我很感兴趣!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?