使用沒有源代碼的espresso自動化android應用程序是不可能的。搖籃預計像這樣的結構:使用沒有應用程序源代碼的espresso的Android自動化
src/main/
src/androidTest/
但我想在不同版本的應用程序的運行這些測試自動化?這可能只是通過安裝應用程序並運行測試?
這裏它說,它不可能:
Automation of Android APK with Espresso
使用沒有源代碼的espresso自動化android應用程序是不可能的。搖籃預計像這樣的結構:使用沒有應用程序源代碼的espresso的Android自動化
src/main/
src/androidTest/
但我想在不同版本的應用程序的運行這些測試自動化?這可能只是通過安裝應用程序並運行測試?
這裏它說,它不可能:
Automation of Android APK with Espresso
按我的知識,咖啡,需要應用程序源code.So這是不可能將其與只是一個APK構建自動化。
據我所知,舊版本的應用程序沒有咖啡測試。
用不同版本的應用程序打開一個提交到androidTest
包括測試並運行assembleAndroidTest
Gradle任務來製作一個應用程序,該應用程序已包含您的測試。
此版本的應用程序可能對Testdroid平臺很有用。
我不是這方面的專家,但我也可以建議您使用monkey
工具
讀到它在這裏:http://developer.android.com/tools/help/monkey.html
,如果你知道一點Python中,你可以使用monkeyrunner
此。
檢查:http://developer.android.com/tools/help/monkeyrunner_concepts.html
這兩個工具將幫助你很多的不同版本的應用程序的運行測試。
希望它能幫助
我不知道這是否仍然適用於你,但我會離開我的意見的年齡。首先一些一般信息:
White-box Testing簡單地說 - 測試應用程序的源代碼。它需要在設計測試時對應用程序體系結構進行編程和理解
Black-box Testing正在測試您的應用程序,而無需使用應用程序的源代碼。它再次需要一些編程,但是您沒有任何關於架構的知識就可以設計測試。
你的情況:
是沒可能到自動化使用咖啡沒有源代碼的Android應用程序。
根據上面的兩個定義 - 是的,它可以用黑盒測試框架。
但我想在不同版本的應用程序上運行這些自動化測試?這可能只是通過安裝應用程序並運行測試?
是的,這是可能的使用黑盒子的應用程序。
但是,您的選擇 - Espresso是一個白盒測試框架。您有兩種可能的解決方案:
答案是肯定的,我可以給你了進一步的建議,您可以運行使用濃咖啡,不用的應用程序源代碼的自動化測試。
Espresso基於Android儀器框架,這意味着自動化測試內置於單個測試apk中。該測試是APK從正常應用APK不同:
有一個儀表在AndroidManifest.xml註冊,一旦安裝測試APK將要被登記到Android系統
測試APK必須使用與應用APK相同的簽名進行簽名,以便運行自動測試
測試APK在同一進程中的應用程式APK
以上是任何基於儀器的測試框架的唯一要求。所以沒有源代碼的依賴。
但爲什麼我們發現大部分Espresso教程都與源代碼混合?因爲它會使得測試更加簡單:
可以使用類ActivityTestRule容易控制活動的生命週期。
您可以輕鬆測試應用程序定義的類。
可以使用的小工具ID
相反測試UI組件,你必須寫很多反射代碼得到,如果你不帶源代碼編譯您需要的類。例如:
您必須使用類。的forName加載入口活動並啓動它
你必須使用Java反射來測試應用程序定義的類
你必須使用文字信息來查找UI窗口小部件,因爲你沒有ID的UI部件
綜上所述,它是確定不運行應用程序源代碼咖啡自動化測試,但它是更難,使測試代碼醜陋。
您可以參考AndroidTestWithoutSource的示例項目。