我正在研究一個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仿真器肯定會有用。