2017-06-22 43 views
1

我正在研究一個API API,其中一個端點是接收消息並將其發佈到PubSub。目前,爲了測試該端點,我必須從命令行手動啓動一個PubSub仿真器,並在測試過程中保持它運行。它工作得很好,但它不適合自動化測試。如何從python啓動測試pubsub仿真器進行自動測試

我想知道是否有人知道一種方法來從python啓動一個測試PubSub仿真器?或者如果任何人有更好的解決方案來測試這樣的API?

回答

0

據我所知,沒有可用的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仿真器肯定會有用。