2017-12-21 14 views
0

Amazon Web Services Device Farmでハイブリッドアプリをテストしようとしています。それはクラッシュします。ハイブリッドアプリケーションのAppiumテストはAWS Device Farmで動作しますか? 彼らは働いていると言うが、彼らはいつも働くのだろうか?Amazon WebサービスAppiumテストでハイブリッドアプリがクラッシュする

私の推測では、クラッシュはAWS chromedriverとデバイスクロムバージョンの不一致と関係していると思いますが、それが正しいかどうかはわかりません。

ハイブリッドアプリでAppium CapabilityやWebviewエラーを修正する方法があるかどうかを知りたいと思います。私は似たような例は見つけられません。

このエラーでテストクラッシュ:私はこのメッセージを見つけることができますログに

test failed: An unknown server-side error occurred while processing the command. Original error: Error occured while starting App. Original error: Error executing adbExec. 
Original error: 'Command '/opt/dev/android-sdk-linux/platform-tools/adb -P 5037 -s FA75W0301076 shell am start -W -n com.hola.mundo/.MainActivity -S -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -f 0x10200000' timed out after 20000ms'; Stderr: ''; Code: 'null' (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 100.72 seconds Build info: version: '2.46.0', revision: 
'61506a4624b13675f24581e453592342b7485d71', time: '2015-06-04 10:22:50' System info: host: 'ip-172-31-13-65', ip: '172.31.13.65', os.name: 'Linux', os.arch: 'amd64', os.version: '3.13.0-53-generic', java.version: '1.8.0_131' Driver info: io.appium.java_client.android.AndroidDriver 

Device01:16.640 9187 Error WebViewFactory Chromium WebView package does not exist 

私はシンプルな "Hello World" をこのようにAPK作成:

cordova create holamundo com.hola.mundo holamundo 
cd holamundo/ 
cordova platform add android 
cordova run android 

これはJava Appiumテストです。私のデバイス上でローカルに動作します。このテストでは、cordovaアプリからデフォルトのdivテキストを読み込むだけです。 私はMacOS High SierraにAppiumバージョン1.7.1とcordovaバージョン7.1.0を持っています。これがテストです。

public class LoginPage extends BasePage { 
    public LoginPage loginPage() throws InterruptedException { 
     try { 
      Set<String> contextNames = webdriver.getContextHandles(); 
      System.out.println(contextNames); 
      webdriver.context(AndroidSetup.Contexts.WEBVIEW); 
      WebElement loginButton = webdriver.findElement(By.id("deviceready")); 
      System.out.println("button text: " + loginButton.getText()); 
      takeScreenshot("", "pantallazo.png"); 
      Assert.assertEquals(loginButton.getText(), "DEVICE IS READY"); 
     }catch (Exception ex){ 
      ex.printStackTrace(); 
     } 
     return new LoginPage(driver); 
    } 

    public void takeScreenshot(String path_screenshot, String filename) throws IOException { 
     String currentContext = webdriver.getContext(); 
     System.out.println("current context: " + currentContext + " switching to " + AndroidSetup.Contexts.NATIVE); 
     webdriver.context(AndroidSetup.Contexts.NATIVE); 
     File srcFile=webdriver.getScreenshotAs(OutputType.FILE); 
     File targetFile=new File(path_screenshot + filename); 
     FileUtils.copyFile(srcFile,targetFile); 
     webdriver.context(currentContext); 
     System.out.println("current context: " + webdriver.getContext()); 
    } 
} 

私はパッケージとGoogleピクセル、サムスンギャラクシーS8とLGE LGのV20で、Amazon Webサービス・デバイス・ファームにこの同じテストを実行しました。このテストはGoogle PixelとSamsungの携帯電話でLGとクラッシュで動作します。

編集: ここで、AWS Device FarmのAppiumバージョンを選択するためのメニューです。エラーは3つのバージョンすべてで発生します。

Appium version selection

答えて

0

AWSデバイスファームはAppiumサーバ1.6.31.6.5、および1.4.16をサポートしています。

それはappiumサーバ1.7.1(つまり、最近のchromedriverバージョンを持っている)を使用してローカルにあなたのために働くのであれば、保証は、それがクラウドで古いものを上に動作しますが存在しません:1.6.5にローカルにダウングレードすると、まだそれかどうかを確認その古いクロムドライバーで動作します。

AWS UIに何も実行セットアップ時から存在しない場合=>その後、あなたはバイナリ

+0

こんにちはchromedriverカスタムを使用するchromedriverExecutableのような機能を設定することができます方法はありませんので、AWSデバイスのファームは、コードに設定されたすべての機能を無視します、@dmle、テストを作成すると、Appium Versions 1.6.3,1.6.5,1.7.1の中から選択することができます。それらのいずれにも作用しません。それはデバイスに依存し、Appiumのバージョンには依存しません。 – santi

関連する問題