我正在研究Flask API,端点之一是接收消息并将其发布到PubSub。当前,为了测试该端点,我将不得不从命令行手动启动PubSub仿真器,并使其在测试期间保持运行。它工作得很好,但是对于自动化测试来说并不是理想的选择。

我想知道是否有人知道从python启动测试PubSub模拟器的方法?或者,如果有人有更好的解决方案来测试这样的API?

最佳答案

据我所知,没有可用的Python本机Google Cloud PubSub模拟器。

您的选择很少,所有这些都需要从Python启动外部程序:


只需从您的python应用程序中直接调用您提到的gcloud命令:gcloud beta emulators pubsub start [options]即可将其作为外部程序启动。
作为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。


对于单元测试,您可以考虑在实际调用Cloud PubSub API的代码上设置包装器,并为此API包装器注入伪造的内容。这样,您可以测试其余代码,这些代码仅调用伪造的API包装器而不是真正的API包装器,而不必担心启动任何外部程序。
对于集成测试,PubSub仿真器绝对有用。

关于python - 如何从python启动测试pubsub模拟器以进行自动测试,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44708430/

10-12 23:17