web-dev-qa-db-ja.com

Protractor multiCapabilities configを使用してe2eテストを実行しますが、最大Webdriverインスタンスを制限します

コンテキスト

MultiCapabilitiesconfigオプションを使用して新しい分度器0.19.0を試しています。ドキュメントで説明されているように実際に機能しています:

  1. 複数のブラウザーでテストを実行するのが簡単になります(うなり声もスクリプトも必要なく、1つの構成ファイルのみ)。
  2. テストを並行して実行します

2番目のポイントは私にとって問題です。私のアプリの1つはデータへの複数の接続を処理せず、テストが失敗したことを意味します。

私の質問は:

このアプリの並列テストを無効にするために、Webdriverのインスタンスの最大数を制限することは可能ですか?

私が試したこと

Selenium Webdriverjs Grid2 wiki で、私の場合に完全に適合するmaxSessionパラメーターがあることがわかりました!しかし、分度器の設定に追加しようとしましたが、成功しませんでした。

maxSessionDesired Capabilities にあります。それがまだ機能しているかどうか誰かが知っていますか?

これが multiCapabilities PRトピック へのリンクです。そこにコメントを残しました。

さらに情報が必要な場合は、お気軽にお問い合わせください:)

前もって感謝します!!

編集:専用 GitHubの問題

EDIT2:最近、分度器の設定にseleniumArgs: ['-maxSession=1']を追加しようとしましたが、残念ながらこれも機能しません...

14
glepretre

このコミット で実装され、0.24.0でリリースされました( 分度器の変更ログ を参照)。

maxSessionsオプションを値> = 1で分度器設定ファイルに追加する必要があります(それ以外の場合は無制限と見なされます) 。

protractor.config.jsの例:

exports.config = {
  seleniumAddress: 'http://127.0.0.1:4444/wd/hub',

  specs: [
    '../e2e/**/*.js'
  ],

  multiCapabilities: [
    {'browserName': 'chrome'},
    {'browserName': 'firefox'},
    {'browserName': 'phantomjs'}
  ],

  maxSessions: 1,

  baseUrl: 'http://localhost:8000'
};

私の場合、テストされ、期待どおりに機能しています。

21
glepretre

これは、コマンドラインでSeleniumノードを起動し、次のように指定することで設定できると思います。

MaxInstancesこれは....同じバージョンのブラウザのインス​​タンスがリモートシステム上でいくつ実行できるかを示しています。

または

MaxSessionこれは....リモートで一度に並行して実行できるブラウザの数(任意のブラウザと任意のバージョン)システム。したがって、これは最大インスタンス設定を上書きし、並行して実行できるブラウザインスタンスの数を制限できます。

この回答から

したがって、ノードをそのように実行します。

Java -jar Selenium-server-standalone-2.14.0.jar -role node  -hub http://******:4444/grid/register -maxSession 5 
3
Ziwdigforbugs