Мне нужно максимально автоматизировать запись сценариев веб-тестирования. Selenium IDE или лучший плагин Katalon для Chrome кажутся очень эффективными для этого. Однако в записи не хватает утверждений. До сих пор я не нашел реальной альтернативы, кроме как «добавить их вручную» после завершения записи.
Теперь я знаю, какие части моих страниц содержат соответствующий выходной текст, т.е. подлежат тестированию. Например, на основе шаблонов идентификаторов, имен классов, иерархии тегов и т. Д.
Итак, учитывая, что мое веб-приложение находится в «известном хорошем состоянии», я мог теоретически получить текстовое содержимое соответствующих тегов во время записи и тут же вставить свои утверждения в записанный сценарий. Моя цель - автоматизировать это.
Есть ли способ сделать это в плагине Katalon, Selenium IDE или любом другом автоматизированном инструменте веб-записи? Я читал о сценариях расширения Katalon, но, насколько я понимаю, они не могут делать то, что я хочу?
- редактировать - пытаться перефразировать и быть более конкретным -
Во время моей записи при определенных событиях (например, при загрузке страницы) я хочу, чтобы инструмент находил все элементы, соответствующие определенным селекторам, и для каждого соответствия сохранял утверждение в сценарии, в котором утверждается фактическое текущее значение (например, div.innerText). или input.value) элемента на странице. Я хочу определить события и селекторы, которые должны запускать вставку утверждений и выражение, которое определяет заявленное значение.
пример
Предположим, в моем веб-приложении есть страница поиска. Я ввожу данные в поля ввода и нажимаю кнопку «поиск». Эти действия записываются большинством инструментов, таких как Katalon Recorder. Теперь на следующей странице будут показаны результаты поиска. Каждый результат поиска будет в div class = "result". Предположим, что во время записи я получил два результата поиска: "foo" и "bar". Поэтому я хочу, чтобы во время записи инструмент сохранял в сценарии утверждение о том, что первый результат должен быть «foo», а второй - «bar», исходя из моего правила, что все $ («div.result») должны иметь их "innerText" утверждается при загрузке страницы.