Как написать тесты автоматизированной системы С C#?

У нас есть старый asp.net применение который не имеет модульных тестов, интеграционных тестов, тестов компонентов или UI / функциональных тестов-сюрприз!

теперь, мы хотели бы представить некоторые тестирование автоматизированной системы это проверяет функциональность, так что, когда что-то ломается в приложении, мы сразу получаем уведомление!

например,форма регистрации пользователей где пользователь может ввести имя пользователя и email-адрес и зарегистрировать его в система.

слишком поздно/дорого вводить модульные тесты (поскольку текущий дизайн не поддается модульной проверке), поэтому самое главное сейчас-писать автоматизированные системные тесты.

например, мы хотели бы написать тест в C# который открывает браузер, вводит данные в текстовые поля, нажимает на кнопку Register, затем наш тест проверяет, вставлены ли данные в базу данных и отправляется ли электронное письмо с подтверждением и в конце ли правильное сообщение отображается пользователю (конечно, это только основные сценарии, и было бы множество особых случаев). В основном не тестирование изолированных блоков, а тестирование того, работает ли весь процесс!

Итак, какой инструмент я могу использовать, чтобы помочь мне написать такой тест и его автоматизации?

какой подход вы бы порекомендовали использовать?

Я посмотрел на Selenium и Fitnesse, но они, похоже,не позволяют мне писать код C# для тестирования базы данных и т. д. Я посмотрел на SoapUI / LoadUI та же проблема. Ватина можно использовать, не уверен. любые мысли / рекомендации очень ценятся.

надеюсь, вопрос ясен.

большое спасибо,

5 ответов


Selenium абсолютно позволяет вам писать код C# для тестирования системы. Во-первых, у вас будет метод взаимодействия с веб-сайтом, второй метод проверки правильности базы данных. Все в одном тестовом приложении / классе.

для веб-взаимодействия, вы должны использовать WebDriver (взято из Selenium API doc). Вот пример кода интерфейса IWebDriver. Он взаимодействует с Google, но вы можете изменить это, чтобы взаимодействовать с вебсайт.

using OpenQA.Selenium.Firefox;
using OpenQA.Selenium;

class GoogleSuggest
{
    static void Main(string[] args)
    {
        IWebDriver driver = new FirefoxDriver();
        driver.Navigate().GoToUrl("http://www.google.com/");
        IWebElement query = driver.FindElement(By.Name("q"));
        query.SendKeys("Cheese");
        System.Console.WriteLine("Page title is: " + driver.Title);
        driver.Quit();
    }
}

тогда вы просто реализуете другой метод, который проверяет правильность записей базы данных, используя что-то вроде LinqToSql или другого API базы данных C#.


Если у вас есть Visual Studio Ultimate, возможно, закодированный тест пользовательского интерфейса-это то, что вы ищете? http://msdn.microsoft.com/en-us/library/dd286681.aspx


использовать CodedUI или Selenium web driver


вы также можете посмотреть на тестовая студия Телерика как решение для ваших потребностей испытания. (Раскрытие: я работаю на Telerik в качестве Евангелиста их тестовой студии.)

Test Studio позволяет легко создавать чрезвычайно ремонтопригодные функциональные и эксплуатационные тесты.

вы также можете легко добавить шаги или тесты в C# (или VB.NET) обрабатывать такие вещи, как настройка/демонтаж тестового приспособления, или иметь дело с тестовыми ситуациями oracle, как вы упомянули. (Проверка базы данных для обеспечения запись правильно сохраняется, привязывая что-то вроде nDumbster для проверки электронной почты и т. д.)


Selenium Webdriver можно добавить как пакет в проект C# в Visual studio express IDE, а затем добавить пакет nUnit можно написать тестовые примеры. Ниже приведены несколько ссылок, которые могут помочь вам начать с Selenium WebDriver в автоматизированных тестов

о том, как настроить IDE (VS express), nUnit и selenium см. как настроить драйверы клиентов C#,nUnit и selenium на VSExpress для автоматических тестов

при создании простого скрипта, который запускает браузер делает несколько шагов создание базового тестового набора веб-драйверов Selenium с использованием Nunit и C#

о загрузке той же страницы на разных браузерах я предлагаю ссыль как вызвать локально различные типы драйверов браузера с помощью selenium и c#

При загрузке одной и той же веб-страницы на нескольких виртуальных машинах для этого вам нужно использовать удаленный webdriver вместо обычного webdriver. Также с удаленным webdriver, вы можете запуск различных типов браузера. Смотрите эту страницу как вызвать / запустить другой тип браузера веб-драйвера с помощью удаленного webdriver в C#

чтобы сделать снимок на другом браузере, вы можете обратиться по ссылке захват снимков экрана с помощью удаленного / локального webdriver в C# / Selenium webdriver