Я тестировал в Selenium IDE. Он довольно прост в использовании, и я создал с ним несколько тестовых примеров. Я искал Google, пытаясь найти способ повторить мои тесты автоматически. Я видел решение с gotolabel, в то время как циклы и т.д. Но я не мог заставить их работать. Может кто-нибудь дать мне совет о том, как цикл мой тест n
раз, или цикл навсегда. Я ценю любую помощь.
Как проверить цикл в Selenium IDE?
Ответ 1
Сделайте это:
- Загрузите этот файл js: https://github.com/darrenderidder/sideflow/blob/master/sideflow.js
- Запустите Selenium IDE из Firefox и откройте меню опций.
- Загрузите файл .js в поле "Расширения ядра Selenium (user-extensions.js)".
Файл js предоставляет функции goto, gotoIf и while в Selenium IDE. В приведенном ниже примере показан простой цикл:
<tr>
<td>getEval</td>
<td>index = 0;</td>
<td></td>
</tr>
<tr>
<td>while</td>
<td>index < 10;</td>
<td></td>
</tr>
<tr>
<td>storeEval</td>
<td>index</td>
<td>value</td>
</tr>
<tr>
<td>echo</td>
<td>${value}</td>
<td></td>
</tr>
<tr>
<td>getEval</td>
<td>index++;</td>
<td></td>
</tr>
<tr>
<td>endWhile</td>
<td></td>
<td></td>
</tr>
Ответ 2
как указано в ответе выше, установите расширение пользователя, которое добавит функции цикла для тестов Selenium IDE. В приведенном ниже примере показан простой цикл:
<tr>
<td>getEval</td>
<td>index = 0;</td>
<td></td>
</tr>
<tr>
<td>while</td>
<td>index < 10;</td>
<td></td>
</tr>
<tr>
<td>storeEval</td>
<td>index</td>
<td>value</td>
</tr>
<tr>
<td>echo</td>
<td>${value}</td>
<td></td>
</tr>
<tr>
<td>getEval</td>
<td>index++;</td>
<td></td>
</tr>
<tr>
<td>endWhile</td>
<td></td>
<td></td>
</tr>
Ответ 3
Я новичок в Selenium (только начал использовать его несколько минут назад). После быстрого поиска Google для "петли селена" этот вопрос stackoverflow.com появился. Я сразу же прыгнул в расширение и начал использовать петли. Принятый ответ очень полезен. Тем не менее, я хотел указать что-то другое для других, которые являются новыми для селена (и спотыкаются на этой странице).
Я создал простой тест для простой веб-страницы. Я добавил цикл, чтобы тест выполнялся бесконечно (пока я не приостановил/не остановил его). Тем не менее, я заметил, что, делая это, счетчики Runs/Failures в графическом интерфейсе Selenium не увеличиваются с каждым циклом (я предполагаю, потому что один тестовый пример никогда не запускался до завершения, он просто зацикливался бесконечно). Поэтому я вырыл еще немного. Моя цель состояла в том, чтобы оставить один и тот же тест продолжительным (несколько часов или, возможно, на ночь), чтобы увидеть, были ли какие-либо сбои (я преследую прерывистую ошибку в данный момент).
Самый простой способ (для меня, после нескольких минут поиска/экспериментирования) было сделать следующее (вероятно, никаких плагинов не нужно, хотя подключенный плагин определенно полезен, если вы хотите запустить несколько небольших циклов в тестовом примере ):
- сохранить тестовый файл в текстовом файле
- сохранить тестовый набор в текстовый файл
- откройте текстовый файл тестового набора в текстовом редакторе
- скопируйте и вставьте тестовый пример несколько раз в тестовый набор (например, тысячу раз)
- затем откройте тестовый пакет в Selenium и запустите тестовый пакет
Теперь у меня такой же простой тестовый набор работает много раз, и счетчики Runs/Failures увеличиваются, как ожидалось (без необходимости каких-либо циклов).
Ответ 4
Используйте плагин управления потоками для Firefox. После перезапуска Firefox используйте команду label
, чтобы отметить точку в script и команду gotolabel
, чтобы перейти туда.
Например:
Или, если вы предпочитаете видеть исходный код, это метка:
<tr>
<td>label</td>
<td>start</td>
<td></td>
</tr>
И это заставляет точку выполнения вернуться к метке:
<tr>
<td>gotolabel</td>
<td>start</td>
<td></td>
</tr>
Существуют другие команды, которые вы можете увидеть на странице подключаемого модуля, и задокументированы в Проект Selenium IDE: проект управления потоком GitHub.
Ответ 5
Это образец для пользователя sampcop, чтобы автоматизировать жалобы на спам, используя метки и команды goto Label:
1 Вход на spamcop.net
Вариант использования спама 2-го использования
Запустите этот script
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="http://www.spamcop.net/sc" />
<title>testecase</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">testecase</td></tr>
</thead><tbody>
<tr>
<td>label</td>
<td>target1</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Report Now</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value='Send Spam Report(s) Now']</td>
<td></td>
</tr>
<tr>
<td>gotoLabel</td>
<td>target1</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>
Ответ 6
Ваш файл тестового набора - это всего лишь HTML файл, поэтому выполните следующие действия:
<tr><td><a href="testCase1.html">testCase1</a></td></tr>
<tr><td><a href="sameStep.html">sameStep</a></td></tr>
<tr><td><a href="testCase2.html">testCase1</a></td></tr>
<tr><td><a href="sameStep.html">sameStep</a></td></tr>
Ответ 7
Я нашел этот учебник более полезным, потому что некоторые из вышеприведенных ответов - это просто "пойти" на решения, а не на итеративные конструкции цикла:
http://www.software-testing-tutorials-automation.com/2013/07/example-of-while-and-endwhile-loop.html