ホームページ  >  記事  >  バックエンド開発  >  Web自動テスト (3) Selenium+beatuifulsoup

Web自動テスト (3) Selenium+beatuifulsoup

little bottle
little bottle転載
2019-04-10 13:14:572052ブラウズ

Selenium の自動テストや関数の使い方については、基本的なチュートリアルがインターネット上にたくさんあるのでここでは書きませんが、他のチュートリアルや公式サイトを参照してください。この記事では主に、Web自動化テストのソリューション設計と編集者が個人的に考える難しさについて説明します。

システム アーキテクチャ

以下に示すように、バックグラウンドでの自動テスト フレームワーク (この図の Web 拡張機能のアーキテクチャの一部) に基づいて、その他の部分は社外秘のため画像には掲載しておりません)、Seleniumを拡張しました Seleniumをベースにページオブジェクトの設定を拡張し、リトライ倍増遅延待ち時間機構を導入して設定成功率を向上しました。ページ アクション モジュールは、ページ アクションを均一に実装します。1 つの関数が 1 つのアクションを実装し、各ページ アクションの独立性が保証されます。したがって、新しいバージョンで実行ステップの異なる組み合わせを追加する必要がある場合は、内部の関数を呼び出すだけで済みます。

データ取得モジュールは、データベースデータ取得モジュール、ページデータ取得モジュール、Webアプリケーションログデータ取得モジュールの3層に分かれています。このようにして、チームのさまざまなメンバーを編成するのが簡単になり、各人が最も得意なモジュールを実装して迅速に統合できます。

Web自動テスト (3) Selenium+beatuifulsoup

Web 自動テストの大きな需要源はブラウザ互換性テストであるため、フレームワーク設計では複数のブラウザを同時にテストする方法を考慮する必要があります。ブロガーの計画は、テスト ケース セットを各ブラウザ インスタンスに配置し、それらを 1 つずつ順番に実行することです。

ページ要素の定義と分析

Web 自動化テストでは、ページ要素の配置が常に困難でした。開発者によって実装されたコードは標準化されていません。それにも関わらず、自動テストを実装する場合は、可読性と保守性が非常に悪いため、css や xpath を使用して定義することは避けるべきです。 ID、名前、クラス名を使用して定義してみてください。 ID、名前、クラス名のない一部の要素に対応して、find_elements_by_tag_name を使用してその属性を解析して要素を見つけるか、find_element_by_xpath("..")、find_element_by_xpath("../..") を使用して上位の要素を見つけてみます。または優れた要素。

beatuifulsoap を使用して解析する

Beatuifulsoap は、その強力な解析機能により、多くのクローラーで使用されています。クローラー機能は自動テストのあらゆるニーズに確実に応えます。ブロガーは、find_element_by_xx(table_id).get_attribute('innerHTML') と Beatuifusoup を組み合わせました。現在のプロジェクトでは、解析して特定できない要素はほとんどありません。たとえば、特定の動的 ID または名前がある場合、最初に次に、他の属性を解析して ID または名前を特定し、find_element_by_xx を呼び出すことで、完璧な位置決めソリューションを実現できます。お母さんは、開発者が ID や名前の値を記述していないことを心配する必要がなくなります。

[推奨コース: Python ビデオ チュートリアル ]

以上がWeb自動テスト (3) Selenium+beatuifulsoupの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。