Seleniumからの移行

mablのような次世代の継続的テストソリューションを使用したいが、既存のSeleniumテストが失われるのではないかと懸念を持っている方もいるかもしれません。ご安心ください。Seleniumベースのテストの大部分は、mablに移行して自動的に修復することが可能です。これにより、今後、こういったテストをメンテナンスする必要もなくなります。Java、Protractor、.NET、Pythonのような各種Seleniumテストは、テストを実行するブラウザーとランタイム環境 (ローカル/リモートWebDriver、Selenium Grid、SauceLabs、BrowserStackなど) に関わらず、すべてmablに移行できます。

移行ツールを使用すると、Seleniumテストの作成に費やした投資の多くを保持しながら、mablのあらゆるメリットをすぐに活用できるようになります。ただし、移行ツールではSeleniumテストのアクションの大半 (クリック、テキストの入力など) がmablにインポートされますが、元のSeleniumテストの正確な複製を作成できないことに注意してください。たとえば、アサーションはSeleniumテストからインポートされないため、mablに追加する必要があります。

仕組み

Selenium移行ツールは、mabl CLIの一部です。簡単に説明すると、移行ツールは、テストとランタイム環境 (リモートWebDriverやSelenium Gridエンドポイントなど) との間にあるプロキシサーバーをポート8889で開始します。テストが実行されると、インポートツールがテストとランタイム環境間のSeleniumネットワークトラフィックをすべてインターセプトし、これらのリクエストをmablのテストステップに変換します。

Seleniumテストの移行を開始するには、以下の手順を実行します。

  • mabl CLIのインストール
  • 既存のSeleniumテストの軽微な変更
  • mabl CLIからのインポートセッションの開始
  • インポートしたSeleniumテストの実行
  • インポートしたテストのmablへの保存
  • mablでのテストのレビュー、更新、実行

以下は、例としてProtractorからmablへのテストの移行を説明した2分間のビデオです。他のSeleniumベースのフレームワークでも、作業の流れは同様です。

mabl CLIのインストール

最初に、ノードパッケージマネージャー (NPM) を使用してmabl CLIをインストールするか、最新バージョンに更新します。

npm install -g @mablhq/mabl-cli

既存のSeleniumベースのテストの変更

インポートを正常に実行するには、テストの設定を少し変更して、mabl CLIで実行されるプロキシがSeleniumのトラフィックをリッスンできるようにする必要があります。必要な変更は、使用されるプログラミング言語とSeleniumフレームワークによって異なります。

たとえば、プロキシが機能するために、Protractorテストでは設定を1行変更するだけで済みますが、Java Seleniumでは設定を少し変更してRemoteWebDriverインスタンスを初期化する必要があります。

Java

JavaベースのSeleniumテストをmablに移行するには、2つの方法があります。Java Selenium Agentを使用する方法と、言語に依存しないSelenium Proxyを使用する方法です。どちらの方法を使用すればよいか不明な場合は、Javaコードの変更が不要で、全体的に簡単なSelenium Agentを最初に使用することをお勧めします。各方法の詳細については、以下のドキュメントのページを参照してください。

Protractor

Protractorの設定ファイルに以下の設定を追加します。

webDriverProxy: 'http://localhost:8889',

Ruby

リモートWebドライバークライアン内のプロキシを構成します (http://localhost:9515 をリモートWebドライバーまたはSelenium GridのURLに置き換えます)。

client = Selenium::WebDriver::Remote::Http::Default.new
client.proxy = Selenium::WebDriver::Proxy.new(http: "http://localhost:8889")
driver = Selenium::WebDriver.for :remote, http_client: client, url: "http://localhost:9515"

こちらのGitHubレポジトリでは、mablへの移行に使用できる修正済みのSeleniumテストの例が提供されています。

テストのインポート

Seleniumテストを変更したら、mabl CLIで次のコマンドを使用してインポートセッションを開始します。

mabl tests import --name "My imported test"

localhost:8889をSeleniumのプロキシとして使用するようにテストを設定し、実行するように求められます。ほとんどの場合、Seleniumテストが完了するとインポートは自動的に停止しますが、テストの完了が適切に検出されない場合は、CTRL+Cを押してインポートを終了できます。

インポートセッションが終了すると、以下の操作が可能になります。

  • インポートされたステップの説明を表示する。
  • テストをローカルで実行する。
  • テストを保存する。
  • テストを破棄して終了する。

Importコマンドで--multiフラグを使用すると、複数のテストを一度にインポートできます。

mabl tests import --name "My imported test" --multi

複数のテストをインポートする場合、Selenium移行ツールが各テストの実行の終了と開始のタイミングを自動的に判断します。インポートしたすべてのテストはmablで同じ名前になり、末尾に番号が付けられます。

移行に関する考慮事項

移行ツールは、言語とフレームワークに依存しないように設計されていますが、あらゆる設計と同じように、いくつか考慮すべき制限事項があります。現時点では、以下のSeleniumアクションをmablテストステップとしてインポートできます。

  • ビューポートサイズの設定
  • URLへのナビゲーション
  • ページ上のエレメントのクリック
  • フィールドへのテキストの入力
  • KeyPressイベントの送信

最初のインポートの後、以下の項目のいくつかについて、mablテストを更新する必要があります。

  • さまざまな検証のアサーション
  • 変数の使用方法
  • ファイルのダウンロードとアップロードアクション
  • ドラッグアンドドロップアクション
  • 条件とループのロジック
  • ホバーアクション
  • Cookie

📘

サポートについて

Seleniumテストのmablへの移行に関するご質問やサポートが必要な場合は、アプリケーション内のチャットまたは[email protected]からmablサポートにご連絡ください。