Каков наилучший способ хранения данных в платформе объектной модели страницы - PullRequest
0 голосов
/ 30 января 2019

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

  1. PageObjects (xpath, id и т. Д.) - в самих классах страниц enter image description here
  2. Данные конфигурации (время ожидания, тип браузера, URL и т. Д.) - в файле свойств.enter image description here
  3. Другие данные - в классе в качестве статических переменных.
    enter image description here

После запуска платформыПо мере роста было бы трудно хранить все данные, было бы трудно организовать данные.Я провел некоторое исследование о том, как другие реализовали способ хранения данных в своей структуре.Вот что я обнаружил:

  1. Хранение данных (в основном объектов страниц) в самих классах
  2. Хранение данных в JSON enter image description here
  3. А некоторые даже предлагали хранить данные в базе данных, чтобы сократить время чтения

Поскольку существует множество вариантов, я подумал о том, чтобы получить отзывы о том, как лучше хранить данные.и как все остальные хранили там данные.

Ответы [ 3 ]

0 голосов
/ 30 января 2019

Я советую использовать интерфейсы для каждого типа устройства для хранения селекторов нескольких типов, например:

import static org.openqa.selenium.By.cssSelector;
import static org.openqa.selenium.By.linkText;
import static org.openqa.selenium.By.xpath;

public interface DesktopMainPageSelector {
    By FIRST_ELEMENT = cssSelector("selector_here");
    By SECOND_ELEMENT = xpath("selector_here");
    By THIRD_ELEMENT = id("selector_here");
}

чем, просто используйте эти селекторы из того, что вам нужно.

Вы также можете использоватьПеречисляет с для более сложной структуры.

Я нашел это как лучшее решение, потому что его легко управлять большим количеством селекторов

0 голосов
/ 30 января 2019

Я не вижу проблем с тем, как вы сохранили свои данные.

  1. Локаторы (по определению POM) должны храниться в самих объектах страницы.
  2. Configданные могут быть сохранены в каком-либо файле конфигурации ... все, что вы считаете удобным.Вы можете использовать обычный текст, JSON, XML и т. Д. Мы используем XML, но это действительно сводится к личным предпочтениям.
  3. Я думаю, что это тоже хорошо.

Фреймворк не 'на самом деле растет, комплект автоматизации.До тех пор, пока вы сохраняете данные, хранящиеся в 3 местах выше, я думаю, что у вас все будет хорошо.Единственная проблема, с которой я столкнулся при таком подходе, заключается в том, что иногда некоторые страницы имеют ОЧЕНЬ много функциональности, поэтому объекты страницы становятся достаточно большими.В этих случаях мы нашли способ разделить страницу на более мелкие куски, например, на одной странице было 22 вкладки, каждая из которых состояла из отдельной панели.В этом случае мы разбили объект страницы на 22 различных файла классов, чтобы сделать размер более управляемым, а затем подключили их обратно к главной странице в качестве свойств, например mainPage.Panel1.someMethodOnPanel1();

0 голосов
/ 30 января 2019

JSON или Любое временное хранилище данных - лучший вариант, так как это фреймворк, и его целью является повторное использование для различных проектов.

...