2012-08-30 100 views
14

我必須定期測試電影租賃網站的可用性和功能。我寫了一個Windows程序,它能夠根據腳本自動化Web瀏覽器,所以這個任務基本上可以解決。現在我必須自動化該Web應用程序的移動版本:原生iOS應用程序和原生Android應用程序。如何自動測試iOS和Android應用程序的功能?

這些應用程序是封閉源代碼,因此無法以任何方式進行修改。我認爲應該在測試設備(iPhone,iPad,Galaxy Tab,Galaxy S II)上部署測試應用程序,但我必須能夠遠程控制它。我的意思是,我想在測試設備和PC之間創建一個連接,將測試腳本從PC上傳到設備,運行它們並將測試結果下載到PC。測試腳本應該啓動要測試的應用程序,操作其GUI(填充編輯框,按鈕等),並以某種方式跟蹤其響應,例如通過分析GUI(GUI元素的存在,它們的標題等) ,分析屏幕截圖,和/或檢查IP數據包。我爲Windows編寫了很多類似的測試程序:我使用了ShellExecute,PostMessage,FindWindow,WinPcap庫等,因此我知道這樣的程序應該如何工作。但是因爲我從來沒有爲移動操作系統編寫應用程序,所以我甚至不知道iOS和Android是否有類似的API和庫。

我想知道從哪裏開始,我的意思是,可以使用哪些SDK和開發人員工具編寫這樣的應用程序。我也對商業解決方案感興趣。我真的很感激任何幫助。

+1

「測試腳本應該啓動應用程序進行測試,操縱其GUI(填充編輯框,按鈕等)」iOS不可能(可能與越獄),不知道有關Android – msk

+0

@MSK謝謝。這是個壞消息:(是否可以在模擬器上運行Mac OS X上的iOS應用程序,並將其自動化,就像是桌面應用程序一樣? – kol

+1

如果您使用鼠標/鍵盤宏,我不明白爲什麼,對於android,您可以查看monkeyrunner http://developer.android.com/tools/help/monkeyrunner_concepts.html – mario

回答

12

我喜歡 「Calabash-iOS/Calabash-Android」 由LessPainful。這對我來說是最好的。

  • 免費
  • 在iPhone和Android提供
  • 記錄和回放
  • 對本地測試和仿真

他們沒有一個GUI IDE。它們都是基於Ruby的解決方案,這是很容易寫測試用例腳本,像這樣:

Then I swipe left 
And I wait until I don't see "Please swipe left" 
And take picture 

此外,它可以

Then I touch the "login" button 

到輕按一鍵,或

Then I fill in "placeholder" with "text to write" 

將某些內容寫入文本框。

腳本可以由Calabash-iOS和Calabash-Android共享。該功能對於開發iPhoneApp和Android App的開發人員非常方便。

我認爲MonkeyTalk很好,但實際上不穩定,至少在我的環境中。
有時MonkeyIDE崩潰,所以我們必須做MonkeyTalk的調試...

我希望這可以幫助你。

+0

非常感謝! – kol

4

MonkeyTalk看起來很有希望。從大猩猩邏輯website特點:

  • 免費&開源
  • Automated的的iOS,安卓,HTML5和Adobe Flex應用程序測試
  • 跨平臺記錄和回放
  • 測試本地,網絡,或混合應用程序,在iOS模擬器,Android 模擬器或真實設備(不需越獄)
  • 從簡單的「冒煙測試」到複雜的數據驅動的一切 個測試套件

包跟蹤:iOSAndroidAndroid

3

如果腳本是您在android上的優先解決方案,則可以在安裝Scripting Layer for Android後輕鬆導入並運行腳本。只需下載最新的apk文件,導入腳本並運行它。這在iOS上不可用,但您的一半問題可以通過此解決。

4

Selenium爲移動設備和仿真器提供驅動程序。這是一個Google項目。他們有很好的文檔。它有一個用於測試套件快速原型的IDE,並支持諸如ruby,PHP,c#等多種語言,

1

我們在testmunk編寫了一本關於如何開始使用移動自動化的指南。本指南解決了android以及iOS的具體問題,並列出了您需要的所有工具。它基於葫蘆開源框架。

文章目前位於:http://blog.testmunk.com/tutorial-for-automated-mobile-app-testing-calabash/ 在這篇文章中,您還可以找到幾個示例應用程序的鏈接。

我希望這會有所幫助。

+0

SO回答的目標格式旨在自成一體,它必須實際回答問題:鏈接和外部引用對回退是很好的,但至少應該總結一下他們的相關內容。我建議至少通過鏈接中提到的SDK和實用程序列表來回答問題(也許它們的相關性以測試)在答案。 – dho

-1

我知道這是一箇舊帖子,但任何一個閱讀2016年自動化的首選應該是Appium(適用於IOS/Android)。上面提到的所有工具都必須使用App來構建。 Appium確實需要與App代碼一起構建。它非常受各種編程語言支持(PHP/JAVA/RUBY/PYTHON)的歡迎。 [鏈接]:appium.io和[鏈接]:https://github.com/appium/appium

相關問題