3

シンプルなリアルタイム Web アプリのテストを計画しています。このアプリは JavaScript で記述されており、ログインしているユーザーの「プレゼンス ステータス」が表示されます。userA がログに記録すると、ステータスが「非アクティブ」から「アクティブ」に変更されています。このアクションは、アプリケーションにログインしている他のすべてのユーザーに反映されます。ログインしている UserB は、変更する userA の存在をリアルタイムで表示します。

このシナリオをテストしたいと思います。テスト ハンドラーは 1 つのブラウザーを開き、書き込みアクションを実行し、同時に 2 つ目のブラウザーを更新します。

どのようなツールが利用可能ですか? これは WebDriver/WebDriverJs で実行できますか? WebDriver 経由で 2 つのスレッド/セッションを処理できますか? 例はありますか?

4

4 に答える 4

3

WebdriverJS を使用してそれを行うことができます。2 つの Webdriver インスタンスを作成し、それらをナビゲートするだけです。次に例を示します。

var WebdriverJS = require('webdriverjs'),
    assert      = require('assert'),

browser1 = new WebdriverJS({
    desiredCapabilities: {browserName:'chrome'}
}).init().url('http://github.com'),

browser2 = new WebdriverJS({
    desiredCapabilities: {browserName:'chrome'}
}).init().url('http://github.com');

browser1
    .setValue('#js-command-bar-field',['webdriverjs','Enter'])
    .getText('.sort-bar h3',function(err,text) {
        assert(text.indexOf('found 24 repository results') >= 0);
    })
    .end();


browser2
    .setValue('#js-command-bar-field',['linux','Enter'])
    .getText('.sort-bar h3',function(err,text) {
        assert(text.indexOf('We\'ve found 22,466 repository results') >= 0);
    })
    .end();

2 つの Chrome ウィンドウが開き、指示を個別に実行します。

于 2014-01-08T22:59:54.813 に答える
0

WebDriver でそれを行うことができますが、同じマシンで両方のブラウザーを実行したい場合は、異なるブラウザーを使用して 2 つの異なるセッションを持つことが最善の方法です。

したがって、ChromeDriver と FirefoxDriver を使用してみてください。アプリをテストするための 2 つの異なるセッションが用意されています。

于 2013-10-23T14:56:59.247 に答える