Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Автоматизация процесса трекинга изменений

test-data
execution
reporting
webdriver
Теги: #<Tag:0x00007fedc46043c0> #<Tag:0x00007fedc4604208> #<Tag:0x00007fedc46040c8> #<Tag:0x00007fedc4653ec0>

(romal) #1

Появилась некая идея о помощи коллегам из компании - они работают с данными.
У них есть задача: раз в неделю ходить по неким ссылкам и смотреть, не обновилось ли там чего.

Так вот, ссылок очень много, а информация меняется не часто.
Для того, чтобы не тратить время впустую, вонзикла идея атоматизировать процесс идентификации изменений.
То есть, если что-то поменялось, нужно как-то информировать об этом.
Для примера одна из страниц:
https://www.sec.gov/rules/final.shtml
Здесь 7 записей в таблице. Их и нужно трекать:

  • если записей стало больше/меньше с момента предыдущего запуска;
  • если изменились Details для конкретной строки таблици;
  • если изменился PDF файл (который открываєтся по линку Release No.) - достаточно проверить DateOfChange and/or FileSize.

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

Идея: скрипт собирает данные, пробегая по ссылкам (скачивает файлы, считывает атрибуты и сохраняет);
скрипт анализирует полученные результаты с теми, что хранятся от предыдущего запуска;
скрипт готовит итоговою таблицу изменений, если такие есть.

Собственно вопрос: посильна ли задача для одного-двух QA инженеров, которые программируют WebDriver тесты на С#?
Какой стек технологий тут можно применить?
Лично я представляю это так:

  • есть файл с линками, которые нужно проверить
  • есть программа/скрипт, корорую можна запустить - она возьмет каждую ссылку из файла, определит алгоритм ее обработки, соберет данные и сохранит. Куда? в какую-то БД?
  • есть приложение (возможно web), которое анализирует два последних запуска и как-то показывает разницу.

Сначала я дал оптимистичное обещание о возможности сделать такое, но чем больше изучаю вопрос, тем больше он меня страшит. Резонно? :slight_smile:


(noname) #2

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

не знаю поможет ли…


(Yaroslav Pernerovskyy) #3

посильна ли задача для одного-двух QA инженеров,
элементарно для одного сделать за час-полтора
чем больше изучаю вопрос, тем больше он меня страшит. Резонно?
вы слишком усложняете простую задачу

  1. делаете csv файл формата - линк, корень таблицы, флаг первого прохода (в вашем случае)
    https://www.sec.gov/rules/final.shtml, table#mainlist, false
  2. открываете линк из файла, находите корневой элемент
  3. делаете для него getAttribute(“outerHTML”) или getAttribute(“outerText”) не важно
  4. сохраняете в файл
  5. ставите флаг прохода в true

Запускаете по новой
Если флаг прохода true, то сравниваете значение проперти со значением того, что сохранили в файл. (Assert.equal)
Кидаете алярму что нашли разницу


#4

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


#5

А зачем вам WebDriver для этих задач?

Используйте HtmlDocument (другие примеры) для анализа HTML.

И пример PDF to text и дальше проерять что вам необходимо