技術共有

[Python appium] 自動テスト

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Python+appium 自動テストシリーズも終わりに近づいてきましたので、このブログでまとめてみましょう。

まず最初に説明したいのは、APP 自動テストは多くの企業で使用されているわけではありませんが、ほとんどの自動テスト エンジニアおよびシニア テスト エンジニアの求人情報でも必須であるため、より良い待遇を受けるためには、依然として結局のところ、それを習得するために時間を費やすことは誰にとっても、お金に困ることはありません。

次に、APP UI 自動テストのアイデアをまとめてみましょう。

1. 開発言語の選択
自動テストに一般的に使用されるプログラミング言語には、Python、Java、JavaScript、Ruby、C#、PHP などが含まれます。一般的には、自動スクリプトを作成するために使い慣れたプログラミング言語を選択しますが、プログラミングの基礎が基本的にゼロの子供 (または自動テストに重点を置く子供) の場合は、Python の使用を学ぶことをお勧めします。

他の言語と比較して、Python には自動テストに関して次の利点があります。

初心者にとって、Python は構文が簡潔で読みやすく、習得が簡単です。

スクリプト作成をより効率的にする強力なサードパーティ ライブラリがあります。

Python の Pytest 自動テスト フレームワークは、現在最も人気のあるテスト フレームワークの 1 つです。

2. UIテストフレームワークの選択
開発言語を選択したら、UI テスト フレームワークを選択する必要があります。現在、より主流または広く使用されている APP UI 自動テスト フレームワークには、Appium、Airtest などが含まれます。

1、アピウム
オープンソース

Appium サーバーは Windows、macOS、Linux での実行をサポートします

Python、Java、JavaScript、Ruby などの複数の主流プログラミング言語をサポートします。

Android、ios、H5 自動テストをサポート (統合された UiAutomator、UiAutomation フレームワーク)

環境構築が複雑になる

2、エアテスト
NetEase によって開発 (公式ドキュメント)、Python 言語のみをサポート

Airtest と Poco テスト フレームワークを統合した強力な IDE を提供し、初心者にとって非常に使いやすい

画像認識に基づく UI 自動テスト フレームワークである airtest を統合すると、コードを理解していなくても自動スクリプトを作成できます。

クロスプラットフォームで、Windows、Android、iOS アプリケーション ソフトウェアの自動テストを実行可能

ゲームのテストがよりフレンドリーに

Airtest と Poco は本質的に Python 用の 2 つのサードパーティ ライブラリであり、テスト環境は Appium ほど複雑ではありません。

3. フレームを選択する
実際の状況に基づいて適切なフレームワークを選択してください。

次の状況では、NetEase の Airtest (Airtest 公式 Web サイト) を優先できます。

プログラミングの基礎がない

ゲームのテスト

テスト シナリオは比較的単純です (Appium は比較的容量が大きくなります)

Alipay mini プログラムの自動化 (ブロガーは現在、Alipay mini プログラムの自動テストに Airtest と統合された Poco フレームワークを使用しています)

次の状況では Appium を選択することをお勧めします。

テスト シナリオは比較的複雑です (たとえば、複数の携帯電話のバッチ テストが必要です)。

テスト スクリプト言語が Python ではありません (Airtest は現在 Python のみをサポートしています)

3. 単体テストフレームワークの選択
単体テスト フレームワークは、上記の UI テスト フレームワークとは異なり、テスト ケースの読み込み、テスト ケースの実行、アサート、テスト結果の出力などに使用されます。

さまざまな開発言語には、Java の場合は JUnit、TestNG、Robot など、Python の場合は Unittest、pytest など、対応する独自の単体テスト フレームワークがあります。ブロガーは主に自動テストに Python を使用するため、ここでは Python 単体テスト フレームワークについてのみ説明します。

Python の主流の単体テスト フレームワーク:

Unittest、Python 独自の単体テスト フレームワーク

pytest は、unittest をベースに開発されており、使いやすく、より詳しい情報があり、プラグインも豊富です。

ロボット フレームワーク、Python ベースのキーワード駆動テスト フレームワーク、インターフェイス、組み込みのレポートとログ、完全な機能、明確で美しい

ここでは、強力で使いやすい pytest を使用することを強くお勧めします。公式ドキュメントは英語です。中国語については、Pytest ユーザー マニュアルを参照してください。

4. テスト環境のセットアップ
1. テスト用コンピュータの選択
iOS アプリの UI オートメーションは Mac マシンでのみ実行できるため、可能であれば UI オートメーション テスト専用の Mac マシンを使用することをお勧めします。

2. 携帯電話の選択をテストする
初めてテスト スクリプトのデバッグを開始するときに、エミュレータを選択できます。Android エミュレータの場合は、Gernymotion または Yeshen エミュレータを選択できます。

テスト プロジェクト全体の開発が完了したら、実際のユーザーの使用シナリオに近づけるため、実マシンに切り替えて自動スクリプトを実行することをお勧めします。

3. 開発言語環境
Python 3 以降のバージョンをインストールすることをお勧めします。公式は Python2 バージョンの更新とメンテナンスを停止しています。

4. UI自動テストフレームワーク環境構築
Windows 環境での Appium の構築はもう少し複雑です。Mac での Appium の構築は、後で共有するためにブログを書きます。

Airtest フレームワークを選択する場合は、公式 Web サイトを参照してください。

5. スクリプトの作成
1. テストデモを作成する
テスト環境全体が正常に構築されたかどうか、および一般的なサンプルが実行できるかどうかを確認するには、通常、単純なテスト スクリプトを作成して実行する必要があります。これが成功した場合、それは環境全体が正常に構築されたことを意味します。

2. ディレクトリ構造を決定する
APP UI 自動テスト プロジェクトを開発するには、ページ オブジェクト デザイン パターンを使用することをお勧めします。

3. テストレポートを選択します
異なる開発言語や異なる単体テスト フレームワークでは、異なるテスト レポートを使用できます。 Python では、unittest フレームワークは HTMLTestRunner または BSTestrunner を使用してテスト レポートを生成します。 Pytest フレームワークは、pytest-html を使用してレポートを生成したり、allure を通じてテスト レポートをカスタマイズしたりします。

上記の手順が完了したら、テスト プロジェクトへのテスト ケースの追加を続けます。

6. Jenkins の統合
アプリ UI 自動化テスト プロジェクト全体が上記の手順に従って記述され、一定期間安定して実行されるようになったら、Jenkins の統合を検討できます。

7. まとめ
要約すると、APP UI 自動化は次の方法で実装できます。

1、Python + Appium + ユニットテスト + HTMLテストランナー

2、python + appium + pytest + pytest-html / アリュール

3、python + Airtest(AirtestIDE)

4、python + Poco + pytest + pytest-html / アリュール

実際の状況に応じて選択できます。

最後に、私の記事を注意深く読んでくださった皆さんに感謝したいと思います。それはそれほど価値のあるものではありませんが、もし使えるのであれば、直接受け取ることができます。

この情報は、[ソフトウェア テスト] の友人にとって最も包括的で完全な準備倉庫となるはずです。この倉庫は、最も困難な旅を乗り越えてきた何万人ものテスト エンジニアにも役立ちます。