我正在研究一个API API,其中一个端点是接收消息并将其发布到PubSub。目前,为了测试该端点,我必须从命令行手动启动一个PubSub仿真器,并在测试过程中保持它运行。它工作得很好,但它不适合自动化测试。如何从python启动测试pubsub仿真器进行自动测试
我想知道是否有人知道一种方法来从python启动一个测试PubSub仿真器?或者如果任何人有更好的解决方案来测试这样的API?
我正在研究一个API API,其中一个端点是接收消息并将其发布到PubSub。目前,为了测试该端点,我必须从命令行手动启动一个PubSub仿真器,并在测试过程中保持它运行。它工作得很好,但它不适合自动化测试。如何从python启动测试pubsub仿真器进行自动测试
我想知道是否有人知道一种方法来从python启动一个测试PubSub仿真器?或者如果任何人有更好的解决方案来测试这样的API?
据我所知,没有可用的Python本地Google Cloud PubSub仿真器。
你有几个选项,所有的人都需要从Python的启动外部程序:直接从您的Python应用程序gcloud beta emulators pubsub start [options]
启动此作为外部程序:
只需调用你提到的gcloud指令。
作为Cloud SDK一部分的PubSub仿真器是由CLOUD_SDK_INSTALL_DIR/platform/pubsub-emulator/bin/cloud-pubsub-emulator
中存在的bash脚本引导的JAR文件。你可以直接运行这个bash脚本。
这是StackOverflow answer which covers multiple ways to launch an external program from Python。
另外,从你的问题来看,你是如何在Python中调用PubSub API的还不是很清楚。
单元测试,你可以考虑设置一个包装过这实际上调用云API的PubSub的代码,并注入假的这个API的包装。通过这种方式,您可以测试只调用虚假API包装器的其他代码,而不是真正的API包装器,而不用担心启动任何外部程序。
对于集成测试,PubSub仿真器肯定会有用。