Testowanie strony logowania za pomocą programu Robot Framework
Dzięki Robot Framework nauczyliśmy się do tej pory następujących rzeczy -
- Importuj biblioteki
- Praca ze zmiennymi
- Utwórz niestandardowe słowa kluczowe
- Jak pisać przypadki testowe
- Jak stworzyć konfigurację i porzucić
- Jak wykonywać przypadki testowe
- Jak pracować z przypadkami testowymi opartymi na danych
Użyjemy wszystkich powyższych funkcji i użyjemy ich do przetestowania strony logowania w tym rozdziale. Mamy stronę logowania, która pobiera identyfikator e-mail i hasło. Po wprowadzeniu prawidłowego adresu e-mail i hasła zostaniesz przekierowany na stronę powitalną. Jeśli użytkownik wprowadzi nieprawidłowy identyfikator e-mail lub hasło, strona zostanie przekierowana na stronę błędu.
Poniższy zrzut ekranu przedstawia stronę logowania -
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/login_page.jpg)
Kod HTML
<html>
<head>
<title>Login Page</title>
</head>
<body>
<script type="text/javascript">
function wsSubmit() {
if (document.getElementById("email").value == "[email protected]" && document.getElementById("passwd").value == "admin") {
location.href = "http://localhost/robotframework/success.html";
} else {
location.href = "http://localhost/robotframework/loginfailed.html";
}
}
</script>
<div id="formdet">
Email : <input type="text" id="email" value="" id="email" /><br/><br/>
Password : <input type="password" id="passwd" value="" /><br/><br/>
<input type="submit" id="btnsubmit" value="Submit" onClick="wsSubmit();"/>
</div>
</body>
</html>
Poniższy ekran pojawia się, gdy identyfikator e-mail lub hasło są nieprawidłowe -
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/login_password_page.jpg)
Kod HTML
<html>
<head>
<title>Login Failed</title>
</head>
<body>
<div id="loginfailed">
<h1>Login Failed</h1>
</div>
</body>
</html>
Poniższy ekran pojawia się, gdy zarówno identyfikator e-mail, jak i hasło są prawidłowe -
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/email_password_page.jpg)
Kod HTML
<html>
<head>
<title>Login Successful</title>
</head>
<body>
<div id="loginfailed">
<h1>Login Successful</h1>
</div>
</body>
</html>
Teraz napiszemy przypadki testowe dla powyższej strony testowej. Aby zacząć od tego, najpierw uruchomimy polecenie, aby otworzyć Ride.
Komenda
ride.py
Po zakończeniu rozpoczniemy konfigurację projektu, jak pokazano poniżej -
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/login_project_setup.jpg)
Kliknij Nowy projekt i wprowadź nazwę projektu.
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/name_project_setup.jpg)
Typ projektu zapiszemy jako Katalog. Nazwa nadana projektowi to testlogin.
Kliknij OK, aby zapisać projekt.
Teraz stworzymy zestaw testów wewnątrz projektu.
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/test_suite.jpg)
Kliknij Nowy pakiet, a wyświetli się ekran, jak pokazano poniżej -
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/display_suite.jpg)
Kliknij OK, aby zapisać zestaw testów. Musimy zaimportować bibliotekę Selenium, ponieważ będziemy pracować z przeglądarką.
Importuj bibliotekę w głównym projekcie, a także do utworzonego zestawu testów.
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/created_suite.jpg)
Kliknij Biblioteka, jak na powyższym zrzucie ekranu. Po kliknięciu Biblioteki pojawi się następujący ekran.
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/screen_suite.jpg)
Kliknij OK, aby zapisać bibliotekę dla projektu.
Gdy biblioteka zostanie zapisana dla projektu, wyświetli bibliotekę w ustawieniach -
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/settings_suite.jpg)
Powtórz ten sam krok dla utworzonego zestawu testów.
Oto biblioteka dodana do zestawu testów -
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/library_suite.jpg)
Teraz w głównym projekcie stworzymy konfigurację i dezaktywację. Chcielibyśmy otworzyć stronę logowania w przeglądarce Chrome i zmaksymalizować okno. Po zakończeniu zamkniemy przeglądarkę.
Podczas konfiguracji utworzymy zdefiniowane przez użytkownika słowo kluczowe o nazwie Open Login Page. To słowo kluczowe przyjmie 2 argumenty, adres URL strony logowania i nazwę przeglądarki.
Teraz potrzebujemy 2 zmiennych skalarnych, które pomogą nam przechowywać wartości - url i nazwę przeglądarki.
Podczas jazdy utwórz 2 zmienne ${loginpage} i ${browser} w następujący sposób -
${loginpage}
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/loginpage.jpg)
${browser}
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/browser.jpg)
Zapisz obie zmienne.
Zmienne będą wyświetlane pod Twoim projektem w następujący sposób -
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/variables_displayed.jpg)
Teraz dodamy konfigurację i zakończenie głównego projektu.
Kliknij projekt po lewej stronie. W ustawieniach kliknij Konfiguracja pakietu.
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/suite_setup.jpg)
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/suite_setup_setting.jpg)
Stworzyliśmy konfigurację, która używa słowa kluczowego użytkownika Open Login Page z argumentami ${loginpage} i ${browser}.
Kliknij OK, aby zapisać ustawienia.
Teraz musimy utworzyć słowo kluczowe zdefiniowane przez użytkownika Open Login Page, co jest wykonywane w następujący sposób -
Kliknij projekt prawym przyciskiem myszy i kliknij New User Keyword -
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/new_user_keyword_project.jpg)
Po kliknięciu New User Keywordpojawia się następujący ekran -
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/new_user_keyword_appears.jpg)
Tutaj słowo kluczowe ma 2 argumenty - ${loginpage} i ${browser}. Kliknij OK, aby zapisać słowo kluczowe użytkownika.
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/new_user_keyword_arguments.jpg)
Teraz musimy wpisać słowa kluczowe biblioteki, które otworzą adres URL.
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/new_user_keyword_library.jpg)
Open Login Page Słowo kluczowe zdefiniowane przez użytkownika zawiera następujące szczegóły -
*** Keywords ***
Open Login Page
[Arguments] ${loginpage} ${browser}
Open Browser ${loginpage} ${browser}
Maximize Browser Window
Title Should Be Login Page
Teraz będziemy tworzyć Suite Teardown do pakietu.
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/suite_teardown.jpg)
Kliknij Edytuj dla Suite Teardown i wprowadź szczegóły -
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/suite_teardown_details.jpg)
W przypadku porzucenia pakietu używamy bezpośrednio słowa kluczowego library, które zamyka przeglądarkę. Kliknij przycisk OK, aby zapisać dezaktywację pakietu.
Teraz kliknij utworzony przez nas pakiet Testlogin.
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/suite_teardown_login.jpg)
Utwórzmy teraz konfigurację dla zestawu testów - Konfiguracja testu. Ta konfiguracja musi zostać wykonana jako pierwsza.
Kliknij Edytuj, aby skonfigurować test i wprowadź szczegóły.
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/suite_teardown_setup.jpg)
Na potrzeby konfiguracji testu utworzyliśmy zdefiniowane przez użytkownika słowo kluczowe o nazwie Login Page Display, który przyjmie argument jako ${loginpage} jak na powyższym zrzucie ekranu.
Kliknij OK, aby zapisać konfigurację testu.
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/suite_teardown_save.jpg)
Teraz musimy utworzyć słowo kluczowe użytkownika Login Page Display.
Kliknij prawym przyciskiem myszy zestaw testów i kliknij New User Keyword jak pokazano poniżej -
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/suite_teardown_click.jpg)
Nowe słowo kluczowe użytkownika wyświetli ekran, jak pokazano poniżej -
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/suite_teardown_display.jpg)
Kliknij OK, aby zapisać słowo kluczowe.
Wprowadźmy teraz słowo kluczowe, którego potrzebujemy jako słowo kluczowe użytkownika Login Page Display.
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/login_page_display.jpg)
Tutaj chcemy przejść do loginpage i sprawdź, czy tytuł strony zgadza się z podaną wartością.
Teraz dodamy szablon do zestawu testów i utworzymy przypadki testowe oparte na danych.
Aby utworzyć szablon, kliknij pakiet i po prawej stronie kliknij Edytuj dla szablonu testu.
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/data_driven_test_cases.jpg)
Nastąpi przekierowanie do następującego ekranu -
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/data_driven_directed.jpg)
Logowanie testowe jest ponownie słowem kluczowym zdefiniowanym przez użytkownika. Kliknij OK, aby zapisać szablon.
Zanim utworzymy słowo kluczowe Test Login, potrzebujemy kilku zmiennych skalarnych. Zmienne skalarne będą zawierały szczegóły identyfikatora e-mail, hasła, strony sukcesu, strony niepowodzenia itp.
Utworzymy zmienne skalarne dla zestawu testów w następujący sposób -
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/scalar_variables_test_suite.jpg)
Utworzyliśmy zmienne skalarne adres e-mail, hasło, stronę sukcesu i stronę awarii, jak pokazano na powyższym zrzucie ekranu.
Teraz będziemy tworzyć Test LoginSłowo kluczowe zdefiniowane przez użytkownika. Kliknij prawym przyciskiem myszy zestaw testów i kliknij Nowe słowo kluczowe użytkownika.
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/create_test_login.jpg)
Kliknij OK, aby zapisać słowo kluczowe.
Poniższy zrzut ekranu przedstawia słowa kluczowe wprowadzone do logowania testowego -
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/screenshot_test_login.jpg)
Enter Email, Enter Password, Submit Details i Login Should Fail to słowa kluczowe zdefiniowane przez użytkownika, które są zdefiniowane w następujący sposób -
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/login_should_fail.jpg)
Wprowadź e-mail
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/enter_email.jpg)
Wprowadź hasło
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/enter_password.jpg)
Prześlij szczegóły
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/submit_details.jpg)
Logowanie powinno się nie powieść
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/login_should_fails.jpg)
Teraz napiszemy przypadki testowe, które przyjmą różne identyfikatory e-mail i hasła do utworzonego szablonu.
Poniżej znajduje się lista przypadków testowych -
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/password_details.jpg)
Przypadek testowy z nieprawidłowym identyfikatorem e-mail
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/invalid_email.jpg)
E-mail jest przekazywany z wartościami [email protected], a $ {hasło} to hasło przechowywane w zmiennej.
nieprawidłowe hasło
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/invalid_password.jpg)
Nieprawidłowy identyfikator e-mail i hasło
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/invalid_passwords.jpg)
Pusty identyfikator e-mail
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/empty_email_id.jpg)
Puste hasło
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/empty_password.jpg)
Pusty adres e-mail i hasło
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/empty_passwords.jpg)
Skończyliśmy z przypadkami testowymi i możemy uruchomić to samo.
Przejdź do zakładki Uruchom i kliknij Start, aby wykonać przypadki testowe.
![](https://post.nghiatu.com/assets/tutorial/robot_framework/images/run_tab_execute.jpg)
Oto komunikaty dziennika dotyczące przypadków testowych -
20181027 18:11:40.353 : INFO : Opening browser 'chrome' to base url '
http://localhost/robotframework/login.html'.
20181027 18:11:45.960 : INFO : Page title is 'Login Page'.
Starting test: Testlogin.Testlogin Suite.Invalid EmailId
20181027 18:11:45.991 : INFO : Opening url 'http://localhost/robotframework/login.html'
20181027 18:11:46.169 : INFO : Page title is 'Login Page'.
20181027 18:11:46.180 : INFO : Typing text '[email protected]' into text field 'email'.
20181027 18:11:46.706 : INFO : Typing text 'admin' into text field 'passwd'.
20181027 18:11:47.075 : INFO : Clicking button 'btnsubmit'.
20181027 18:11:47.565 : INFO : Current location is 'http://localhost/robotframework/loginfailed.html'.
20181027 18:11:47.584 : INFO : Page title is 'Login Failed'.
Ending test: Testlogin.Testlogin Suite.Invalid EmailId
Starting test: Testlogin.Testlogin Suite.Invalid Password
20181027 18:11:47.600 : INFO : Opening url 'http://localhost/robotframework/login.html'
20181027 18:11:47.767 : INFO : Page title is 'Login Page'.
20181027 18:11:47.783 : INFO : Typing text '[email protected]' into text field 'email'.
20181027 18:11:48.342 : INFO : Typing text 'invalid' into text field 'passwd'.
20181027 18:11:48.701 : INFO : Clicking button 'btnsubmit'.
20181027 18:11:49.035 : INFO : Current location is 'http://localhost/robotframework/loginfailed.html'.
20181027 18:11:49.051 : INFO : Page title is 'Login Failed'.
Ending test: Testlogin.Testlogin Suite.Invalid Password
Starting test: Testlogin.Testlogin Suite.Invalid EmailId And Password
20181027 18:11:49.054 : INFO : Opening url 'http://localhost/robotframework/login.html'
20181027 18:11:49.213 : INFO : Page title is 'Login Page'.
20181027 18:11:49.221 : INFO : Typing text 'invalid' into text field 'email'.
20181027 18:11:49.555 : INFO : Typing text 'invalid' into text field 'passwd'.
20181027 18:11:49.883 : INFO : Clicking button 'btnsubmit'.
20181027 18:11:50.162 : INFO : Current location is 'http://localhost/robotframework/loginfailed.html'.
20181027 18:11:50.176 : INFO : Page title is 'Login Failed'.
Ending test: Testlogin.Testlogin Suite.Invalid EmailId And Password
Starting test: Testlogin.Testlogin Suite.Empty Emailid
20181027 18:11:50.188 : INFO : Opening url 'http://localhost/robotframework/login.html'
20181027 18:11:50.302 : INFO : Page title is 'Login Page'.
20181027 18:11:50.306 : INFO : Typing text '' into text field 'email'.
20181027 18:11:50.486 : INFO : Typing text 'admin' into text field 'passwd'.
20181027 18:11:50.693 : INFO : Clicking button 'btnsubmit'.
20181027 18:11:50.935 : INFO : Current location is 'http://localhost/robotframework/loginfailed.html'.
20181027 18:11:50.958 : INFO : Page title is 'Login Failed'.
Ending test: Testlogin.Testlogin Suite.Empty Emailid
Starting test: Testlogin.Testlogin Suite.Empty Password
20181027 18:11:50.958 : INFO : Opening url 'http://localhost/robotframework/login.html'
20181027 18:11:51.063 : INFO : Page title is 'Login Page'.
20181027 18:11:51.071 : INFO : Typing text '[email protected]' into text field 'email'.
20181027 18:11:51.367 : INFO : Typing text '' into text field 'passwd'.
20181027 18:11:51.561 : INFO : Clicking button 'btnsubmit'.
20181027 18:11:51.796 : INFO : Current location is 'http://localhost/robotframework/loginfailed.html'.
20181027 18:11:51.808 : INFO : Page title is 'Login Failed'.
Ending test: Testlogin.Testlogin Suite.Empty Password
Starting test: Testlogin.Testlogin Suite.Empty Email And Password
20181027 18:11:51.811 : INFO : Opening url 'http://localhost/robotframework/login.html'
20181027 18:11:51.908 : INFO : Page title is 'Login Page'.
20181027 18:11:51.916 : INFO : Typing text '' into text field 'email'.
20181027 18:11:52.049 : INFO : Typing text '' into text field 'passwd'.
20181027 18:11:52.193 : INFO : Clicking button 'btnsubmit'.
20181027 18:11:52.419 : INFO : Current location is 'http://localhost/robotframework/loginfailed.html'.
20181027 18:11:52.432 : INFO : Page title is 'Login Failed'.
Ending test: Testlogin.Testlogin Suite.Empty Email And Password
Wniosek
Widzieliśmy tutaj, jak przetestować stronę logowania z różnymi danymi wejściowymi, które sprawdzą, czy logowanie działa poprawnie, czy nie. Szczegółowe informacje o tym, jak przebiega wykonanie, znajdują się w sekcji dziennika.