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