2017-10-16 120 views
0

我想知道是否可以自動化兩個應用程序彼此通信。我會用兩個例子來解釋我的要求,只是爲了讓你明白。兩個移動應用程序的通信測試自動化

示例1 - 我們乘坐出租車預訂應用程序。乘客應用程序將向驅動程序應用程序發送請求。駕駛員應用程序安裝在駕駛員手機中,乘客應用程序安裝在客戶端手機中, 當乘客應用程序發送請求時,駕駛員應用程序會收到警報,然後駕駛員接受請求。 (駕駛員必須在30秒內接受請求)

示例2 - 支付應用程序, 假設有一個商家應用程序和客戶應用程序。當我們向商戶應用程序輸入一定金額時,它將生成一個二維碼,然後將從客戶應用程序掃描此代碼,客戶可以使用已保存的信用卡進行支付。

當一個應用程序運行時,另一個應用程序應該運行,因爲如果我們關閉第一個應用程序,應用程序的當前狀態將丟失。由於一個應用程序正在等待另一個應用程序的響應,並基於響應,第一個應用程序將繼續該流程。因此,一個應用程序正在等待其他應用程序的響應(例如:15秒內驅動程序應用程序應該響應)

如何使用Appium,Java,Selenium使用仿真器或實際設備來執行自動化測試?

+0

請編輯該問題,將其限制爲具有足夠詳細信息的特定問題以確定適當的答案。避免一次詢問多個不同的問題。請參閱[問]頁面以獲得澄清此問題的幫助。 – JeffC

回答

0

編寫測試,你需要做的就是在適當的時候聲明預期的行爲。您可以根據您的測試設計訪問多個應用程序。

在測試運行期間功能可能會發生變化,您訪問的應用程序會相應更改。流程圖有點像: -

  1. 設置X應用程序的驅動程序功能。
  2. 啓動應用程序X並根據需要執行任務。
  3. 斷言這些任務已完成。
  4. 關閉驅動程序,爲Y應用程序設置新的驅動程序功能。
  5. 啓動Y應用程序並對該應用程序的預期行爲執行斷言。
+0

請您詳細說明解決方案。我們如何平行運行兩個應用程序,並等待輸入從一個應用程序提供給另一個應用程序以繼續流程。讓我們說應用程序x發送數據到應用程序2,然後應用程序2再次發送一些數據到應用程序1繼續該過程。謝謝... –

+0

@SanojIndrasinghe我建議順序運行本身。相反,我會感興趣的是,您認爲從UI角度來看,需要這樣的並行執行和驗證。 – nullpointer

+0

例如,當乘客應用程序向驅動程序應用程序發送請求時,一旦駕駛員在15秒內接受請求。然後乘客應用程序應該顯示司機接受了請求,並且他正在路上。如果客戶在途中按驅動程序取消,則驅動程序應顯示預訂已取消。兩種應用程序都由兩種類型的用戶並行運行。 –

0

開始兩個appium會話appium -p 4723appium -p 4727。在應用程序上運行測試,在appium1上預訂出租車,然後在接收端查看是否有任何預訂。

+0

你的意思是使用兩個線程來運行兩個會話..? –

+0

其實你不需要兩個線程。以'''self.driver1 = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)''' 和'''self.driver2 = webdriver .Remote('http://127.0.0.1:4727/wd/hub',desired_caps2)''' –