Selenium RC игнорирует мой тайм-аут - PullRequest
0 голосов
/ 22 марта 2011

У меня есть простой тест Selenium, который запускается на удаленном экземпляре Selenium Server.

Я пытаюсь проверить производительность страницы, и некоторые страницы могут превышать максимальное время выполнения, и я пытаюсь это уловить.

Независимо от того, что я положил в setTimeout (), он всегда ожидает загрузки полной страницы или времени ожидания сервера.

public static $browsers = array(
    array(
        'name' => 'Firefox on Ubuntu',
        'browser' => '*firefox',
        'host' => 'dev-ubuntudesktop',
        'port' => 4444,
        'timeout' => '1000',
    ),
)

public function testSlowPage() {
    $this->setTimeout(1000);
    $this->open('myslowaddress');
    $this->assertTextNotPresent('Internal Server Error');
}

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

Что мне действительно нужно, так это тест, который подтверждает, что «страница загружается менее чем за 1 секунду», без ожидания 30 секунд (или независимо от того, установлено ли время ожидания PHP).

1 Ответ

0 голосов
/ 23 марта 2011

Метод Open неявно вызывает wait, хотите вы этого или нет.По умолчанию это ожидание составляет 30 секунд.И setTimeOut используется, когда ваша страница не загружается в течение 30 секунд.Следовательно, если ваша страница не загружается в течение 30 секунд, вы можете использовать setTimeOut, иначе ваши тесты не пройдут, поэтому это будет -

selenium.Open (appURL);selenium.setTimeOt (timeOut);

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

(Это в Java, но вы должны быть в состоянии найти эквивалент PHP)

int testStartTime = Calendar.getInstance().get(13);
selenium.open(appURL);      
int testEndTime = Calendar.getInstance().get(13);
Assert.assertTrue((testEndTime-testStartTime)>1, "Fail");

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...