LINUX.ORG.RU

Сохранить страницу подменив динамические вызовы

 , , ,


0

2

Ситуация такая. Есть некое веб приложение от IBM, использующее dojo для генерации страниц. И есть фреймворк для тестирования этого приложения (который использует Selenium).

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

К сожалению, страницы довольно сложные (100K+ строк кода) и если их сохранить в Firefox -> Save Page As -> Complete Page и восстановить - выглядят зачастую не так как в онлайне.

Нету ли какого-нибудь инструмента, который бы при сохранении все вызовы веб-сервисов заменять содержимым последнего вызова? Чтобы сохраненная страница была полностью автономна?

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

★★★★★

Юнит тесты здесь не подходят. Если вы хотите тестировать свой фреймворк юнит тестами, то вам нужно тестить отдельные «функции», в отрыве от других элементов фреймворка и в отрыве от страниц. Таким образом, вы просто должны создать тестовые данные, типа примитивной разметки html, и подсовывать её в вызове юнит тестов. А не целую страницу живого приложения кидать в юнит - это уже не юнит тестирование получается.

menangen ★★★★★ ()

В инспекторе объектов кликаешь по <html>, выбираешь Edit as HTML, копипастишь текст в файл. Можно добавить также тег base (http://htmlbook.ru/html/base), чтобы направить запросы к картинкам, стилям и т. д. с сохраненного документа на локалхосте на домен.

anonymous ()
Ответ на: комментарий от menangen

Нет. Примитивную разметку должен тестировать сам Selenium. А у меня как раз минимальная единица - это элемент на живой странице.

Это как юнит тест для сложения: если пишешь язык - он нужен. Если пишешь на этом языке приложение - исходишь из того что операция сложения работает как задокументировано. Писать для неё юнит тесты в приложении накладно и не даёт прямых преимуществ.

alt-x ★★★★★ ()
Ответ на: комментарий от alt-x

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

1 - добавляй в теги dojo, zend, я хз, что там так коряво тянет, может подскажут, что нужно подшаманить.

2 - выставь в интернеты пример такой страницы, может реально base не к тому месту прикладывал, надо пробовать.

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

anonymous ()
Ответ на: комментарий от alt-x

А в чём разница между этим подходом и Save Page As -> Complete Page? HTML же тот же самый скопируется. Или нет?

Нет. Сохранится страница какой она скачалась с сервера, а не какой стала динамически модифицировавшись JavaScript'ом.

anonymous ()

Может в сторону https://rr-project.org/ копнуть? Возможно есть способ выдрать оттуда часть, которая позволяет записывать результаты работы системных вызовов.

Другой вариант: написать что-то вроде кеширующего HTTP-прокси, который будет сидеть между веб-приложением и тестируемым тестовым фреймворком, и записывать/воспроизводить все вызовы.

Deleted ()