Фрейм для тестирования браузера Javascript / JQuery для IE9 / FF / Chrome - PullRequest
2 голосов
/ 14 ноября 2011

Я прошу прощения, если этот вопрос уже задавался, но я не смог найти ответ в Google.

Я ищу тестовый плагин для каждого браузера, в котором я мог бы просто записать тест (щелкнуть по различным элементам), а затем просто запустить этот тест, просто нажав «запустить тест». Лучше всего, если бы я мог написать какой-то код о том, какие ответы мне требуются (т.е. генерировать окончательный HTML-код), но если это возможно, это нормально.

Причина, по которой я не могу использовать такие вещи, как JUnit и т. Д., Заключается в том, что мой код использует внешние веб-сервисы (например, платеж на внешнем сервере, к которому у меня нет доступа), и во время теста меня перенаправляют на разные страницы, поэтому Я предполагаю, что это должен быть тестовый плагин.

Если бы плагины были бы интегрированы с Visual Studio 2010 (или, по крайней мере, плагином IE), это было бы здорово, но я могу жить без него.

Я читаю на iMacros (Chrome, но, к сожалению, бета) и Selenium (Firefox), но я хотел знать, какой самый стандартный способ сделать это (я полагаю, это было сделано целую вечность). Кроме того, мне нужен один для IE9, который я еще не нашел.

Спасибо заранее, Юзеф

пс. Я создаю тяжелую веб-страницу AJAX, поэтому простого тестирования на основе URL недостаточно (как в лаборатории AdobeBrowser)

1 Ответ

1 голос
/ 18 ноября 2011

Selenium вполне подходит для автоматизированного тестирования веб-браузера, и последняя версия работает практически со всеми версиями IE (7 - 9) (в данный момент я не могу просматривать документацию на работе) и Firefox3 - 8 и Chrome 12. и выше.

На веб-сайте, посвященном селену, и на сайте http://code.google.com/p/selenium/ есть несколько хороших примеров.

(Для браузера Chrome вытакже необходимо загрузить ChromeiumServer

Вот несколько грубых и готовых исходных кодов, о которых я не раз писал некоторое время назад

using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.IE;
using OpenQA.Selenium.Remote;
using System.Threading;

namespace ConsoleApplication1
{
    class Program
    {
        const string Path = @"H:\Selenium\chromedriver_win_16.0.902.0\";

        static void Main(string[] args)
        {
            TestMethodChromeViaServer();

            WebBrowser(TestMethodFf());
            WebBrowser(TestMethodIe());
            WebBrowser(TestMethodChromeDefault());
        }

        /// <summary>
        /// Runs the code in the browser.
        /// </summary>
        /// <param name="webDriver">The Web Driver to use to initiate a web browser.</param>
        public static void WebBrowser(IWebDriver webDriver)
        {
            webDriver.Navigate().GoToUrl("http://nerddinner.com/Account/LogOn?returnUrl=%2F#");

            IWebElement query = webDriver.FindElement(By.Id("UserName"));
            query.Submit();

            var foo = webDriver.FindElement(By.CssSelector("span[for='UserName']"));

            webDriver.Quit();
        }

        /// <summary>
        /// Launches Google Chrome via the service so multiple tests can be run before closing the service.
        /// </summary>
        public static void TestMethodChromeViaServer()
        {
            var service = ChromeDriverService.CreateDefaultService(Path);
            service.Start();

            IWebDriver driver = new RemoteWebDriver(service.ServiceUrl, DesiredCapabilities.Chrome());

            WebBrowser(driver);

            service.Dispose();
        }

        /// <summary>
        /// Creates a Web Driver using Google Chrome.
        /// </summary>
        /// <returns>Web driver with ChromeDriver setup to the correct path.</returns>
        public static IWebDriver TestMethodChromeDefault()
        {
            IWebDriver driver = new ChromeDriver(Path);

            return driver;
        }

        /// <summary>
        /// Creates a Web Driver using Firefox.
        /// </summary>
        /// <returns>Web driver with FirefoxDriver profile setup.</returns>
        public static IWebDriver TestMethodFf()
        {
            var foxProfile = new FirefoxProfile
                {
                    AcceptUntrustedCertificates = true
                };

            IWebDriver driver = new FirefoxDriver(foxProfile);

            return driver;
        }

        /// <summary>
        /// Creates a Web Driver using Internet Explorer.
        /// </summary>
        /// <returns>Web driver with InternetExplorerDriver setup.</returns>
        public static IWebDriver TestMethodIe()
        {
            //// Must set the protected mode on each zone to be the same (on or off), under tools -> security tab
            IWebDriver driver = new InternetExplorerDriver();

            return driver;
        }
    }
}
...