16

按照设计,每次运行新测试时,Selenium 都会为您的 Firefox 配置文件创建一个新副本。我发现这个复制时间是一个相当大的瓶颈,尤其是在运行 100 次测试时。(重新复制配置文件需要 5-15 秒)。

有谁知道对此有任何覆盖行为?我希望我的 Selenium 服务器只重用相同的 firefox 配置文件。我知道这违反了“干净地设置测试装置”的理念,但这是我愿意采取的捷径,因为我的测试不会实质性地改变我的 Firefox 配置文件,足以危及未来的测试。

4

5 回答 5

8

我同意这是一个问题。每次都拥有一个新的 Firefox 进程副本很好,但是通过重新生成 Firefox 配置文件来使启动时间加倍有点矫枉过正。如果您在http://jira.openqa.org上打开错误报告并发送电子邮件至 patrick@browsermob.com 给我发电子邮件,我将很高兴确保我们得到适当的解决方案。

PS:我已经一次性解决了这个问题。我们使用相同的 Firefox 配置文件,只删除缓存和 cookie 数据库。但我真的应该将这个更改修补回 Selenium 源。

于 2009-04-07T13:08:09.133 回答
6

只需将下面的代码移到测试设置之外并进入夹具设置并保持 selenium 实例的全局(代码假定为 NUnit。)

[TestFixtureSetUp()]
public void FixtureSetup()
{
    selenium = New DefaultSelenium("localhost", 4444, "*firefox", "http://localhost/");
    selenium.Start();
    selenium.SetTimeout("30000");
    selenium.Open("/");
}

您的测试设置应如下所示:

[SetUp()]
public void SetUpTest()
{
    selenium.Open("default.aspx");
    selenium.WaitForPageToLoad("30000");
}
于 2009-04-03T17:20:59.980 回答
1

减少配置文件加载时间的一种小方法是从 firefox 配置文件中删除较大的文件。为此,请通过运行命令 firefox.exe -p 设置您自己的配置文件。创建配置文件后,进入选项并关闭 Web 测试不需要的缓存和其他绒毛。然后将您的配置文件复制到新位置并删除不需要的 sql 文件。(否则,当您再次打开它时,您会恢复使配置文件非常小的已删除文件)。当您开始 selenium 测试时,请在新位置引用您的配置文件。在此之前,我在每次测试启动时复制超过 50MB 的配置文件,现在它复制超过 3-4MB 的配置文件,启动时间几乎是即时的。

同样,这不是再次使用相同配置文件的方法,但它会减少您复制每个配置文件的时间。

于 2014-02-14T21:45:12.777 回答
0

使用 MSTest,我能够Firefox通过初始化WebDriverin ClassInitialize(and Cleanup) 而不是TestInitialize

static string path;
        static IWebDriver driver;
        static string baseURL;

        [ClassInitialize]
        public static void ClassInitialize(TestContext context) {
            DirectoryInfo di = new DirectoryInfo(Directory.GetCurrentDirectory());
            path = Path.Combine(di.Parent.Parent.Parent.FullName, "Tests\\bin\\debug\\");
            driver = new FirefoxDriver();
            baseURL = "http://localhost:5555/";
        }

        [ClassCleanup]
        public static void ClassCleanup() {
            driver.Quit();
        }
于 2012-07-10T15:52:04.840 回答
0

虽然这是一个老问题了!!Selenium 服务器或 RC 已过时,但 Selenium Webdriver 仍然存在同样的问题。通过 webdriver 启动 firefox 大约需要 30 秒。

但正如这里所解释的,有些人解决了这个问题“禁用未使用的网络适配器(位于控制面板\网络和 Internet\网络连接)

它被卡住了:

ExtensionConnection connection = connectTo(exe.binary, profileToUse, "localhost");

https://groups.google.com/forum/#!topic/selenium-users/a2fNfF-mD_E

虽然它对我不起作用,但可能有人想肯定地尝试一下!!

另一个出路可能是:

FirefoxProfile profile = new FirefoxProfile();
FirefoxBinary binary = new FirefoxBinary(@"path\to\firefox.exe");
FirefoxDriver driver = new FirefoxDriver(binary,profile);
于 2013-10-07T07:03:44.177 回答