Перейти к содержимому

Фотография

Шаблон автотеста (С#+Nunit+Selenium Webdriver)


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 minipig13

minipig13

    Новый участник

  • Members
  • Pip
  • 2 сообщений

Отправлено 28 мая 2021 - 18:31

Коллеги, привет!

Подскажите пожалуйста пример хорошо построенного теста веб-приложения с использованием связки С#+Nunit+Selenium Webdriver. Я начинающий Selenium - автоматизатор, начал копать в этой теме, уже перерыл кучу сайтов но не нашел хорошего примера теста. Везде в основном в примерах приводят простейшие примеры, типа проверки логина и т.д., т.е. тесты состоят из пары действий.

А можете ли привести пример реального  практического тест-кейса перенесенного в автотест? Например: заходим на сайт -> переходим к спику товаров->добавляем товар в корзину. Как такого рода тест должен выглядеть в тесте в селениум?

Имею в виду:

-нужно ли на каждое действие отдельный тест или все объединять в один?

-если объединять в один, то нужно ли делать Assert после каждого действия?

 

Я понимаю, что нужно:

- создать какой-нибудь общий тестовый класс TestBase (туда запихнуть [OneTimeSetUp],  [OneTearDown] и прочие вспомогательные вещи)

- создать класс с самими тестами ,например, Tests:TestBase (там будут указаны тесты в определенном порядке [Test, Order (1)], [Test, Order (2)] и тд)

- создать пейдж-обджекты на тестируемые страницы (там будут указаны тесты в определенном порядке.

Но хотелось бы "красивый" пример с лучшими практиками по автоматизации, чтобы взять за основу в своей работе.В идеале посмотреть ссылку на Гит.

Заранее огромное спасибо!


  • 0

#2 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 29 мая 2021 - 18:43

Имею в виду:

-нужно ли на каждое действие отдельный тест или все объединять в один?

-если объединять в один, то нужно ли делать Assert после каждого действия?

 

Лучше разделять, чтобы не делать Assert после каждого действия.


  • 0

#3 minipig13

minipig13

    Новый участник

  • Members
  • Pip
  • 2 сообщений

Отправлено 30 мая 2021 - 12:19

 

Имею в виду:

-нужно ли на каждое действие отдельный тест или все объединять в один?

-если объединять в один, то нужно ли делать Assert после каждого действия?

 

Лучше разделять, чтобы не делать Assert после каждого действия.

 

Спасибо за ответ!

Получается, нужно делать отдельный на каждое действие и в конце 1 ассерт?

Например:

тест1- вход на сайт (ввод логина/пароля) Assert()

тест 2-  переходим на стрианицу товаров Assert()

тест 3 - добавляем товар в корзину Assert()

и тд.

 

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

или я че-то не понимаю?


  • 0

#4 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 30 мая 2021 - 12:46

Спасибо за ответ!

 

 

Получается, нужно делать отдельный на каждое действие и в конце 1 ассерт?

Например:

тест1- вход на сайт (ввод логина/пароля) Assert()

тест 2-  переходим на стрианицу товаров Assert()

тест 3 - добавляем товар в корзину Assert()

и тд.

 

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

или я че-то не понимаю?

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

Вообще язык и тестовый фреймворк (NUnit) не принципиальны, вы можете изучить примеры на других языках и *Unit'ах. Они будут очень похожи.


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных