2017-07-28 13 views
0

ちょうどE2Eテストの分度器を使い始めました。分度器を使って各ブラウザのパラメータを渡す

クロムセレンの各インスタンスにパラメータ(ログインとパスワード)を渡したいと思います。 異なるユーザーアカウントを持つ同じ仕様ファイルを並行してテストしたい。

これは私のconf.jsです:

capabilities: { 
     'browserName': 'chrome', 
     'chromeOptions': { 
      'args': ['--disable-web-security'] 
     }, 
     count: 10 
    }, 

答えて

0

コマンドラインでProtractor's paramsでこれを処理することができます。たとえば、次のような別のユーザー名/パスワードを使用して各テストを開始することができます。

logIntoMyApp(browser.params.username, browser.params.password); 

あなたが設定することもでき、デフォルト:

protractor conf.js --params.username user1 --params.password password1 

次に、あなたのテストでは、あなたは彼らにこのようなものを使用しますあなたの設定ファイル(詳細は、ドキュメントを参照してください)。

+0

は塩水と考えて、この

のようなものです。私の場合は、作成されたインスタンスごとにパラメータを渡します。 conf.jsの 'count:10'にcount属性を使用しました。したがって、すべてのクロムインスタンスでは、ログインとしてuser1、パスワードとしてpassword1を使用します。たとえば、最初のインスタンスはLogin1とPassword1を使用し、2番目のインスタンスはLogin2とPassword2を使用します。 –

+0

この場合、質問に十分な情報がありません。私はそれをもっと踏み出すことを提案し、あなたが本当に達成しようとしていることを含みます。例えば。あなたは負荷テストをしようとしていますか?がんばろう。 – Brine

0

分度器のonPrepare-methodを使用できます。複数の機能が実行されている場合、これは機能ごとに1回実行されます。実行中に使用できるブラウザオブジェクトにデータを追加できます。あなたは何ができるか

はあなたの再生のため

// A JSON file or something 
 
var login = { 
 
    "chrome": { 
 
    "user": "usernameChrome", 
 
    "pass": "passwordChrome" 
 
    }, 
 
    "firefox": { 
 
    "user": "usernameFirefox", 
 
    "pass": "passwordFirefox" 
 
    } 
 
}; 
 

 

 
// in your config 
 
// An example configuration file. 
 
exports.config = { 
 
    directConnect: true, 
 

 
    // Capabilities to be passed to the webdriver instance. 
 
    multiCapabilities: [{ 
 
     'browserName': 'chrome' 
 
    }, 
 
    { 
 
     'browserName': 'firefox' 
 
    } 
 
    ], 
 

 
    // Framework to use. Jasmine is recommended. 
 
    framework: 'jasmine', 
 

 
    // Spec patterns are relative to the current working directory when 
 
    // protractor is called. 
 
    specs: ['example_spec.js'], 
 

 
    // Options to be passed to Jasmine. 
 
    jasmineNodeOpts: { 
 
    defaultTimeoutInterval: 30000 
 
    }, 
 

 
    onPrepare: function() { 
 
    return browser.getCapabilities() 
 
     .then((capabilities) => { 
 
     // Get the current browser you are using 
 
     browser.browserName = capabilities.get('browserName').toLowerCase(); 
 
     // Add the user and pass to the browser-object 
 
     browser.user = login[browser.browserName].user; 
 
     browser.pass = login[browser.browserName] pass; 
 
     }); 
 
    } 
 
}; 
 

 
// In your spec 
 
describe('logon', function() { 
 
    it('should logon', function() { 
 
    browser.get('http://www.example.com'); 
 

 
    element(by.model('user')).sendKeys(browser.user); 
 
    element(by.model('pass')).sendKeys(browser.pass); 
 
    element(by.tagName('button')).click(); 
 
    }); 
 
});

関連する問題