Запись веб-теста: автоматически вставлять утверждения во время записи?

Мне нужно максимально автоматизировать запись сценариев веб-тестирования. Selenium IDE или лучший плагин Katalon для Chrome кажутся очень эффективными для этого. Однако в записи отсутствуют утверждения. Я пока не нашел реальной альтернативы, кроме как «добавить их вручную» после того, как запись будет сделана.

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

Итак, учитывая, что мое веб-приложение находится в «заведомо исправном состоянии», я теоретически мог бы захватить текстовое содержимое соответствующих тегов во время записи и тут же вставить свои утверждения в записанный сценарий. Моя цель - автоматизировать это.

Есть ли способ сделать это в плагине Katalon, Selenium IDE или любом другом автоматическом инструменте веб-записи? Я читал о скриптах расширения Katalon, но насколько я понимаю, они не могут делать то, что я хочу?

- изменить - попытаться перефразировать и конкретизировать -

Во время записи при определенных событиях (например, при загрузке страницы) я хочу, чтобы инструмент находил все элементы, соответствующие определенным селекторам, и для каждого совпадения сохранял утверждение в сценарии, которое утверждает фактическое текущее значение (например, div.innerText или input. значение) элемента на странице. Я хочу определить события и селекторы, которые должны запускать вставку утверждений и выражения, определяющего заявленное значение.

пример

Предположим, в моем веб-приложении есть страница поиска. Я ввожу данные в поля ввода и нажимаю кнопку «поиск». Эти действия записываются большинством инструментов, таких как Katalon Recorder. Теперь на следующей странице будут показаны результаты поиска. Каждый результат поиска будет в div class = "result". Допустим, во время записи я получил два результата поиска «foo» и «bar». Поэтому я хочу, чтобы инструмент сохранял в сценарии во время записи утверждение, что первым результатом должно быть «foo», а вторым - «bar», на основе моего правила, что все $ («div.result») должны иметь их "innerText" утверждается при загрузке страницы.


person geert3    schedule 10.05.2018    source источник


Ответы (3)


Избегайте использования Selenium IDE, поскольку совместимость с Firefox прекращена с версии Firefox 55, поэтому вы не сможете запускать тесты в последних версиях Firefox.

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

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

У меня нет опыта работы с Katalon.

person Pieter A    schedule 10.05.2018
comment
Благодарю. FYI Katalon Recorder совместим с Selenium IDE с некоторыми добавленными функциями. - person geert3; 10.05.2018

Вы не можете добавлять утверждения во время записи, но вы также можете использовать Selenese после записи. Официальную ссылку можно найти здесь: https://docs.katalon.com/display/KD/Selenese+%28Selenium+IDE%29+Commands+Reference

person plaidshirt    schedule 10.05.2018
comment
Спасибо, но это снова запись. Я хочу, чтобы какой-то бизнес-пользователь использовал приложение во время записи и чтобы соответствующие части автоматически утверждались. После завершения записи данные (текстовое содержимое соответствующих частей) исчезают, поэтому восстановить значения утверждения намного сложнее. - person geert3; 10.05.2018
comment
Итак, вы ищете какое-то решение, например контрольные точки в QTP. Насколько я знаю, в Katalon это не реализовано. - person plaidshirt; 10.05.2018

Как бы то ни было, мне удалось получить то, что мне было нужно, а именно:

  • найдите каталог расширений Katalon Recorder в моем Chrome
  • скопируйте все содержимое в Eclipse
  • изменить источник content/recorder.js, метод Recorder.attach(), добавив следующее:

    var self = this;
    $(...).each(function(i, el) {
        var target = self.locatorBuilders.buildAll(el);
        if (el.tagName == "SELECT" || el.tagName == "INPUT")
            recorder.record("assertValue", target, el.value, false);
        else
            recorder.record("assertText", target, el.innerText, false);
    });
    

    (примечание ... - это селекторы JQuery, которые определяют области, которые, как я знаю, будут содержать соответствующие данные в приложении. Это можно настроить либо в этом источнике (например, добавив больше селекторов), либо в самом приложении (например, добавив класс сигнализации в определенные теги в HTML только для запуска утверждений).

  • в Chrome активируйте «режим разработчика» и загрузите измененный плагин.
  • Во время записи утверждения теперь автоматически добавляются для соответствующих частей (... в приведенном выше примере) моего веб-приложения при каждой загрузке страницы.
  • счастливый!
person geert3    schedule 14.05.2018