web-dev-qa-db-ja.com

iOS自動テスト-XCTestvs Appium

特定の問題について、テストエンジニアやiOS開発者からの意見を求めています。

私はAppiumを1年以上使用していますが、実際のデバイスでモバイルWebテストを実行しているときにさまざまな問題に遭遇しました。 AppleがXCTestまたはSafariに変更を加えるたびに、Appiumは直接影響を受け(何かを修正したとしても、代わりに他の問題が発生します)、私がそうするようになりました。 m AUTの問題とは対照的に、Appium関連の問題の解決により多くの時間を費やしています。

さらに、とにかくAppium iOSテストを開発して実行するには、Appleコンピューターが必要です。したがって、XCTestを直接使用してSwiftなどを使用してテストを作成してみませんか? XCTestがサポートする言語?

AppiumとXCTest(Swiftなど)の両方の自動テストの経験がある人からのコメントや意見をいただければ幸いです。

Appiumを使用してiOSネイティブおよびWebアプリのテストをXCTestよりも自動化する利点は何ですか?

15
John Smith

すでに発見したように、Appiumの最大の欠点の1つは、サードパーティのフレームワークであり、AppleがXcodeをリリースするたびにほとんど壊れることです。これは=以降、変更される可能性は低いです。 Appleは独自のUIテストフレームワークを維持するようになりました。

Appiumを使用することには、他にもいくつかの利点があります。かなりの数の言語(Java、Ruby、Python、C#...)から選択できるため、非常に人気のある言語の1つでプログラミングできる人なら誰でもアクセスできます。おそらく、iOSとAndroidの同じアプリのテスト間でコードを共有します。

私の経験では、Appiumを使用している人はたくさんいますが、コミュニティサポートのレベルは、期待外れのメンテナンスレベルを補うものではありません。 AppiumのXcodeとの互換性の脆弱性は別として、いくつかの主要な機能がいくつかのバインディングで実装されていないままであることがわかりました。 Pythonでスクロールします。

UIテストでは、信頼性がフレームワークの最も重要な側面です。信頼性がなければ、問題を報告するためにテストを信頼することはできません。信頼がなければ、テストはあなたとあなたのチームにほとんどまたはまったく価値を提供しません。これが、サードパーティのフレームワークよりもXCTestをお勧めする理由です。

XCTestを使用すると、Xcodeのバージョンを更新できないことを心配する必要がなく、フレームワークはAppleのリリース標準に維持されます。すべてのiOSUIテストフレームワークと同様に、いくつかのバグがあります(特にピッカーの周り)が、フレームワークの安定性と、フレームワークがApple)によって所有されているという事実が、の欠点を上回っています。奇妙なバグ。

Appleは、XCTestを使用する上で重要な利点です。これは、Appleが、Appiumが依存するAPIへのアクセスを削除し、Appiumが一晩中動作を停止する可能性があるためです。歴史的に、Appleは、少なくとも1年の通知なしに、独自のフレームワークのサポートを単に削除するだけではありません。

XCTestを直接使用するには、Swift(推奨)またはObjective-Cを使用する必要があります。Appiumが提供する言語の選択肢はそれほど多くありませんが、両方の言語のサポートは、両方が使用するため一貫しています。同じ実装。Swiftは、特に大規模なプロジェクトでは、言語の強力な選択です。型安全性により、実行前に多くのプログラミングエラーに気付くことができるためです。どちらの言語も、優れたインテリセンス(autocomplete)を提供します。 )Xcodeでのサポート。これは、PythonやRubyなどの動的な」言語では、すぐには提供されないものです。

XCTestを取り巻くコミュニティは、UIテストでの使用に関する情報が増え、より多くの人々がXCTestを採用できるようになるにつれて成長しています。 UIテストに使用されるフレームワークの多くの部分は、単体テストに長年使用されてきたため、UIテストのサポートが追加される前に、多くの点で、その使用に関する多くの情報がすでに利用可能でした。

どちらのフレームワークも同様の概念を使用しています。XCUIApplicationはAppiumのドライバーに似ており、画面に表示されているものにアクセスできます。両方のフレームワークによって提供される機能のレベルはほぼ間違いなく非常に似ているため、優先順位がどこにあるかによって異なります。信頼性(XCTest)または他のプラットフォーム間での再利用性と言語のアクセシビリティ(Appium)です。

17
Oletha

AppiumとXCTestのいくつかの長所と短所:

XCTestを支持して:

  • Xcode/iOSの新しいバージョンがリリースされたときに、互換性の問題が発生する可能性が低いApple独自の製品
  • テストはより効率的に実行されます(より速く、ランダムエラーが少なくなります)
  • 記録/再生機能により、オブジェクトを識別するのが難しい人にとっては、間違いなくオブジェクトの識別が容易になります。
  • Appiumよりもセットアップがはるかに簡単です(特にiOS 10以降)

Appiumを支持して:

  • AppleおよびAndroid自動化スイート全体でより多くのコードの再利用を許可します

  • 互換性のある言語のより多くの選択肢

  • Cucumberフロントエンドコードと互換性があります

両方のツールには他にも長所と短所がありますが、両方を使用したことで、これらが主なものだと感じています(私の個人的な意見では)

10