セレン+ Python用のWebベースの自動テストフレームワーク

まず、セレンは何ですか?

セレンは、クロスプラットフォーム、クロスブラウザのWeb-to-endの自動化ソリューションを提供し、ブラウザベースの自動テストツールです。セレンIDE、セレンwebdriverをとSeleniumグリッド:セレンは主に3つの部分を含んでいます。

  • セレンIDE:Firefoxの拡張機能は、記録、および言語由来のテストケースの形に記録動作(例えば、Java(登録商標)、Pythonの、等)を再生することができます。

  • セレンwebdriverを:必要な自動化のWeb APIを提供し、主に使用するブラウザ制御、ページ要素とデバッグを選択します。異なるブラウザは異なるwebdriverをする必要があります。

  • セレングリッド:異なるブラウザで異なるマシン上でSeleniumテストを実行する機能を提供します。

この記事では、セレンwebdriverをウェブ自動テストフレームワークと連携してライブラリを構築するためのPythonを使用する方法を詳しく説明します。

第二に、自動テストフレームワーク

典型的な自動テストフレームワークの実施形態は、一般に、管理モジュール、自動実行制御、およびレポート生成モジュール互いに補完ログモジュールを含みます。

17039196-e85c08d647501f70.png
画像

次の各モジュールの論理ユニットが付属しています。

図1に示すように、管理モジュールケースと

ユースケース管理モジュールは、追加、変更、またはユースケースの書き込みモード、テスト・データベース管理、再利用可能なライブラリが参加する操作部を、削除しています。

2、オートメーションコントローラ

コントローラモジュールが実行される自動組織的なユースケースで、どのような方法は、我々のテストケースの実装の主な原因です。

3、レポート生成モジュール

ユースケースの実行後にレポートを生成するための主に担当し、HTML形式のほとんどは一般的な、情報は主にユースケースの実装です。また、電子メールの設定機能を送ることができます。

4、ログモジュール

主に、効率的なトラッキングの実装例およびユースケースの故障情報を調べるために、実施形態の実装を記録するために用いられます。

第三に、設計と自動化フレームワーク

1、分析を必要とします

まず、我々は、オブジェクトがテストケース管理、テスト実行制御部の生成、テストレポートやテストログを含めるには、このプラットフォームの設計フレームワークに基づいたWebプラットフォーム、あるテスト。

2、設計と実装

ページ管理

典型的な単一ページのアプリケーションにWebオブジェクトをテストする仮説は、私たちは、ページモードを使用します。ページモードとテストページ間のリンクがあり、各ページには、テストするための操作やページ要素の配置を提供するために、単一のクラスに抽象化されます。

BaseClassの親ドライバ部材としてサブクラスに位置するwebdriverをセレンを識別する唯一の変数、ページ要素を含みます。LoginClassとPageClassサブクラスとして、及び操作方法は、ページ要素の配置を提供することができます。たとえば、ログインページ。

17039196-71e2cb29e5a7585e.png
画像

ログインユーザ名、パスワード、および自動的に次のログインボタンをログ:ページからの要素があるに動作する必要があります確認してください。次のように具体的なコードは次のとおりです。

ページの親BaseClass.py

17039196-7a9b872fb0243989.png
画像

LoginClassがBaseClassのから継承され、要素の位置のログインおよび操作の実装。そして、コードのユーザー名・パスワードを見つけると、ユーザー名とオペレータのパスワードを追加します。

17039196-2f097d87b1186ed8.png
画像

公開ライブラリモジュール

その上、定数、公共の機能、ログ、レポート、およびなどのサービスのためのテストケースを作成するための公開ライブラリモジュール、。

Common.py

17039196-0ebea8fa1e18810b.png
画像

試験クラス情報を識別するために試験し、次のフィールドを含む場合の実行、実行結果の情報を含みます。

17039196-13a7b15081b89f0f.png
画像

主にテスト記録ステップとエラー情報の生成を実行するために使用されるログ、我々は、情報、警告、クリティカルおよびデバッグなどのロギングの異なるレベルの異なる情報を持っています。各テストケース生成のための少数のログエントリは、そうテストフレームワークは、情報の他のすべてのレベルをログに記録するデバッグレベルは、また、印刷される印刷ログの唯一の最高レベルを使用しているため。より簡単にログ出力を制御するために、特定の実装ではPythonの標準ライブラリのロギングライブラリを参照しました。

テストケースの倉庫

ユースケースの倉庫は、主に自動化されたテストケースを整理するために使用されます。各テストケースは、別々のクラスに抽象化され、そしてクラスがたunittest.TestCaseを継承します。ライブラリunittestのPythonはユースケースの実装の過程で、書き換えることができるテストケースのセットアップおよびティアダウン法を含むテストをサポートする豊富なフレームワークを提供します。ページの方法と行政と公共図書館のモジュールのページ実装の機能を頼りに、各テストケーススクリプトの書き込みは非常に明確かつ簡潔になります。

17039196-94297bb4e9cd4eb3.png
画像

このテストケースから、我々は見ることができます

  • セットアップは、テストケースの実装前に、作業のいくつかの例を定義します
  • テストを実行するためのティアダウンとクリーンアップ作業の書き込みを行うログファイル
  • (ユーザー名やパスワードなど)を変更することは容易非常に明確な試験手順、テストデータやテストのチェックポイント、
  • ただ、レベルのデバッグのログを記録するので、ちょうど同じ方法でログを使用してログを書き込みます

図3に示すように、例えば、実行モジュール

モジュールは、主にテストセットを形成するために、テストケーススクリプトバッチ実行の実行を制御するために使用されます。Pythonの標準ライブラリサブプロセスnosetestsの参考例の実行は、指定されたテスト・セット・ケースを実行するために実行するコマンドシェル。テストスイートは、.txtファイルのtestcases.txtを達成するためのプロセスを使用して、単純なテキストファイルです。

17039196-b8b053b263d92502.png
画像

かつての例ではそこには「#」マークテストスクリプトが実行されませんで、「#」マークが無視されますので、あなたは簡単に、テストセットの実行を制御することができ、もちろん、さまざまなテストを実行するために別のファイルを作成することができますセット。

第四に、モジュールを改善する必要性

達成するために、既存のテストフレームワークのために、我々は、Webオブジェクトの自動化のニーズを満たすために持っているが、いくつかのような、場所を改善するために改善することができます。

  • 実施例部分はデータドライバを使用しようと試みることができます。
  • より効率的なターゲティング要素について、セレンの二次関数をカプセル化することによって。
  • 統合は、連続的ではありません。

V.の概要

あなたが設計し、実装し、今後のWeb自動化フレームワークのWebベースの自動テストフレームワークのセレンは、軽量なだけでなく、柔軟性がないだけを達成し、迅速なフレームワークの設計Benpianといくつかの良い習慣を結合、自動化されたテストケースを開発することができますヘルプ、希望。

著者:呉関翔

出典:テクノロジーのCreditEase研究所

参考資料:データセット:CreditEaseアジャイルデータステーション建設の練習|シェアを記録

おすすめ

転載: blog.csdn.net/weixin_34044273/article/details/90914277