2012-06-14 15 views
35

Testowałem w Selenium IDE. Jest bardzo łatwy w użyciu i stworzyłem z nim kilka przypadków testowych. Szukałem Google, próbując znaleźć sposób na powtórzenie moich testów automatycznie. Widziałem rozwiązanie z gotolabel, pętle itp. Ale nie mogłem zrobić żadnego z nich działa. Czy ktoś może dać mi wskazówkę, jak zapętlić mój test raz na n razy lub zapętlić na zawsze. Doceniam każdą pomoc.Jak zapętlić testy w Selenium IDE?

Odpowiedz

44

Wykonaj:

  1. Pobierz ten plik: js https://github.com/darrenderidder/sideflow/blob/master/sideflow.js
  2. uruchamiania selen IDE od Firefoksa i otwórz menu opcji.
  3. Prześlij plik .js do pola "Selenium Core extensions (user-extensions.js)".

Plik js zawiera funkcje goto, gotoIf i while w selekcji IDE. Poniższy przykład pokazuje prosty pętli:

<tr> 
    <td>getEval</td> 
    <td>index = 0;</td> 
    <td></td> 
</tr> 
<tr> 
    <td>while</td> 
    <td>index &lt; 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> 
+1

To naprawdę miłe w coś kura "po prostu działa". – fool4jesus

+0

Nie działa dla mnie. Selenium IDE mówi "[błąd] Nieznane polecenie:" while ". –

17

jak stwierdzono w odpowiedzi powyżej, zainstalować rozszerzenie użytkownika, który będzie dodać funkcjonalność pętli do testów IDE selen. Poniższy przykład pokazuje prosty pętli:

<tr> 
<td>getEval</td> 
<td>index = 0;</td> 
<td></td> 
</tr> 
<tr> 
<td>while</td> 
<td>index &lt; 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> 
0

To jest przykład dla sampcop użytkownika w celu zautomatyzowania skarg spam za pomocą etykiet i etykiet goto polecenia:

1-ty zalogować spamcop.net

2nd opcję Zgłoś spam używać

3-te uruchomić ten skrypt

<!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> 
+0

nie działa, czy jest zależny od wtyczki? –

+0

mój skrypt zależy od rozszerzenia rdzenia selenu przez Prashanta Vadhera – HelioSilva

4

Jestem nowy w Selenium (zacząłem używać go kilka minut temu). Po szybkim przeszukiwaniu Google dla "pętli selenu" pojawiło się to pytanie stackoverflow.com. Natychmiast wskoczyłem na przedłużenie i zacząłem używać pętli. Przyjęta odpowiedź jest bardzo pomocna. Chciałem jednak wskazać coś innego dla innych, którzy są nowicjuszami selenu (i potkną się na tej stronie).

Stworzyłem prosty test dla prostej strony internetowej. Dodałem pętlę, aby test był uruchamiany przez czas nieokreślony (dopóki nie zatrzymałem go). Zauważyłem jednak, że w ten sposób liczniki Runs/Failures w interfejsie graficznym Selenium nie zwiększają się z każdą pętlą (zgaduję, ponieważ pojedynczy przypadek testowy nigdy nie był uruchomiony do końca, po prostu pętla trwała przez czas nieokreślony). Więc poszperałem trochę dalej. Moim celem było pozostawienie tego samego testu uruchomionego przez długi czas (kilka godzin lub ewentualnie na noc), aby sprawdzić, czy nie ma żadnych błędów (w tej chwili ścigam sporadyczny błąd).

Najprostszy sposób (dla mnie, po kilku minutach wyszukiwania/eksperymentowania) polegał na wykonaniu następujących czynności (prawdopodobnie żadne wtyczki nie są potrzebne, chociaż załączona wtyczka jest zdecydowanie pomocna, jeśli chcesz uruchomić kilka małych pętli w teście przypadek):

  • Zapisz przypadku testowego do pliku tekstowego
  • zapisać zestaw testowy do pliku tekstowego
  • otworzyć plik tekstowy zestawu testowego w edytorze tekstowym
  • skopiuj i wklej przypadek testowy wiele razy w ramach zestawu testów (na przykład tysiąc d razy)
  • otwórz zestaw testów w selen i uruchomić zestaw testów

Teraz mam ten sam prosty zestaw testowy działa wiele razy, i tras/Awarie liczniki są inkrementacji zgodnie z oczekiwaniami (bez potrzeba dla każdej pętli).

4

Użyj Flow Control plug-in for Firefox. Po ponownym uruchomieniu przeglądarki Firefox użyj polecenia label, aby oznaczyć punkt w skrypcie i polecenie gotolabel, aby tam przeskoczyć.

Na przykład:

enter image description here

lub jeśli wolisz zobaczyć kod źródłowy, to jest etykieta:

<tr> 
    <td>label</td> 
    <td>start</td> 
    <td></td> 
</tr> 

A to powoduje, że punkt wykonanie przeskoczyć z powrotem do etykieta:

<tr> 
    <td>gotolabel</td> 
    <td>start</td> 
    <td></td> 
</tr> 

Istnieją inne polecenia, które można Zobacz na stronie wtyczki i udokumentowane w Selenium IDE: Flow Control GitHub project.

0

plik zestawu testowego jest tylko plik HTML, więc po prostu wykonaj następujące czynności:

<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>

Powiązane problemy