Aplikacje WWW - lab 11



Podobne dokumenty
Automatyzacja testów aplikacji webowych w Selenium podstawy. Natalia Krawczyk

Automatyzacja Testowania w WEB 2.0

Aplikacje WWW - lab 5

WŁĄCZANIE W PRZEGLĄDARKACH INTERNETOWYCH OBSŁUGI SKRYPTÓW JAVASCRIPT

KORZYSTANIE Z BAZY DANYCH UpToDate

Czym jest AJAX. AJAX wprowadzenie. Obiekt XMLHttpRequest (XHR) Niezbędne narzędzia. Standardowy XHR. XHR z obsługą baz danych

Testowanie aplikacji mobilnych z ukierunkowaniem na system Android

Zajęcia 4 - Wprowadzenie do Javascript

W dowolnej przeglądarce internetowej należy wpisać poniższy adres:

Zdalny dostęp do źródeł elektronicznych BUR dla pracowników i studentów Uniwersytetu Rzeszowskiego

instrukcja instalacji programu Neofon Spis treści Opis procedury instalacyjnej... 2 strona 1 z 8 Instrukcja instalacji programu Neofon

Zdalny dostęp do zasobów elektronicznych BGiOINT dla pracowników Politechniki Wrocławskiej

Konfiguracja przeglądarek do pracy z aplikacjami Asix.Evo Instalacja i konfiguracja dodatku IE Tab

Zdalny dostęp do źródeł elektronicznych BUR dla pracowników i studentów Uniwersytetu Rzeszowskiego

Mazowiecki Elektroniczny Wniosek Aplikacyjny

SYSTEM PROXY. Zdalny dostęp do zasobów elektronicznych BGiOINT Politechniki Wrocławskiej

PHICS - Polish Harbours Information & Control System Dokumentacja użytkownika System weryfikacji autentyczności polskich dokumentów marynarzy

Katalog książek cz. 3: Web Service

Jak poprawnie uruchomić okno do licytacji Agra Live," problemy z Java, instalacja, wersje.

Praca z programami SAS poza lokalną siecią komputerową UZ. Zestawienie tunelu SSH oraz konfiguracja serwera proxy w przeglądarce WWW

Warsztat: "Automatyzacja testów (JAVA) - od podstaw"

Instrukcja obsługi programu CMS Dla rejestratorów HANBANG

Instrukcja użytkownika systemu S4

Zdalny dostęp do źródeł elektronicznych BUR dla pracowników i studentów Uniwersytetu Rzeszowskiego

Aktualizacja modemu LTE Speed 1000

Platforma szkoleniowa krok po kroku

Instrukcja. Rejestracji i aktywacji konta w systemie so-open.pl DOTACJE NA INNOWACJE; SOFTWARE OPERATIONS SP. Z O. O.

Rejestratory i sieciowe kamery

elektroniczna Platforma Usług Administracji Publicznej

1. Po uruchomieniu przeglądarki Mozilla FireFox, należy uruchomić stronę

Instrukcja obsługi Kamery IP

Platforma szkoleniowa krok po kroku. Poradnik Kursanta

Dokumentacja użytkownika

Instalacja certyfikatu

Instrukcja użytkownika systemu S4

INSTRUKCJA INSTALACJI I KONFIGURACJI APLIKACJI WEBSOFT SITE ANALYZER 2.7.1

INSTRUKCJA AKTUALIZACJI PRZEGLĄDARKI. Wersja dokumentu 1.0

Dokumentacja modułu Woocommerce

Generatory pomocy multimedialnych

Ćwiczenie: JavaScript Cookies (3x45 minut)

Jak przeglądać publikacje w formacie DjVu?

Testy aplikacji webowych

Podstawy technologii WWW

Autoryzacja zleceń z użyciem aplikacji Java Web Start "Pocztowy24Podpis"

Obsługa modułu. e-deklaracje. w programach WF-FaKir oraz WF-Gang. (opracował Przemysław Gola)

Skrócona instrukcja korzystania z baz udostępnionych w Bibliotece SGH. na komputerach będących poza siecią SGH

Instrukcja instalacji i konfiguracji podpisu kwalifikowanego dla systemu bankowości elektronicznej

WebAii Automation Framework

plansoft.org Zmiany w Plansoft.org Błyskawiczny eksport danych PLANOWANIE ZAJĘĆ, REZERWOWANIE SAL I ZASOBÓW

HermesEX. Dokumentacja serwisowa v

BOŚBank24. Instrukcja instalacji i konfiguracji podpisu elektronicznego Szafir wydawanego przez KIR S.A. BANKOWOŚĆ ELEKTRONICZNA DLA FIRM

pomocą programu WinRar.

instrukcja INSTALACJI APi_proxy

Zagadnienia: Ścieżki do informacji - wpisywanej po znaku ukośnika / Nazwy dokumentu (w szczególności strony www, czyli strony internetowej).

Informacje o aktualizacji oprogramowania

Szkolenie: Podstawy automatyzacji z Selenium IDE

Instrukcja konfiguracji popularnych przeglądarek internetowych systemu Windows do pracy z urządzeniami INTERNEC serii i7 oraz i5.

1. Korzystając z menu wybieramy Narzędzia, a następnie Opcje internetowe. W zakładce Ogólne wybieramy w sekcji Historia przeglądania przycisk Usuń:

Instrukcja instalacji oprogramowania dla środowiska Windows

Platformy programistyczne:.net i Java L ABORATORIUM 7,8: HACKATHON - JTTT

INSTRUKCJA INSTALACJI I KONFIGURACJI APLIKACJI WEBSOFT CEIDG MONITOR

OpenLaszlo. OpenLaszlo

Instrukcja logowania do systemu e-bank EBS

Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

Wykład 5: PHP: praca z bazą danych MySQL

1. Instalacja platformy.net Framework.

Paweł Rajba,

edistro.pl Spis treści

OmniTouch 8400 Instant Communications Suite Integracja z programem Microsoft Outlook

Przykładowa konfiguracja konta pocztowego w programie Outlook Express z wykorzystaniem MKS 2k7 (MS Windows 2000 Proessional)

KolNet. Konfiguracja kolektora Honeywell i instalacja programu. NET Innovation Software Sp. z o. o.

Hot Potatoes. Zdania z lukami Przyporządkowanie. Tworzy spis wszystkich zadań. Krzyżówki

Tutaj znajdziesz Odpowiedź na: Najczęściej Spotykane Problemy Najczęściej zadawane Pytania

Wersja polska. Wstęp. Zawartość opakowania. Uwaga! WC030 Sweex Webcam 300K with Microphone USB

1. Podręcznik instalacji aplikacji EXR Creator Wstęp Instalacja Instalacja aplikacji EXR Creator z płyty CD

Instrukcja instalacji odtwarzacza RealPlayer dla systemu Windows.

Instrukcja dla Kandydatów na staż w Projekcie SIMS

Rejestr CLiO2 Instrukcja obsługi. dr n. med. Michał Skrzypek

Podstawy programowania w języku JavaScript

PHP: bazy danych, SQL, AJAX i JSON

Polityka cookies w serwisie internetowym

AKTYWNY SAMORZĄD. Instrukcja instalacji, aktualizacji i konfiguracji.

INSTRUKCJA obsługi certyfikatów

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

elektroniczna Platforma Usług Administracji Publicznej

Aplikacja npodpis do obsługi certyfikatu

(instrukcja użytkownika v. 1.0)

Płatny dostęp do treści przez system płatności PayU na WordPressie [TUTORIAL]

Instrukcja instalacji środowiska testowego na TestingCup wersja 1.0

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

11. Rozwiązywanie problemów

Instrukcja użytkownika

FAQ Systemu EKOS. 1. Jakie są wymagania techniczne dla stanowiska wprowadzania ocen?

Instrukcja połączenia z programem Compas LAN i import konfiguracji

Przewodnik użytkownika (instrukcja) AutoMagicTest

Instrukcja instalacji oprogramowania Systemu e-kt

Stworzenie programu KSIĄŻKA ADRESOWA posiadającego funkcjonalności przechowywania danych o osobach dodanych przez użytkownika.

REFERAT O PRACY DYPLOMOWEJ

Transkrypt:

Aplikacje WWW - lab 11 Jan Wróblewski 19 maja 2015

Selenium Selenium to framework do automatyzacji czynności wykonywanych w przeglądarce internetowej. Strona WWW: http://www.seleniumhq.org. Jest w stanie automatyzować wyszukiwanie elementów, wpisywanie znaków w formularz, klikanie na guziki i inne. Wszystko to dzieje się w prawdziwej przeglądarce z jej natywną implementacją JavaScript i innych technologii. Wspierane są najpopularniejsze przeglądarki, m. in. Firefox, Chrome, IE, Safari, Opera. Możemy sobie wybrać na czym testujemy. Jan Wróblewski Lab 11 19.05.2015 2 / 15

Selenium Jest kilka produktów Selenium: Selenium WebDriver - służy do automatycznego wykonywania czynności w przeglądarce za pomocą skryptu w języku programowania Python, Java, C#, Ruby, Perl lub PHP; Selenium IDE - to add-on do Firefoxa, który nagrywa makra z czynności które ręcznie wykonujemy w przeglądarce, a potem odtwarza je; Selenium Grid - gdybyśmy chcieli odpalić testy na wielu serwerach z różnymi konfiguracjami; Selenium Remote Control - kontrolowanie przeglądarki uruchomionej na innym serwerze lub lokalnie jako aplikacja klient-serwer. My będziemy używać Selenium WebDrivera do testów automatycznych. Jan Wróblewski Lab 11 19.05.2015 3 / 15

Selenium przez Pythona Na początek musimy zainstalować selenium. Na studentsie go nie ma, więc musimy zrobić to w virtualenvie. $ virtualenv ve $ source ve/bin/activate (ve)$ pip install selenium Tu jest dobry tutorial/dokumentacja na początek: http://selenium-python.readthedocs.org. Jan Wróblewski Lab 11 19.05.2015 4 / 15

Aplikacja do testowania Przetestujmy AJAXową aplikację z aukcjami z ostatnich zajęć: http://www.mimuw.edu.pl/~xi/download/www/auctions2.zip. Powinna działać na studentsie (Python 2.7, Django 1.7.7). Uruchamiamy ją np. na localhost:8000. Zrobimy dwa testy: Sprawdzimy czy poprawnie podbijana jest cena po wpisaniu większej ceny niż obecna i kliknięciu przycisku; Sprawdzimy czy poprawnie nie jest podbijana cena po wpisaniu mniejszej ceny i czy wyświetla się przy tym jakiś alert. Jan Wróblewski Lab 11 19.05.2015 5 / 15

Test case 1 # -*- encoding=utf-8 -*- from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions driver = webdriver.firefox() driver.get("http://localhost:8000") assert u"aukcja U" in driver.title elem = driver.find_element_by_css_selector("span#current-price") currentprice = elem.text newprice = str(int(currentprice) + 1) elem = driver.find_element_by_css_selector("input#price") elem.send_keys(newprice) elem = driver.find_element_by_css_selector("button#bid") elem.click() wait = WebDriverWait(driver, 10) wait.until(expected_conditions.text_to_be_present_in_element((by.id, current-price ), newprice)) driver.close() Prześledźmy wykonanie tego skryptu po kolei. Jan Wróblewski Lab 11 19.05.2015 6 / 15

Test case 1 Otwieranie przeglądarki driver = webdriver.firefox() Stworzenie obiektu drivera otwiera przeglądarkę podłączoną pod selenium. W tym przypadku otwierany jest Firefox i otwierane jest jego okno. Otwieranie strony w przeglądarce driver.get("http://localhost:8000") To otwiera konkretną stronę w przeglądarce. Jan Wróblewski Lab 11 19.05.2015 7 / 15

Test case 1 Asercja na tytule assert u"aukcja U" in driver.title To pierwsza część testów. Sprawdzamy czy tytuł zawiera podstring Aukcja U. Możemy dać też Używany kapeć, by sprawdzić czy dobrze pobieramy dane z bazy danych. W Pythonie 2 string musimy poprzedzić literką u, aby był w Unicode i przyjmował polskie znaki. Musimy też ustawić kodowanie na utf-8. Asercje rzucą wyjątkiem, jeżeli wartość logiczna w nich podana będzie False. Jan Wróblewski Lab 11 19.05.2015 8 / 15

Test case 1 Wybór elementu i jego zawartości tekstowej elem = driver.find_element_by_css_selector( "span#current-price") currentprice = int(elem.text) newprice = str(currentprice + 1) Znajdujemy element z obecną ceną za pomocą selektora CSS i pobieramy z niego obecną wartość tekstową. Jeżeli element nie zostanie znaleziony to będzie rzucony wyjątek. Konwertujemy cenę na inta i obliczamy podbitą cenę. Jan Wróblewski Lab 11 19.05.2015 9 / 15

Test case 1 Wpisywanie znaków w input elem = driver.find_element_by_css_selector("input#price") elem.send_keys(newprice) Znajdujemy pole do wpisania nowej ceny i symulujemy wpisywanie znaków. Klikanie w guzik elem = driver.find_element_by_css_selector("button#bid") elem.click() Znajdujemy guzik do wysłania nowej ceny i symulujemy kliknięcie. W tym momencie przeglądarka zaczyna wykonywać asynchronicznie żądanie AJAX. Jan Wróblewski Lab 11 19.05.2015 10 / 15

Test case 1 Czekanie na zmianę tekstu wait = WebDriverWait(driver, 10) wait.until(expected_conditions. text_to_be_present_in_element( (By.ID, current-price ), newprice)) Potrzebujemy mechanizmu do poczekania na wykonanie się AJAXa lub innej akcji - waita. Czekamy do 10 sekund aż tekst w elemencie o id current-price zmieni swoją wartość na nową cenę. W przeciwnym razie rzucamy wyjątek. Jest wiele akcji, na które możemy czekać - patrz dokumentacja. Jan Wróblewski Lab 11 19.05.2015 11 / 15

Test case 1 Zamykanie przeglądarki w przypadku sukcesu driver.close() W ten sposób zamykamy przeglądarkę. Jeżeli po drodze wystąpi wyjątek to przeglądarka pozostanie otwarta. Zamykanie przeglądarki zawsze try: # skrypt testujacy finally: driver.close() W ten sposób zamykamy przeglądarkę po wykonaniu się testów, nawet jeżeli wystąpi wyjątek. Jan Wróblewski Lab 11 19.05.2015 12 / 15

Test case 2 Teraz sprawdzamy czy po wpisaniu za niskiej ceny mamy błąd i brak zmiany ceny. # -*- encoding=utf-8 -*- from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.alert import Alert from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions driver = webdriver.firefox() driver.get("http://localhost:8000") elem = driver.find_element_by_css_selector("span#current-price") currentprice = elem.text newprice = str(int(currentprice) - 1) elem = driver.find_element_by_css_selector("input#price") elem.send_keys(newprice) elem = driver.find_element_by_css_selector("button#bid") elem.click() wait = WebDriverWait(driver, 10) wait.until(expected_conditions.alert_is_present()) Alert(driver).dismiss() elem = driver.find_element_by_css_selector("span#current-price") assert currentprice == elem.text driver.close() Jan Wróblewski Lab 11 19.05.2015 13 / 15

Test case 2 Czekanie na alerta wait.until(expected_conditions.alert_is_present()) W ten sposób czekamy na pojawienie się alerta. Zamykanie alerta Alert(driver).dismiss() W ten sposób zamykamy alerta. Gdyby alert zawierał opcję tak/nie, moglibyśmy również użyć accept()/dismiss() odpowiednio. Jan Wróblewski Lab 11 19.05.2015 14 / 15

Materiały Selenium: Dobra nieoficjalna dokumentacja-tutorial: http://selenium-python.readthedocs.org. Pełna dokumentacja dla Pythona: http: //selenium.googlecode.com/svn/trunk/docs/api/py/index.html. Pełna dokumentacja narzędzia: http://www.seleniumhq.org/docs. Extra: Unit testy w Django: https://realpython.com/blog/python/ django-1-6-test-driven-development/. Łączenie selenium z testami automatycznymi Django: http://agiliq.com/blog/2014/09/selenium-testing/. Jan Wróblewski Lab 11 19.05.2015 15 / 15