これは最も包括的で、0 から 1 まで実装されたアプリ自動化テストのアイデアをまとめたものであると言われています。


序文

1. プログラミング言語の選択

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

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

初心者にとって、Python は構文が簡潔で読みやすく、習得が簡単です。
スクリプト作成をより効率的にする強力なサードパーティ ライブラリがあります。
Python の Pytest 自動テスト フレームワークは、現在最も人気のあるテスト フレームワークの 1 つです。

2. UIテストフレームワークの選択

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

Appium
はオープン ソースです。Appium
サーバーは Windows、macOS、Linux での実行をサポートしています。Python
、Java、JavaScript、Ruby などの複数の主流プログラミング言語をサポートしています。Android
、iOS、H5 自動テストをサポートしています (統合された UiAutomator、UiAutomation フレームワーク) );
環境 構築はより複雑です。

Airtest
は 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 のみをサポートしています)

4. 単体テストフレームワークの選択

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

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

Python の主流の単体テスト フレームワーク:
Unittest (Python 独自の単体テスト フレームワーク)、
pytest (unittest に基づいて開発され、使いやすく、より詳細な情報があり、多くのプラグインを備えています)、
ロボット フレームワーク (Python ベースのキーワード駆動型テスト フレームワーク) 、インターフェイスがあり、完全に機能し、明確で美しいレポートとログが付属しています。

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

5. テスト環境のセットアップ

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

テスト用携帯電話の選択:
最初にテスト スクリプトをデバッグするときにエミュレータを選択できます; Gernymotion、Yeshen エミュレータ、詳細についてはブログ Android エミュレータの使用法を参照してください。

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

開発言語環境:
python3以降のバージョンのインストールを推奨 python2版は公式による更新・メンテナンスが停止されています。

UI自動テストフレームワークの環境構築:
Windows環境でAppiumを構築するには、ブログappium環境構築を参照してください。MacでのAppiumの構築は少し複雑です。後ほど共有します。

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

6. スクリプトの作成

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

ディレクトリ構造を決定する:
APP UI 自動テスト プロジェクトを開発するには、ページ オブジェクト デザイン パターンを使用することをお勧めします。ブログのページ オブジェクト デザイン パターンを参照してください。

テスト レポートの選択:
開発言語や単体テスト フレームワークが異なると、異なるテスト レポートを使用できます。Python では、unittest フレームワークは HTMLTestRunner または BSTestrunner を使用してテスト レポートを生成します。ブログ「unittest 単体テスト フレームワーク」を参照してください。Pytest フレームワークは、pytest-html を使用してレポートを生成したり、allure を通じてテスト レポートをカスタマイズしたりします。

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

7. Jenkins の統合

上記の手順に従ってアプリ UI 自動テスト プロジェクト全体を作成し、一定期間安定して実行した後、Jenkins の統合を検討できます。ブログ「Jenkins Integration Appium Automated Testing (Windows)」を参照するか、新しい Mac ノードを追加してくださいリモートのジェンキンスに送信します。

8. まとめ

要約すると、APP UI 自動化は次の方法で実装できます:
python + appium + Unittest + HTMLTestRunner、
python + appium + pytest + pytest-html/allure、
python + Airtest (AirtestIDE)、
python + Poco + pytest + pytest-html /魅力 ;

以下は、私がまとめた 2023 年の最も包括的なソフトウェア テスト エンジニア学習ナレッジ アーキテクチャ システム図です。

1. Python プログラミングの入門から習熟まで

画像の説明を追加してください

2. インターフェース自動化プロジェクトの実践

画像の説明を追加してください

3. Web自動化プロジェクトの実戦

画像の説明を追加してください

4. アプリ自動化プロジェクトの実践

画像の説明を追加してください

5. 一流メーカーの履歴書

画像の説明を追加してください

6. DevOps システムのテストと開発

画像の説明を追加してください

7. 一般的に使用される自動テストツール

画像の説明を追加してください

8. JMeter パフォーマンス テスト

画像の説明を追加してください

9. まとめ(最後にちょっとしたサプライズ)

勇気を持ち、夢を追い、苦労は成功を受け入れる旅です。どんなに大変でも、努力を続けて才能と知恵を開花させてください。自分の力を信じ、限界を超え、輝かしい人生を創造し、毎日を輝かしい闘いの絵にしましょう!

粘り強く追求し、困難を恐れず、奮闘することが栄光を描くペンとインクです。困難を勇敢に乗り越え、意志を磨き、たゆまぬ努力があってこそ、輝かしい人生を切り開くことができます。

前に進み、夢を持ち続け、奮闘することが無限の可能性を広げる鍵です。初志を貫いて頂点を目指し、勇敢に前進してこそ、輝かしい章を築くことができます。自分の力を信じ、信念を強め、才能を開花させ、輝かしい人生を創造しましょう!

おすすめ

転載: blog.csdn.net/m0_60054525/article/details/132084831