2015-09-17 42 views
8

我們正在構建混合本機應用程序(Cordova/Phonegap/Angular/Ionic)。使用量角器導航到Appium中混合本機應用程序的Url

我在量角器中編寫端到端測試。當在本地運行時,它們針對由Ionic模擬器(離子服務器)服務的應用程序執行。這工作正常。

我也想在Sauce Labs(Appium)託管的平臺模擬器上對'打包/構建'應用程序運行相同的測試。這幾乎可行。

我現在遇到的麻煩是導航到應用程序。當本地運行,在試驗開始時我會瀏覽到通過離子託管應用程序:

browser.get('http://localhost:8100') 

這顯然在運行一個混合本機應用程序模擬器不起作用。我在測試啓動時檢查了瀏覽器的當前Url,它是:

file:///android_asset/www/index.html#/login 

這是有道理的,是正確的。但如果我嘗試:

browser.get('file:///android_asset/www/index.html#/login') 

不好的事情發生。

我找了兩個解決方案之一:

1)瞭解如何定位在模擬器網址混合本機應用程序運行

OR

2)不知何故有測試知道它在混合原生Cordova容器中運行並跳過導航到起始頁面(因爲應用程序由appium自動加載)。

謝謝。

+2

如果你想瀏覽一個'file://'協議,看看這個Q/A - [用量角器打開一個文件](http://stackoverflow.com/questions/24824491/opening-a -file與 - 量角器)。另外還有一個[移動設置]的量角器指南(https://github.com/angular/protractor/blob/master/docs/mobile-setup.md),其中有很多關於使用Appium設置量角器的信息。要識別模擬器,你可以實現一個方法'isCordova',它可以檢查User Agent或者使用[cordova-plugin-device](https://github.com/apache/cordova-plugin-device)來判斷當前的env是否是「移動「環境。 –

+1

如果您試圖在兩個完全不同的環境中運行相同的測試,可能值得擁有兩個配置不同的Protractor配置。 –

+0

謝謝@MichaelRadionov。我已經在使用單獨的量角器配置 - 當然需要通過離子模擬器設置Sauce/Appium v​​s本地服務器的憑證和功能。據我所知,移動設置適用於在「普通」移動瀏覽器中驅動應用程序 - 即:Chrome - 而不是測試混合原生應用程序。您指出的鏈接看起來非常有幫助。我會看看他們以後有沒有幫助。 –

回答

0

有點晚了,但如果我正確地理解了問題,您只需要區分在本地運行和通過醬汁運行。既然你已經有兩個量角器文件,爲什麼不避免調用配置browser.get?還是有什麼明顯的我失蹤了?

+0

是的,這基本上是我所做的安德魯。我認爲這是一個輕微的工作,因爲在某個時候我會想寫一個新的套件來測試一個已知的位置。通常情況下,我認爲這是通過將瀏覽器導航到「開始」來完成的 - 只要該特定套件將開始驅動該網站。對於移動應用程序,我無法設置「開始」頁面。現在我已經採用了一種慣例,即登錄測試首先進行,然後每個其他測試(假設經過驗證的用戶)必須以「主頁」視圖開始並結束。 –

+0

嗯......好吧,有'baseUrl'屬性和'browser.getUrl('/')'應該導航到開始。只要你繼續使用相對路徑,在應用程序中導航就不會有問題。 –

相關問題