8

現在、Android アプリ、ネイティブ Android アプリ、ハイブリッド Cordova/Phonegap アプリを自動的にテストするソリューションを探しています。

Google の UI Automator はかなり問題ないように見えますが、WebView を処理できないため、使用できません。次に、Selenium ベースの有望な自動化フレームワークAppiumを見つけました。これは、ハイブリッド アプリも処理できるはずですが、WebViews で動作させることができませんでした。いくつかの投稿が証明しているように、まだ完全には実装されていないようです。

Appium を試した後、 Selendroidのヒントを見つけました。これはハイブリッド アプリでも機能するはずですが、かなりバグが多く、コンピューター全体が常にクラッシュし続けます。

では、WebView を使用して Android アプリをテストするための実用的なソリューションを知っている人はいますか? 私はWindows 7に取り組んでいます。助けてくれてありがとう。

4

3 に答える 3

6

最初のケースでは、どのような種類のテストを実行したいかを知る必要があります。UI で機能テストを実行したいと思いますか? それがあなたの質問を読んだ後に私が考えることができることです。

したがって、これを特定の環境で分割します。

ネイティブ iOS

ネイティブ Android

phonegap/cordova アプリのようなネイティブ Web

native X - すべてのプラットフォーム向けのすぐに使えるソリューション

  • ここにいます。atmはありません。しかし..映像はここにあります:

Appium ベースの Gappium は、テストの作成に json を使用します。スレッドを正しく取得すると、現時点では Web/iOS でテストされました。Android/Win は現時点では統合されていないようです:

https://github.com/appium/io.appium.gappium.sampleapp

phonegap および apache cordova の機能テストに関する注意事項:

ハイブリッド アプリのテストには、ripple と Selenium を使用できます。一部のネイティブ関数/プラグイン (ハイブリッド アプリのネイティブ関数 ... =) はテストできないか、不明な方法でモックする必要があることに注意してください。その瞬間の映像です。

ここに画像の説明を入力

あなたのContinous Integration Serverに役立つかもしれません:

https://github.com/linslin/PHPUnit-selenium-HTMLGallery

于 2014-01-22T23:17:47.393 に答える
2

一般に、ハイブリッド アプリのテストは、API ベースのアプローチでは非常に困難です。それは可能ですが、通常、UI テクノロジー (WebView、Native、OpenGL など) をいくつかの API またはある種のラッパー (Selendroid など) と統合する必要があります。

TestObject (私は共同設立者の 1 人です) では、ハイブリッド アプリやアプリ間の相互作用などの場合に特化した画像ベースの UI テスト アプローチを作成しました。このブラックボックス アプローチは、画面のキャプチャのみに基づいています。

ハイブリッド Cordova/Phonegap アプリでお気軽に試してみて ( http://testobject.com/ )、UI Automator、Selendroid、Appium と比較してどのように機能したか教えてください。問題に遭遇した場合はお知らせください。

于 2013-09-11T14:09:05.857 に答える
1

私は、独自の Cordova アプリ ( sourceforge.net/p/ustadmobil/codehtml5cordova/ci/master/tree/ ) でこの課題に直面しました。これを Jenkins CI と統合する方法が必要でした。Cordova 固有のコード (ファイルシステム アクセスなど) があるため、PhantomJS と Grunt だけを使用することはできません。

基本的に私が行ったことは、エミュレーターで index.html としてテスト ページを使用してアプリを起動し、http サーバーを実行してから、テスト ページが AJAX を使用して結果を返すようにすることでした。

  1. スクリプトは、パッケージ
    $ /opt/adt/sdk/tools/emulator-x86 -avd $AVDNAME -qemu -m 2047 &
    $ EMULATEPID=$!でエミュレーターを起動します。
    $ adb wait-for-device #デバイスの起動を待つ $ adb shell input keyevent 82 #画面のロック解除

  2. qunit を使用してテスト ページを作成します。終了すると、AJAX 呼び出しでテスト結果が通信されます。

  3. その ajax 呼び出しをリッスンし、結果をファイルに保存する基本的な nodejs サーバー スクリプトを作成します。次に、bash スクリプトはそのファイルを読み取り、テストが成功したか失敗したかを判断できます。サーバー.js
  4. ビルド スクリプトで、結果ファイルが来るのを待ってから、エミュレーターと NodeJS サーバーを強制終了します - http://sourceforge.net/p/ustadmobil/codehtml5cordova/ci/master/tree/setup/android/unit-test-を参照setup-android.sh

また、注目に値する: このアプローチは、Cordova のクロス プラットフォームの性質で機能します。iOS、Windows Phone エミュレーターなどを実行する同じアプローチを取ることができるはずです (ほとんどのコードを共有する NodeWebKit デスクトップ バージョンに対してもこのテスト方法を使用します)。 .

お役に立てれば、

-マイク

于 2014-07-01T07:16:23.043 に答える