Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

С# + WebDriver + какой Framework? (посоветуйте)

framework
Теги: #<Tag:0x00007f7b65a1f170>

(Alex Shats) #1

Только начинаю знакомство с Selenium WebDriver.
Задача - создать инфраструктуру для тестирования WEB приложения написанного на ASP MVC.
Как уже понял, WebDriver необходимо допиливать, или же воспользоваться каким то Framework, и потом допиливать придется меньше.
Но вот возник вопрос - какой Framework использовать?
Есть ограничение - пишу на С#. Переходить на Java не в плане, так как часть модулей проверяющие серверную часть приложения уже написанны на С# и они будут интегрированны вместе с проверками WEB. Ну и кроме этого Java фактически не знаю.

Насколько понял Html Elements доступен только для Java и реализации на С# нет. Это так?

Какой Framework посоветуете?


Дайджест полезных ссылок для тестировщиков-автоматизаторов #035
(Александр Таранков) #2

Инструмент называется WebDriver, а не WebDrive


(Alex Shats) #3

Уже исправил.


(Бабай) #4

(Dmitry Cheremushkin) #5

Можете посмотреть на недавно появившийся VIQA.


(Oleg) #6

(Dmitry Cheremushkin) #7

Есть ещё Bumblebee


(Alex Shats) #8

Читал это, насколько понял это достаточно базовый фреймворк.

Читал о VIQA, понял что базируется на HTML Elements и решил для начала изучить HTML Elements, а не хвататься сразу за новый VIQA. Но тут встал вопрос с C#.

Нужно будет взгдянуть на эти 2…

Кто опытный может посоветовать какой именно использовать. Ото пока ознакомлюсь со всем вариантами, потрачу не мало драгоценного времени.


(Sergey Korol) #9

Если у вас нет опыта, то самому лучше вообще этим не заниматься. Попросите опытного девелопера в помощь, который будет постоянно ревьювить ваш код. Если есть возможность, внедряйте pair programming. В противном случае, обречете все будущее поколение на извечные муки рефакторинга всего того, что вы там насоздаете. Без обид, но я уже многократно сталкивался с ситуациями, когда тебе суют нечто абсолютно не поддерживаемое, пожимая плечами и говоря о том, что о вcех проблемах знают, но рефакторить нельзя, ибо невозможно будет потом объяснить заказчику, почему нужно все переписывать.

В вашем случае действительно лучше взять что-то готовое.

Не вижу никакого смысла в объединении unit / integration тестов серверной части с фреймворком для UI автоматизации. Пусть девелоперы гоняют свои тесты отдельно, ровно как и вы. В крайнем случае, будете тригерить CI джобу, собирающую уже написанные тесты до / после ваших собственных.

Если вы знаете C#, то перейти на Java можно с минимальным порогом вхождения. Говорю по своему собственному опыту. Языки очень похожи.


(Alex Shats) #10

Ранее писал тесты на Coded UI.
Опытные девы имеются и с ними советуюсь при необходимости. Правда они не автоматизаторы. Ревью с ними же делаю.

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

Так, Телерик насколько я понял платный. На сайте только бесплатные триалки его. К тому же это не силениум, а полностью своя система.

Остаются VIQA и Bumblebee.
Кто что может сказать о этих двоих? На ком стоит заострить свое внимание и изучить для реализации?

Bumblebee по Overview очень похож на Html Elements.


(Sergey Korol) #11

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


(Александр Таранков) #12

Посмотри Selenide - полезная вещь. Здесь бывает заходит один из его авторов @asolntsev, если что сможет подсказать в случае затруднений.

На мой взгляд не нужны тебе никакие фреймворки: берешь WebDriver, MSTest и Selenide и начинаешь писать тесты и рефакторить их, вынося общие части в отдельные классы фреймворка. Так постепенно построишь свой, заточенный под свое приложение. Главное изначально сделай тесты и фреймворк не связанными. То есть классы тестов никак не наследуют фреймворк (и тем более фреймворк не наследует тесты), а создают его экземпляр в процессе работы и используют его. Дальше уже плохо не должно получиться. Особенно с помощью опытных разработчиков


(Dmitry Cheremushkin) #13

+1 к Selenide,
но это всё-таки Java. :wink:


(Alex Shats) #14

Если под “ваша система” вы имеете ввиду инструменты автоматезированных проверок, то пользователями являются сотрудники отделения QA, которые в данный момент занимаются ручными проверками.
Моя задача предоставить им все необходимые инструменты для автоматизации проверок серверного функционалла (корректная обработка данных поступаемых на сервер на прямую или через веб портал) и функциональности Web (портал).
Как я написал выше, для тестирования функциональности сервера (обработка данных поступаемых на сервер на прямую) уже написан инструмент и сотрудники QA им пользуется.
Теперь мне необходимо написать инфраструктуру для тестирования Web.
Сотрудники QA на базе этой инфраструктуры будут писать различные сценарии проверок.
Мне необходимо предоставить им удобные и простые инструменты (инфра/фреймворк) для написания сценариев на C#.

Если вы имеете ввиду сам продукт компании. Целевая аудитория это все граждани определенной страны… Это гос. проект.

Да, Java… не подходит. Сейчас я не обалдаю временем для осуществления перехода на Java.
Я один работаю над всем проектом автоматизации.


(Александр Таранков) #15

Ну тогда WebDriver + MSTest :smile: Меньше времени потратишь на разборки с фреймворками, больше на тесты.
Возможно @dzhariy что-то ещё подскажет, он на C# автоматизирует много.
Также почитай материалы на форуме, может найдёшь что-то конкретно для себя


(Рома Иовлев) #16

Добрый день Алекс,

Я разработчик VIQA. На счет Вики вам не нужно специально читать что-то про HTML elements (кроме того там используются VIElements, что на первый взгляд не сильно отличается от HTML Elments).
Они интуитивно понятны и как раз таки дают возможность не изучать хитросплетения WebDriver а писать на “почти человеческом” языке.
К тому же Вика специально создана для кастомизации под “свой” проект. В этом ее основное отличие от тех же HtmlElements от Yandex или Bumblbee
Попробую привести еще один довод в пользу Вики. я сейчас активно слежу за ее развитию и стараюсь собирать максимум отзывов и предложений, чтобы улучшить ее, так что у вас не будет проблем поддержкой, наоборот я буду крайне благодарен вам за отзывы )
“за новый VIQA. Но тут встал вопрос с C#.”
А в чем проблема с C#?

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

Ну и бонус в подарок встроенное логирование всех действий в удобном вам виде )


(Рома Иовлев) #17

MsTest не советую. Уж лучше тогда NUnit :wink:


(Alex Shats) #18

Проблемы с C# как раз нет. Я имел ввиду что начал рассматривать HtmlElements, но поняв что он для Java, решил что HtmlElements мне не подходит. VIQA напротив - поддерживает C#.

Почему не советуете писать в MsTest?


(Sergey Korol) #19

ТС тут рядом заводил тему насчет работы с таблицами. Взглянув на исходники вики по линку выше, так и не нашел грида. Или он спрятан вне htmlelements? Думаю, что автор очень расстроится, узнав об этом. :smiley:

Т.е. в тему отзывов и предложений: как минимум - добавить элемент таблицы, как максимум - внедрить cаппорт remote execution.


(Рома Иовлев) #20

NUnit обладает большими возможностями, по работе со входными данными, Много разных вариантов построения пересечений из входных данных Ну и на конец возможность использовать в качестве входных данных любой ваш метод (ValueSource) - дает вам безграничные возможности. Можете хоть свой генератор входных данных и их пересечений написать (что я кстати и сделал в своих проектах).
Вам не нужно подсоединятся к внешним файлам или базам данных как в MSTest
UnitTest Session Решарпера с тестами Nunit более корректно работает. отображает результаты фильтрует и прочее.
NUnit - это опен сорс и ребята действительно радеют за свой продукт. MSTest постоянно отстает на несколько шагов по новинкам. Собственно даже в самом Микромягком это признали сделав одновременную встроенную поддержку Nunit и MSTest с 2012-ой студии )