みなさんこんにちは。
アプリケーションのテストがソフトウェア開発の重要な段階であることは秘密ではありません。Webアプリケーションを開発している場合は、Webインターフェイスをテストするだけで済みます。 幸いなことに、この目的のためにSeleniumのようなツールが存在します。 有名企業のSKB KonturとYandexは、アプリケーションとサービスの機能テスト用ツールとしてすでに選択しています(Yandexは最近のYaCでこれについて話しました)。
ここまでがポイントです。
私が取り組んでいるプロジェクトの1 つでは 、最初のブランチからSeleniumを使用しました。 しかし、時間が止まることはありません。 ウェブドライバー技術に基づいたSelenium 2.0は、より機能的で便利で、ブラウザ内のイベントを正しく模倣しています( 利点についてはこちら )。
アプリケーション内の古いSeleniumサポートコードを更新しないように(複数回行う必要がある場合はどうなりますか?)、また、他の開発者にとって有用なことをしようとするために、すぐにSeleniumと別のライブラリに統合することにしました。
次に、私たちがしたこととこのライブラリの使用方法について説明します。
設置
ライブラリはhttps://github.com/dragoon/django-seleniumから取得するか、pip経由でインストールできます。
pip install django-selenium
特徴
まず第一に、このライブラリを使用すると、 djangoテストサブシステムと統合できます。 ライブラリでTestRunnerを使用するように設定で単純に指定できます。
TEST_RUNNER = 'django_selenium.selenium_runner.SeleniumTestRunner'
または、それを継承して独自のクラスを作成します。
舞台裏では、 SeleniumTestRunnerは次のことを行います。
- selenium-server.jarサーバーを開始します
- テストフィクスチャを使用してテストサーバーインスタンスを起動します
標準ドライバー拡張
標準操作のパフォーマンスを促進するために、ブラウザーと対話する拡張ドライバークラスdjango_selenium.testcases.MyDriverが記述されています。 URLのオープン、サイトへのログイン(djangoの標準形式)、cssセレクターを使用した要素の検索、要素の検索とクリック、ページ上のテキストの存在の確認、アラートテキストの受信などの操作が含まれます。 詳細については、 今のところMyDriverクラスのソースコードを参照してください。
テスト実行コマンドの置き換え
最後に、標準のdjangoテスト実行コマンドをセレンテストをサポートするコマンドに置き換えるには、次のようにアプリケーションのどこかでコマンドクラスを継承する必要があります。
from django_selenium.management.commands import test_selenium class Command(test_selenium.Command): def handle(self, *test_labels, **options): super(Command, self).handle(*test_labels, **options)
このコマンドは、2つの追加オプションをサポートしています。 - --selenium -Seleniumテストを含むすべてのテストを実行します
- --selenium-only -Seleniumテストのみを実行します
テストアプリケーション
上記を統合するために、1つのセレンテストを含む小さなdjangoアプリケーションを準備しました。
# selenium-server.jar wget http://selenium.googlecode.com/files/selenium-server-standalone-2.7.0.jar git clone git://github.com/dragoon/django-selenium-testapp.git cd django-selenium-testapp # SELENIUM_PATH vi settings.py # ./manage.py test --selenium-only ... ---------------------------------------------------------------------- Ran 1 test in 13.254s OK
すべてが正常に実行された場合、次の図を確認する必要があります。
いつものように、私はさらなる修正のためのコメントと提案、このライブラリがどれほど有用であるかについての意見を聞いてうれしく思います。そしてもちろん、他のギタババーからの修正に関する助けをうれしく思います。
ご清聴ありがとうございました。