2013-04-03 56 views
1

我們有一個基於PhoneGap Sencha Touch的移動混合應用程序,我想在自動化測試中使用MonkeyTalk。 有人可以幫我嗎?提前致謝。MonkeyTalk是否支持PhoneGap Sencha Touch移動Hibrid應用程序?

我安裝了monkeytalk-1.0.40,效果很好。有了它,我可以很好地測試本地應用程序。

我用PhoneGap構建了一個混合應用程序,它非常簡單,唯一的代碼是加載Sencha Touch示例頁面: super.loadUrl(「http://dev.sencha.com/deploy/touch/examples/production/index.html」);

我也按照MonkeyTalk的用戶指南做了一切(www.gorillalogic.com/monkeytalk-documentation/monkeytalk-getting-started/install-agent/android)。

然後,一切都準備就緒,簡單的混合應用程序部署到設備模擬器。 MonkeyTalk IDE也可以連接到應用程序。 我記錄了一些操作(點擊一個字段並在其中鍵入了一些字符),但只記錄了一些「WebView * tap」動作(沒有分接位置信息)。當我重放它時,它也可以重放一些輕擊動作,但沒有位置,輕拍位置不正確。因此,我不得不手動編寫一些操作。我發現有時候「標籤點擊」操作可以起作用,但有時它會點擊不正確的元素。 當我進入表單頁面(Kitchen Sink - > User Interface - > Forms on dev.sencha.com/deploy/touch/examples/production/index.html)時,我玩了一個動作來挖掘一個領域,整個UI移動到屏幕的左側,非常奇怪。 而且,我試圖發送一些文本到「名稱」字段,什麼都沒有發生。

你知道這是什麼問題嗎?可以修復嗎?我應該怎麼做?

非常感謝你!

+0

你能幫忙嗎?非常感謝! 〜幫忙〜 – user2239510

回答

0

我用MonkeyTalk和Sencha相當長一段時間了。據我所知,MonkeyTalk爲當前視圖上的每個(Web)元素創建自己的ID(MonkeyIDs)。一旦一個元素得到了它的MonkeyID,它會保留它的剩下的測試。 問題是,Sencha並沒有爲它的WebElements首先創建唯一的ID。這種混淆因爲它根本不合邏輯。

無論如何,Sencha所做的就是生成ID通用名,以便它們在當前視圖中唯一。當您切換到另一個視圖並稍後回來時,所有元素可能具有不同的ID。也許你可以改變這個在Sencha設置...

這就是爲什麼MonkeyTalk無法爲這些元素創建MonkeyIDs,而MonkeyIDs是Monkeytalks唯一的方式來與元素進行交互,你根本無法點擊它們,發送文本到他們或以任何其他方式與他們互動。 迄今爲止發現的Sencha應用程序自動化的唯一解決方案是使用XPath並引用Element的標籤。但unfortunaly MonkeyTalk不支持......使用Sencha是不是最簡單的原因是什麼史蒂夫McGarret說測試

0

應用內置,但MonkeyTalk得到使用替代方法來完成這項工作在其documention web page:

解釋

MonkeyId也可以指定爲形式#N的基於1的(非零基)索引 。在這種情況下,MonkeyId標識當前顯示的指定類型的第N個 組件。組件 根據左上角位置被索引,即,通過(x,y)座標對分量進行排序。

想象一下,您希望自動註冊用戶。該頁面很可能包含多個輸入字段,但您不能使用其ID,因爲如果您導航到另一個視圖,它們將會更改。您可以執行以下操作:

  • 打開瀏覽器並使用其網絡檢查器(chrome:// inspect /#devices)查找您想要的元素。我們假設一個輸入框,其屬性爲「name」,值爲「firstName」。
  • 轉到MonkeyTalk並打開組件樹。按「輸入」一詞過濾。
  • 記下它在樹中的位置(例如3),並開始編寫腳本:
    • 輸入#3 EnterText約翰
    • 輸入#4 EnterText李四
    • (...)

就是這樣。 MonkeyTalk將完美地演奏你的劇本。 如果其他人有更好的解決方案來獲取組件樹中元素的位置,請讓我知道 - 否則,如果您的頁面有很多div /元素並且不值得冒險,那麼這是一個非常痛苦的過程。不妨使用另一個測試框架。

相關問題