azure - 测试 Azure 死信服务总线队列

标签 azure integration-testing azureservicebus

我们有一个监听 Azure 服务总线队列的服务。我们有另一个服务来监听该队列的死信队列。我们还对部署后的 Azure 应用程序进行了一系列测试。

我们希望扩展我们的自动化测试,以便也测试处理死信的部分,但不确定如何编写测试来确保消息到达死信队列,就像在正常情况下一样消息不会是死信。

目前我们正在手动测试这一点,但我觉得这不是一个长期选择。

有什么想法吗?

最佳答案

根据服务总线docs ,如果将 EnableDeadLetteringOnMessageExpiration 设置为 true,则如果消息过期,它将进入死信队列。所以,你可以这样做:

var desc = new QueueDescription(QueueName);
desc.EnableDeadLetteringOnMessageExpiration = true;
desc.DefaultMessageTimeToLive = TimeSpan.FromSeconds(1); // one second is the min value

您可以通过等待 > 1 秒来进行测试,以确保消息进入死信队列。

编辑:您还可以通过执行receivedMessage.DeadLetter()对收到的消息进行死信。这会自动将其放入死信队列中。

关于azure - 测试 Azure 死信服务总线队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16201691/

相关文章:

visual-studio-code - 如何为依赖于其他扩展的 vscode 扩展运行集成测试

c# - 从 Azure 服务总线接收消息时出现 System.Runtime.Serialization.SerializationException

azure - 使用运行时 4、.NET 6 在进程外运行 Azure 函数时遇到问题

azure - Azure Data Lake 是否仅临时存储分析数据?

azure - 如果 Azure Web 应用程序通过了所有集成测试,如何自动将其升级到生产环境

c# - 您可以将 XUnit 测试标记为显式吗?

git - Azure DevOps CI/CD 以及将连接字符串与源代码管理分离

python - Azure Python 网站不对 URL 中的空格进行 URL 解码

azure - 如何在 Microsoft Azure Functions 中将 DocumentDB 数据库输入绑定(bind)与服务总线触发器绑定(bind)和 BrokeredMessage 结合使用?

azure - 在 Microsoft Azure 服务总线中使用 TopicClient/QueueClient.sendAsync(IList<Message>) 发送的消息列表的大小限制 - 2020