Selenium, лучшие практики Nunit?

Я хотел бы узнать больше о том, как использовать Selenium IDE и RC для создания хороших тестов автоматизации. Есть желающие поделиться информацией. или обсуждаем это? Особенно для таких вещей, как:

1) Как лучше организовать тесты пользовательского интерфейса? Прямо сейчас я выполняю эти тесты через NUnit, и он выполняет тесты в порядке их алфавитных имен. Есть ли способ лучше. (я пишу селеновые скрипты на С#, а не на java)

2) Как регистрируются результаты?

3) Модульность тестов Selenium RC? У меня проблема. Поскольку я выполняю свои тесты через NUnit, единственный способ, который я мог понять, - это дать идентификаторы тестам, чтобы они запускались в правильном порядке. Также мне приходится писать все свои тесты один за другим в классе textfixture. Опять же, есть ли лучший способ? Я попытался создать дополнительные файлы, но когда я создаю там тесты и выбираю их для запуска в NUnit, похоже, что сервер селена даже не запускается.

4) Каковы наилучшие методы автоматизированного тестирования? Любые указатели на любые сайты/книги/и т.д.?

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

Спасибо!


person Saavik    schedule 20.10.2010    source источник


Ответы (3)


Я ответил на каждый из вопросов для вас ниже.

  1. Тесты не должны иметь значения в том порядке, в котором они выполняются. Если вы начнете беспокоиться об этом, вы начнете вводить ненадежность тестов. Если вам нужно входить в систему при каждом тесте, сделайте это, если вам нужно зарегистрировать несколько пользователей во время ваших тестов, сделайте это. Тесты всегда должны иметь возможность запускаться самостоятельно.

  2. Nunit регистрирует свои результаты в файле XML. Это будет иметь список проходов и неудач и обычно красиво отображается почти всеми непрерывными

  3. См. мой ответ для рекомендаций по модуляризации тестовых сценариев Selenium RC

    • Tests should always have a known starting point. In the context of Selenium this could mean opening a certain page to start a workflow.
    • Тесты не должны полагаться на выполнение каких-либо других тестов. Если тест собирается что-то добавить, не создавайте отдельный тест для его удаления. Это сделано для того, чтобы гарантировать, что если что-то пойдет не так в одном тесте, это не будет означать, что у вас будет много ненужных ошибок для проверки.
    • Тесты должны проверять только одну вещь за раз.
    • Тесты должны убирать за собой.
person AutomatedTester    schedule 21.10.2010
comment
Спасибо за хорошо сформулированный и хорошо отформатированный ответ! - person Saavik; 21.10.2010

Если вы хотите использовать Selenium, я могу предложить вместо другого языка использовать внешний интерфейс TestPlan. В дополнение к языку, специфичному для предметной области, он предлагает удобное управление тестовыми примерами. Вы можете организовать свои тесты в красивую иерархию, и он выполнит их все и сообщит о результатах.

Он заботится о многих деталях запуска Selenium и сглаживает многие трудности в RC API.

person edA-qa mort-ora-y    schedule 21.10.2010

Я только что прошел через это. С точки зрения модульности и полезных инструментов. Я думаю, что действительно важно больше думать о создании гибкой, хорошо поддерживаемой автоматизированной среды тестирования пользовательского интерфейса, чем просто о модуляризации сценариев Selenium RC. Selenium 2: Инструменты тестирования. Руководство для начинающих стало отличным началом для идеи. как начать создавать хороший фреймворк для тестирования. Я добился БОЛЬШОГО успеха с (шаблоном Page Object) [https://code.google.com/p/selenium/wiki/PageObjects] после 2-3 неудачных попыток запуска автоматизированной среды тестирования. Что касается процесса, я считаю, что лучше всего начать с написания кода (вы пишете тесты, поэтому их должно быть довольно легко протестировать), но агрессивно рефакторинг с использованием хорошего ООП по мере того, как шаблоны и структуры начинают создаваться. Я бы также рекомендовал Как Google тестирует ПО для мотивации ПО. QA в целом, хорошие практики тестирования на организационном уровне, а также когда и когда не использовать автоматизацию.

person craastad    schedule 18.06.2013