Python+Selenium フレームワーク設計記事 1 - 数 K の価値があるフレームワーク、読まなくても後悔しないでください、古くなるのを待たないでください

1. 自動テストフレームワークとは何ですか

  自動テスト フレームワークとは何かを理解する前に、まずフレームワークとは何なのかを理解しましょう。フレームワークは、システムの全体または一部の再利用可能な設計であり、一連の抽象コンポーネントとコンポーネント インスタンス間の対話メソッドとして表現されます。別の定義では、フレームワークはアプリケーション開発者がカスタマイズできるアプリケーションのスケルトンであると考えられます。前者は用途の観点から、後者は目的の観点から定義されます。

正義の。フレームワークの定義から、フレームワークは再利用できる基本的なプラットフォームであることがわかりますが、フレームワークは組織構造のようなものであることもあります。フレームやフレームはもともと整理や分類に使用されるため、実際には後者の方が適切です。

  したがって、自動テスト フレームワークの定義は、1 つ以上の自動テスト基本モジュール、自動テスト管理モジュール、および自動テスト統計モジュールで構成されるツールの集合です。

  フレームワークの定義によれば、自動テスト フレームワークは、基本機能テスト フレームワーク、管理実行フレームワークに分けることができ、さまざまなテストの種類に応じて、機能自動テスト フレームワーク、パフォーマンス自動テスト フレームワークに分けることができます。テスト段階は、ユニット自動テスト フレームワーク、インターフェイス自動テスト フレームワーク、システム自動テスト フレームワークに分けることができます。

構成構造に応じて、単一の自動テスト フレームワーク、包括的な自動テスト フレームワークに分けることができ、展開方法に応じて、スタンドアロンの自動テスト フレームワーク、分散型の自動テスト フレームワークに分けることができます。

  Baidu Encyclopedia では次のように定義されています。 自動テスト フレームワークは、自動テストで使用されるフレームワークです。フレームワークの定義に従って、自動テスト フレームワークは、次のような再利用可能な基本的な自動テスト モジュールを提供します。 Selenium [1]  、watir など、プログラムを開く、マウスをシミュレートするなど、主に最も基本的な自動テスト機能を提供します。

カーソルとキーボードを使用してテスト対象オブジェクトをクリックまたは操作し、最終的にテスト対象オブジェクトのプロパティを検証してプログラムの正しさを判断する、または自動テスト実行および管理機能を提供できるアーキテクチャ モジュール (Phoenix Framework など)ロボット [2]  ,スタッフ[3]  など、それ自体では基本的な自動テストのサポートは提供せず、組織、管理、実行のみに使用されます。

これらの独立した自動テスト ケースを実行し、テスト完了後にテスト結果をカウントします。通常、そのようなフレームワークは、次のような基本的な自動テスト モジュールを統合します。ロボット フレームワークは Selenium を統合できます [4]  フレームワーク、Phoenix Framework は Selenium フレームワークとも統合されています。

  簡単に言うと、自動テスト フレームワークはいくつかの標準、プロトコル、ルールで構成され、スクリプトを実行するための環境を提供します。自動テスト フレームワークは、ユーザーがいくつかの作業を効率的に完了するための多くの利便性を提供します。たとえば、明確な構造でスクリプトを開発し、複数の方法とプラットフォームでスクリプトを実行し、スクリプトの実行結果を追跡する優れたレポートを作成できます。

フレームワークにはいくつかの利点があります。

1) コードの再利用

2) 最大のカバレッジ

3) 非常に低いメンテナンスコスト

4) 人間の介入はほとんどない

5) 簡易レポート出力

2. なぜテストを自動化するのでしょうか?

①、ブラックボックステストの回帰効率が低い

②、手動テストの偶発性と不確実性

③回帰のカバーが不十分

④.納品された製品の品質は評価により異なりますので保証するものではありません

⑤. システムが複雑になるほど問題も多くなる

⑥. 長いオンライン時間とコンポーネントの高い故障率によって引き起こされるバタフライ効果 (高速な反復、より多くの残業)

3. 自動テストで解決できる問題は何ですか?

①. トラブル発生後の対応率の向上

②.返品コストの削減

③.回帰カバレッジの向上

④、回帰効率の向上

⑤. 回帰の安定性の向上

4. 自動テストの欠点は何ですか?

①. コスト投入は削減できないが、テスト結果のフィードバックを迅速化し、テスト品質を向上させる

②. 自動化はバグの発見ではなく、回帰とスモークに適しています。

③. 録音・再生機能は味気なく、可視化もよろしくない

④. すべてのシステムのすべての機能が自動テストに適しているわけではありません

5. 共通テストフレームワークの分類

Selenium 自動テスト開発者の多くは QTP から移籍しているため、彼らが初期段階で設計したフレームワークは次のカテゴリに大別できます。

1) モジュールベースのテストフレームワーク

2) ライブラリ(Library)構造テストフレームワークに基づく

3) QTP によく似たデータ駆動型テスト フレームワーク

4) キーワード駆動テスト フレームワークも QTP からのものです

5) 混合テストボックス、3 4 および複合テストボックス

6) 動作駆動型開発テストフレームワーク

 ここでは、これらのフレームワークを 1 つずつ紹介するわけではありません。文字通り、これらのフレームワークの背景やコンポーネントについてはご想像いただけると思います。この記事では、フレームワークの基本的な理解のみを行います。

6. フレームワークの基本コンポーネント

フレームワークのコンポーネントについて考えてみましょう。

1) 設定ファイルの管理が必要

2) ビジネスロジックコードとテストスクリプトの分離

3) レポートとログファイルの出力

4) カスタムライブラリのカプセル化

5) スクリプトの管理と実行

6) サードパーティプラグインの導入

7) 継続的インテグレーション

説明:

      一部の環境情報、スイッチを制御するには構成ファイルが必要であり、構成ファイルは txt/xml/yaml/properties/ini にすることができます。一般に、.properties は JAVA でよく使用されます。この記事は Python シリーズです。 iniファイルを選択します。

       Selenium の学習を最初に開始したときとは異なり、ビジネス ロジック コードはテスト スクリプトから分離されており、コードとスクリプトはクラス ファイルで示されています。コードのリファクタリングや再利用はまったく使用しませんでした。コードとユースケースファイルが分離されると、より明確になり、より多くの人がスクリプトを開発できるようになり、デバッグに便利になります。

       レポートとログ ファイルの出力、実行したケースの数、およびケースの結果を表示するには、すべてレポートが必要です。通常、この機能を実現するにはサードパーティのプラグインが使用されます。多くのレポート形式は HTML であり、シンプルで簡単です。クリア。ログ出力も非常に重要で、エラーが発生してスクリプトの実行に失敗した場合は、ログを使用して問題の場所をすぐに特定します。

      ユーザー定義ライブラリ、これは理解しやすいです。関数の多くは繰り返し呼び出す必要があるため、ブラウザ エンジン クラスやベースページのカプセル化など、毎回簡単に呼び出せるようにパブリック メソッドを作成し、ツールキットの下に置きます。ぴー。

      スクリプトを管理および実行する方法、たとえば、Python の単体テスト フレームワークの Unittest が非常に頻繁に使用されます。

      サードパーティのプラグイン。ファイルのアップロードとダウンロードを実現するために、AutoIT など、一部の機能をより適切に実装するためにサードパーティのプラグインが必要になる場合があります。サードパーティのレポート プラグインを使用して、HTML 形式に基づいてテスト レポートを生成することもできます。

      継続的インテグレーション、git、svn、ant、maven、jenkins、これを jenkins に統合して継続的インテグレーションを実現し、ワンクリックでテスト スクリプトを実行します。

7. 自動化フレームワークの概要設計

フレームワークの基本コンポーネントの特徴に関する上記の紹介に従って、次の図を使用してそれを説明すると、単純な自動テスト フレームワークには、構成ファイル、フレームワークのメイン コード、製品ビジネス ページ、テスト スクリプト コレクション、ログとレポート、継続的インテグレーションなど、これらのコンポーネントについては、現時点では思いつく限りの数しかありませんが、後でホン兄弟のことを思い出したら、さらに改善するつもりです。

8. 自動化フレームワークの詳細設計

上記のフレームワークの概念設計の特徴の紹介に従って、ホン兄弟は次の図を使用してここで詳細に説明しています。シンプルで実用的な自動テスト フレームワークには次のコンポーネントが含まれます。ホン兄弟は現在ここで改良中であり、後でこのフレームワークのコードを github に公開する予定です。興味と有能なマスターは、この自動テスト フレームワークに提案や改善を提供することを歓迎します。

9. まとめ

  以上でフレームワークの簡単な紹介を終わりますが、フレームワークというと複雑すぎると思われる方もいらっしゃいますが、フレームワークとは、ある目的を達成するためのソフトウェアの集合体にすぎません。ここで描いたフレームワークは、単純な自動テストフレームワークです。笑わないでください。これは、確かに、必要なコンポーネントを含む自動テストフレームワークを設計する単純な例です。この設計思想とアイデアを学べば、それはレベルに達しています。自動テストの第 2 段階の特徴: 自動テスト フレームワークを簡単に設計し、そのフレームワークを維持できる機能。

さて、今日のシェアはここまでです!辛抱強く読んでいただきありがとうございます。

おすすめ

転載: blog.csdn.net/nhb687095/article/details/131640242