使用Docker集成测试Azure Service Bus

时间:2017-09-01 20:37:37

标签: azure docker-compose integration-testing azureservicebus

使用ASB集成测试系统的适当方法是什么?有了类似Kafka和使用docker-compose的东西,我可以启动两个将通过Kafka异步通信的服务。有没有办法与ASB做类似的事情?如果没有,什么是常见的集成测试模式?

3 个答案:

答案 0 :(得分:6)

Service Bus的定价模型为12.5 million operations per month included for free。过去,它发送的每百万条消息不到一美元。有了这些类型的服务,作为集成测试的一部分,您可以很容易地以非常低的成本启动和拆除实例。

例如, NUnit提供了[OneTimeSetup][OneTimeTearDown]方法,您可以将这些方法用作集成测试套件的一部分,以便配置并随后删除Service Bus实例。

答案 1 :(得分:1)

可悲的是,我认为Azure Storage Emulator尚未支持服务总线,但您可以将功能提取到接口,并编写假的ASB并使用它或让接口使用模拟器中的队列。如果你想使用实际的ASB并且不介意产生费用,你可以用一个名称的guid来创建一个新的,或者如果创建evanescent队列或带有guid的主题/订阅的名字,那么就把它全部撕掉当你完成时就失败了。

也许并不理想,但它为您提供了一些选择。也许如果您分享了有关您使用ASB的更多细节,我们可以提供更好的解决方案。

答案 2 :(得分:0)

docker hub中有一个 Azure Storage Emulator Docker Image 。使用它时,请记住必须使用Windows仿真:

enter image description here

给定的图像可以在docker compose中使用:

version: '3.7'

services:
    azure_sb:
        container_name: azure_sb
        image: microsoft/azure-storage-emulator
        tty: true
        restart: always
        ports:
            - "10000:10000"
            - "10001:10001"
            - "10002:10002"

对于测试或开发用途,请考虑使用 Azurite link to doc

的lightway版本
version: '3.7'

services:
    azurite:
        container_name: azurite
        image: mcr.microsoft.com/azure-storage/azurite
        tty: true
        restart: always
        ports:
            - "10000:10000"
            - "10001:10001"