Решение проблемы работы Webtest с AJAX


(Mykhailo Poliarush) #1

AjaxНедавно столкнулся с проблемой, если веб-приложение использует AJAX, то Canoo Webtest может не "увидеть" обновленную аджаксом HTML страницу, а будет пытаться работать с изначальным HTML..

Решение: по-сути, нужно просто добавить паузу в скрипт, чтобы Webtest подгрузил страницц до конца. Но чтобы тест не тормозил из-за таких пауз, лучше сделать ее динамической, давая тесту, например, 10 попыток по 1 секунде. Делаеться это так:

1) Определяем новый макрос:

<macrodef name="LoadAjax">
        <element name="value" implicit="yes"/>
        <sequential>
                <retry maxcount="10">
                        <sleep seconds="1"/>
                        <value/>
                </retry>
        </sequential>
</macrodef>

2) Используем его в тех местах, где используеться AJAX, как в этом примере:

<clickLink description="your link on the page that requests Ajax page update" ...../>

<loadAjax>
        ..... строка 1 продолжения теста, которая будет выполнена после "догрузки" страницы
</loadAjax>

.... остальное продолжение теста ...