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

Аудит и оптимизация QA-процессов
онлайн, начало 29 января
Тестирование безопасности
онлайн, начало 27 января
Школа Тест-Аналитика
онлайн, начало 27 января
Тестирование мобильных приложений
онлайн, начало 27 января
Фотография

Выбор пути автоматизации веб-приложения

seleniumtestng test automation webdriver phantomjs pageobjects

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

#1 pichuginea

pichuginea

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

  • Members
  • Pip
  • 4 сообщений
  • Город:St. Petersurg

Отправлено 26 октября 2015 - 11:41

Доброго времени суток! Начну, пожалуй, с самого начала.

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

 

Сейчас все это тестируется с помощью casperjs + тулза, которую написал разработчик на JS. Она умеет самые базовые вещи: простые assert'ы, базовые методы использования контролов, заполнение форм, собственно, все. Тесты гоняются с помощью phantomjs. На каждом шаге сохраняется скриншот и пишутся логи. Собственно, вся информация о проходе теста, которую можно получить. Все это довольно сыро выглядит и, честно говоря, не внушает доверия. Тесты сами пишутся на js. 

 

Вся проблема в том, что мне не очень нравится такой подход, так как в предыдущей компании я использовал WebDriver + PajeObject + NUnit. Считаю, что кроссбраузерное тестирование - очень важный аспект. Тем более, что в продукты довольно часто встречаются специфичные для отдельных браузеров баги. А скорость работы phantomjs не на столько велика, чтобы отказываться от selenium, тесты которого и так можно при желании распараллелить.

 

Пока текущее решение в компании очень сырое и есть возможность изменить курс тестирования, поэтому хочу обратиться к гуру автоматизации :). Как бы поступили вы в данной ситуации? и на сколько по вашему мнению сложно описать логику взаимодействия с такими многослойными гридами? 

 

Хотелось бы услышать любое мнение на этот счет. 

 

Прикрепленные файлы

  • Прикрепленный файл  structure.png   266,78К   1 Количество загрузок:

  • 0

#2 vkazar

vkazar

    Активный участник

  • Members
  • PipPip
  • 128 сообщений
  • ФИО:Виктор
  • Город:Москва

Отправлено 26 октября 2015 - 13:40

Я не гуру, далеко не гуру, но постараюсь помочь :)

Если эти гриды по сути своей одинаковые, то почему бы не использовать рекурсию?
 
в PageObject этого грида добавить поле, содержащую коллекцию своего типа. 
 
Получится что-то вроде

public class GridPage : BasePage
{
   public List<GridPage> GridCollection;
   // Поля этого грида, методы взаимодействия с ним
} 

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

Ну, а собсно, самый верхний родитель тоже находится в public List<GridPage> GridCollection, но уже в классе, описывающем страницу.

Доступ к этим гридам осуществляется через myPage.GridCollection[0].GridCollection[4]. ... и т.п.


  • 0

Тестировщик должен быть умнее программиста... ну, по крайней мере, хитрее. ©



Программирование на С# для тестировщиков
онлайн
Автоматизатор мобильных приложений
онлайн
Selenium WebDriver: полное руководство
онлайн
Программирование на Python для тестировщиков
онлайн




Темы с аналогичным тегами seleniumtestng, test, automation, webdriver, phantomjs, pageobjects

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

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

Яндекс.Метрика
Реклама на портале