Веб-инструментарий расширяемости QTP и ajax

К вашему сведению можно также использовать map.keySet() и map.values(), если Вы только интересуетесь ключами/значениями карты а не другого.

5
задан 29 July 2009 в 11:22
поделиться

3 ответа

Спасибо за ответы.

Нам удалось решить нашу проблему с помощью набора инструментов QTP Extensibilty: A4j использует очередь слушателей, которые пробуждаются до и после ajax (в зависимости от типа слушателя). В нашем решении мы реализовали функцию Jscript для каждого компонента ajax (например, webButton):
1. Инициализируйте глобальную переменную до 0
2. регистрирует новую функцию как прослушиватель типа onafterajax:

_elem.ownerDocument.parentWindow.A4J.AJAX.AddListener({
        onafterajax: function(req, event, data) {
            globalVariable = 1;
        }
    });
  1. Нажмите кнопку
  2. Войдите в своего рода цикл "занято-ожидание":

     while (globalVariable! = 1) { 
     _util.Wait (250);
    }
    

Зарегистрированная нами функция вызывается по завершении ajax и изменяет globalVariable, поэтому цикл while завершается. Я знаю, что это уродливо, но работает отлично.

Наша единственная проблема в том, что QTP 10 реализует _util.wait, а QTP 9.5 - нет. Без ожидания браузер застрянет в бесконечном цикле, и зарегистрированная функция никогда не будет вызвана. Было бы очень полезно любое решение, касающееся реализации в Jscript ожидания ожидания без занятости.

2
ответ дан 15 December 2019 в 01:08
поделиться

Основываясь на моем опыте автоматизации тестов для веб-приложений с помощью вызовов AJAX, я предлагаю вам принять во внимание следующее.

  1. Механизм распознавания объектов QTP ищет GUI ] объекты с дескриптором Windows. Поэтому по возможности используйте только объекты графического интерфейса. При тестировании вручную вы также не достигнете объекта XmlHttpRequest, но это не помешает вам выполнить функциональное тестирование. Вы по-прежнему можете синхронизировать различные события на основе изменения свойств объектов графического интерфейса. Например. Появилось / исчезло изображение или текст "загрузка ...". Выпадающий список перестал добавлять новые элементы. Кнопка становится включенной / отключенной.

  2. Если это ваше внутреннее приложение, вы можете разработать более удобную поддержку QTP, и здесь вы можете использовать руководства из набора инструментов расширяемости. Кроме того, в качестве варианта тестовой сборки вы можете включить объект GUI (невидимое изображение или текстовый элемент) и использовать его для обозначения состояний транзакций AJAX.

  3. Наконец, вы все еще можете напрямую обращаться к DOM для доступа к объектам, не относящимся к GUI, хотя я не У меня нет информации об использовании объекта XmlHttpRequest таким образом.

Спасибо, Альберт Гареев

2
ответ дан 15 December 2019 в 01:08
поделиться

Надеюсь, вам пригодится следующая статья.

Синхронизация для приложений AJAX. http://relevantcodes.blogspot.com/2009/06/synchronization-for-ajax-applications.html

Спасибо, Альберт Гареев

0
ответ дан 15 December 2019 в 01:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: