В настоящее время я работаю над моделью Selenium, которая будет основана на C# .net.Нужна обратная связь по моей модели Selenium Framework
Главное, что я хотел бы узнать у всех экспертов селена, если я действительно должен построить фреймворк в C# .net? Существуют ли какие-либо реальные преимущества построения структуры в JAVA для ее создания в C# .net?
Основные ингредиенты/USP этого Каркасно
Простота написания теста. Например, для нажатия на кнопку кодер должен просто написать Dom.find («# elementid»). Click(), Dom.WaitFor («# elementid») или Dom.WaitTillDisappears («# elementd») Цель этого это абстрагирование всего драйвера селена, свойств, обработки хромированного ребра и всех грязных вещей, которые слишком долго для не-опытного кодера. Для этого я создал модель, используя OOPS, определяя классы, которые обрабатывают всю инициализацию хромированного ребра и другого материала, поэтому тестеру не нужно заботиться об этом при написании кода.
Я использую модульные модули тестирования, такие как единичный тест и определение абстрактных классов, которые представляют собой тестовый прогон и тестовый пример, поэтому нужно, чтобы человек, записывающий код, просто определял тестовые таблицы и записывал их сценарий под ним и запускать эти случаи как единичные тесты.
Я добавил Db-журнал, который будет создавать журналы для каждого выполняемого действия, от «пытается найти элемент», чтобы «набирать что-то в элементе», поэтому, если что-то не получается, у человека есть возможность изучить журнал и выяснить, что именно пошло не так.
Обработка ошибок выполняется с использованием SeleniumExceptions, и я просматриваю сообщения, чтобы сделать их более читаемыми для пользователей инфраструктуры.
Я думал о создании простого абстрактного класса, скажем, PageComponents.cs, который может быть абстрактным классом и иметь базовые функции, такие как получение информации о странице, получение идентификатора, атрибутов, класса и т. Д. Лицо, предпочитающее создавать свои скрипты в POM, может просто определить все компоненты с помощью типа By, поэтому давайте скажем, что все, что им нужно сделать, - создать еще один файл класса LoginPage.cs, наследовать от PageComponents.cs, а затем просто начать объявление своих объектов. В других файлах, где пользователи будут писать свой скрипт, они могут легко получить доступ к этим объектам страницы, инициализируя LoginPage. Изменения Anything, в LoginPage, все они должны сделать, это изменить свойство объектов в LoginPage.cs
Теперь причину я пишу все это обсуждение, чтобы понять точку зрения всех людей, которые работают на селене или работали над рамкой. Я хотел бы понять все плюсы и минусы этой модели фреймворка, над которой я пытаюсь следовать, и если есть что-то лучшее, что вы, ребята, можете предложить (с которым вы уже работали), это было бы здорово. Я начинаю эту дискуссию, чтобы понять, за чем следуют другие компании и люди, которые гораздо более опытны, чем я. Заранее благодарю вас за ценные отзывы!
Это была бы интересная дискуссия, но я не думаю, что SO - подходящее место для интересных дискуссий. – stuXnet
Хм, вы уже пробовали какое-то поведение или подходы, основанные на тестах? Вы можете попробовать Serenity BDD (бывший thucydides) с JBehave, например, где у вас уже есть много реализованных функций, которые вы хотите реализовать (страницы, живая документация, обработка тестовых тестов и т. Д.) – spcial
Привет, @stuXnet, вы думаете, я должен опубликовать это где-нибудь еще? будет ли обмен столами лучшим местом для обсуждения. Я в основном хочу получить столько отзывов, сколько могу получить. – Prateek