Witam
Chciałbym testować stronę losowymi danymi testowymi. Niewiem jak to zrobić. Ktoś coś podpowie?
Losowe dane testowe - webdriver
- Rejestracja: dni
- Ostatnio: dni
- Postów: 42
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1272
- Pobierasz z pliku.
- Randomizujesz
- Losowo wybierasz z pliku
- Rejestracja: dni
- Ostatnio: dni
- Postów: 65
Jaki język? jakie konkretnie dane? String, dane liczbowe?
Jeżeli zaś chcesz przetestować kilka opcji, to jest wygenerować kilka testów dla różnych zestawów danych z tymi samymi krokami, pomyśl o jakimś frameworku do DDT, np easytest dla javy albo DDT dla pythona.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 42
Mam narzucone selenium i dopiero się uczę. W web driverze w javie napisałem test/skrypt uzupełniający formularz. Działa, uzupełnia danymi na sztywno, ale to ma się testować automatycznie. Dlatego potrzebuję gdzieś umieścić sobie dane testowe i importować je do testu. Też nie wiem jak generować jakieś raporty, żeby widzieć które dane przeszły a na których się wysypało. Na razie chcę się skupić na tym jednym formularzu, żeby zrozumieć o co chodzi, a potem dołączać następne moduły albo osobne testy dla nich pisać.
Język to java a dane i stringi i liczby.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1272
Przykład 1:
- Tworzysz lub ściągasz plik w którym masz listę różnych imion męskich.
- Tworzysz lub ściągasz plik w którym masz listę różnych nazwisk w męskiej formie.
- Wczytujesz przy pomocy IOUtils (apache commons) te pliki metodą readLines.
- Przy pomocy obiektu klasy Random losujesz jedną linię z listy imion i jedno imię z listy nazwisk oraz łączysz to 1 string.
- Wpisujesz otrzymany string do pola formularza przez webdriver.
Przykład 2:
- Losujesz liczbę od 0 do 40 przy pomocy obiektu klasy Random.
- Dodajesz do niej 18
- Tak otrzymaną liczbę możesz traktować jako wiek
- Rejestracja: dni
- Ostatnio: dni
- Postów: 65
Dzięki bibliotece easytest możesz dostać konkretną informacje który test się wywalił (z którymi danymi). Tworzy ona oddzielny test dla każdego zestawu danych
Po dodaniu easytest do mavena (radzę poczytać o mavenie, jeśli jeszcze nie używasz)
- Tworzysz plik csv (lub xml) z danymi testowymi
- Dane wczytujesz do klasy poprzez wbudowane adnotacje
@RunWith(DataDrivenTestRunner.class)
@DataLoader(filePaths={testData.csv})
public class TestClass{
@Test
public void simplTestMethod(@Param(name="name")String name , @Param(name="age")int age , @Param(name="expectedOutput")int expectedOutput){
...............//your test conditions here
}
}
gdzie nazwa parametru odpowiada kolumnie w CSV. I teraz test będzie powtarzany tyle razy, ile danych testowych znajdzie kod.
Rozwiązania zaproponowane przez przedmówców są ok, ale żeby mieć dużo mówiący trace błędów, musiałbyś nadpisać klasę runnera, a jeśli dopiero zaczynasz, może być to kłopotliwe. Za to biblioteka zrobi to za Ciebie.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 42
Ok...teoretycznie może tak być. Gorzej z praktyką :/. Może jakiś przykład?
No właśnie dopiero zaczynam. Ogarnąłem IDE, web drivra trochę ale nie widzę sensu uczenia się go tworząc testy tylko za danymi na sztywno. Może podpowiedzcie mi w co jeszcze albo co w ogóle potrzebuję jako początkujący tester automatyczny?