2016-04-21 13 views
0

目前我使用UIAutomator來執行Android UI測試。基本上,我編寫Java代碼,編譯它,安裝jar,然後運行。AndroidViewClient腳本可以在設備上運行或從應用程序運行(不是來自終端)

假設UI測試應用程序(從xml文件讀取UI操作)被稱爲AppTester.jar,該應用程序用於測試開發的應用程序myApp.apk。然後我必須運行:

adb shell uiautomator runtest AppTester.jar -c com.uia.example.my.AppTester 

因此,在運行adb命令後,所有測試都在設備上完成,而不是從終端完成。

現在我想在我現有的測試中使用AndroidViewClient進行視圖對比。爲了將AndroidViewClient集成到現有的測試框架中,如果我可以運行腳本(由culebra生成),即使是在我的AppTester.jar程序中生成腳本的culebra工具,也是理想的。

有沒有可能這樣做?

回答

1

uiautomator測試必須從adb運行,所以你不會擺脫它。 然後你仍然需要你的計算機來運行測試,所以當你仍然需要adb運行其他測試時,在設備上運行AndroidViewClient/culebra生成的測試並沒有太大的區別。

話雖如此,也許有一種方法使用SL4A雖然,我還沒有嘗試過。 As AndroidViewClient/culebra測試完全在python中,它們依賴於很少的模塊,或許有機會。

下一個工具生成,現在稱爲Culebra Tester(在私人測試版下)具有culebra的相同功能,但除了可以生成python以外,還可以生成Java,因此統一測試不會有任何問題。它完全在設備上運行,所以唯一的外部要求是瀏覽器。

演示視頻顯示了一個簡單的UiAutomator測試的生成。

+0

@dtmilano爲了更好地完善我的問題,我可以重新使用庫萊布拉編寫的代碼來轉儲/比較視圖樹,並在應用程序中封裝這部分,這將在設備上執行相同的操作?不適用於生產硬件,或只適用於需要服務器/客戶端結構的Android模擬器? – emilywuq

+0

正如我在我的回答中提到的那樣,在您的測試中需要一些權限,只有在您從'adb'運行它們時纔會被授予權限。從應用程序啓動的測試可能會受限於權限。想象一下,任何應用程序都可以訪問其他應用程序的視圖,這將是一個巨大的安全問題。 –

+0

@dtmilano,據我所知uiautomator必須從adb運行。我想要的功能是,一旦uiatumator運行我的AppTester.jar(adb shell uiautomator runtest AppTester.jar -c com.uia.example.my.AppTester),我可以在AppTester中運行culebra腳本(或java代碼) .jar,假設我重用了culebra代碼並將其正確包裝到AppTester.jar中。 是庫萊布拉測試儀還是圍繞python(庫萊布拉python腳本)能夠實現這一目標? – emilywuq

相關問題