2017-03-11 25 views
0

2人のテストユーザーがいます(もう少し追加します)。いくつかのスペックファイルは、あるものと別のものを使用します。同じテストユーザーを使用する場合、2つのテストケースは一緒に実行できません。 私はすべての仕様をセレンのグリッドで実行したかったのです。私は最終的に、仕様ファイルを1つのクロムインスタンスを持つ1つのスペックユーザーと、もう1つのクロムインスタンスを使用してグループ化することに決めました。 (今のところ私は1つのクロムバージョンを使用しています) 問題は両方のクロムブラウザが同じバージョンであるということです。テストケースの2つのグループを並列に実行するにはどうすればよいですか。たとえば、テストユーザー1の場合はChromeインスタンス1で実行され、その他のテストケースの場合はChromeインスタンス2で実行されます。任意のbrowser_versionを追加して、マルチアクセス可能な2つのグループを分離しました。私はそれが働いているとは思わない。 これには優雅なソリューションがありますか? デバッグのために、テストで次の行を使って特定のテストが使用していたブラウザのバージョンを取得しようとしました。それはおそらく不可能です。分度器を使用した並行/並行テストの実行

(browser.multiCapabilities["browser_version"]).then(function(v){ 
    console.log("check:" + v); 
}) 

;

ただし、エラーが発生します。未定義のプロパティ 'browser_version'を読み取ることができません。

以下は、分度器設定ファイルのマルチ機能です。私はこれ以上のレベルでは "specs"プロパティを使用しません。

maxSessions: 2, 
multiCapabilities: [ 
{ 
    'browserName': 'chrome', 
    'browser_version': '11.0', 
    shardTestFiles: false, 
    maxInstances: 1, 
    maxSessions: 1, 
    count: 1, 
    specs: [ 'test/e2e/VE1-Spec.js', 'test/e2e/VE2-Spec.js' ] 
}, { 
    shardTestFiles: false, 
    'browserName': 'chrome', 
    'browser_version': '9.0', 
    maxInstances: 1, 
    maxSessions: 1, 
    count: 1, 

    specs: ['test/e2e/DG1-Spec.js', 'test/e2e/DG2-Spec.js'] 
}], 
+0

下記の私の解決策をご覧ください。 – win

答えて

2

下記のmultiCapabilities構成を試してください。これは私のためにうまくいきます。

multiCapabilities: [ 
    { 
     shardTestFiles: true, 
     maxInstances: 1, 
     sequential: true, 
     browserName: 'chrome', 
     specs: ['specs/spec1.js','specs/spec2.js','specs/spec3.js'] 
    }, 
    { 
     shardTestFiles: true, 
     maxInstances: 1, 
     sequential: true, 
     browserName: 'chrome', 
     specs: ['specs/spec4.js', 
      'specs/spec5.js', 
      'specs/spec6.js', 
     ] 
    } 

上記congfigurationは、二つのクロムインスタンスを起動し、クロムインスタンス1にSPEC1、SPEC2とspec3を実行し、3つの仕様を残存するクロムインスタンス2.

0

おかげSudharsan上で実行されるであろう。私は分度器の "逐次的な"特性に関する文書を見つけられませんでした。シーケンシャル・アウトをコメントアウトすることで、それも機能しました。私は、次しようとしたとき
しかしそれが働いた:

maxSessions: 2, 
multiCapabilities: [ 
{ 
    browserName: 'chrome', 
    name: 'CAPABILITY_1', 
    logName: 'LOGNAME1_USERNAME1_A', 
    shardTestFiles: false, 
    maxInstances: 1, 
    maxSessions: 1, 
    count: 1, 
    specs: [ 'test/e2e/VE1-Spec.js', 'test/e2e/VE2-Spec.js' ] 
}, { 
    shardTestFiles: false, 
    'browserName': 'chrome', 
    name: 'CAPABILITY_2', 
    logName: 'LOGNAME1_USERNAME2_BB, 
    maxInstances: 1, 
    maxSessions: 1, 
    count: 1, 
    specs: ['test/e2e/DG1-Spec.js', 'test/e2e/DG2-Spec.js'] 
}] 

これは、各行が、それを実行している機能を表示するには、特定のスペックのログ名を持っているとしても、ログファイルに2つの機能間の混乱を削除しているようです。私はちょうどSudarshanの場合、彼は分度器の別のバージョンを持っている可能性があります。

最後に、あなたのコードにあなたの能力(githubのconfig.tsから見つけ出されたもの)をあなたのコードに印刷して、

browser.getProcessedConfig().then(function(config) { 
    // config.capabilities is the CURRENT capability being run, if 
    // you are using multiCapabilities. 
    console.log('Executing capability', config.capabilities); 
}); 
関連する問題