4

Selenium ドライバーを使用して WebinatorSpecFlow+NUnit で ASP.NET MVC 3 アプリを開発しています。Chrome (chromedriver を使用) と Internet Explorer で並列テストを実行すると問題が発生します。

両方のテストを同じセッションで実行し、Webinator を介して Selenium で並行して実行すると、ページにクリック アクションを送信すると IE がハングするように見えます。

SpecFlow は基になる C# コードを自動的に生成するため、ここで提案されているソリューションを使用できません。私のソリューションは次のように設計されています(完全なコードは Gist として入手できます)。

_multipleBrowsers.RunTest(web => web.GoToUrl("http://localhost/PROJECT/Authentication/Registration"));

何が起こるかというと、テストする必要があるすべてのブラウザーに対して新しい IWebManager をインスタンス化するということです。次に、ブラウザー インスタンスを使用してデリゲート アクションを呼び出します。こんなふうになります:

        foreach (var web in _webManagers)
        {
            Debug.WriteLine("Running test with " + web.Config.Browser);

            action(web);
        }

このようにして、テストはほぼ並行して実行されます。ブラウザをポップアップ表示し、アクションを実行してから、別のブラウザを実行します。

この ChromeDriver の問題を解決する方法について何か考えはありますか? 複数のブラウザーで SpecFlow を使用してテスト アプローチを変更する必要がありますか?


参考文献:

4

2 に答える 2