【问题标题】:How to run Selenium system tests without requiring to open the browser?如何在不打开浏览器的情况下运行 Selenium 系统测试?
【发布时间】:2012-01-26 10:28:13
【问题描述】:

我有一个使用 Selenium 创建的测试方法,类似于:

[TestFixture]
public class Test_Google
{
        IWebDriver driver;

        [SetUp]
        public void Setup()
        {
            driver = new InternetExplorerDriver();
        }

        [TearDown]
        public void Teardown()
        {
            driver.Quit();
        }

    [Test]
    public void TestSearchGoogleForTheAutomatedTester()
        {
            //Navigate to the site
        driver.Navigate().GoToUrl("http://www.google.co.uk");
        //Find the Element and create an object so we can use it
        IWebElement queryBox = driver.FindElement(By.Name("q"));
        //Work with the Element that's on the page
        queryBox.SendKeys("The Automated Tester");
            queryBox.SendKeys(Keys.ArrowDown);
        queryBox.Submit();
        //Check that the Title is what we are expecting
        Assert.True(driver.Title.IndexOf("The Automated Tester") > -1);
    }
}

当测试运行时,它会打开一个 IE 并执行它的测试。

假设有 200 种这样的测试方法分布在多个测试装置中,这意味着 IE 必须多次打开和关闭(与测试装置一样多,因为每个测试装置将打开 1 个浏览器)。

如何在不打开浏览器的情况下运行 Selenium 系统测试?

我的意思是,例如,我认为可以开发一个 Windows 服务来在 WinForms Web 浏览器控件中运行 Selenium 测试,在这种情况下,不必每次都打开浏览器并且可以运行测试自动而无缝地。不知道如何实现?

或者还有其他更广为人知的方法吗?

谢谢,

【问题讨论】:

    标签: testing selenium windows-services webbrowser-control system-testing


    【解决方案1】:

    没有。 Selenium 是用 JavaScript 编写的;它旨在在真实浏览器中运行以测试与真实浏览器的兼容性。还有许多其他工具旨在运行模拟浏览器的测试。您可以查看HtmlUnitCanoo WebTest

    希望这会对你有所帮助。

    【讨论】:

      【解决方案2】:

      您尝试过 XLT 吗? 它根本不需要打开的浏览器 http://www.xceptance.com/products/xlt/what-is-xlt.html

      【讨论】:

      • 取决于你如何运行它。你可以使用 HtmlUnitDriver,没有 GUI 也可以,但是当只有真正的浏览器重要时,你必须使用假的 X 或 VNC 或类似的东西。
      【解决方案3】:

      如果您愿意,您可以在一个浏览器实例中运行所有测试。您只需将您的 webdriver 实例传递给每个测试。就像在静态类中拥有一个单格 WebDriver 一样,您的所有测试用例都可以从该类中访问 WebDriver。工作正常,如果你有一个会话要保留,这很有用

      【讨论】:

        【解决方案4】:

        driver = new HtmlUnitDriver(true); java.util.logging.Logger.getLogger("com.gargoylesoftware").setLevel(Level.OFF);

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-05-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多