Jak pisać testy? Wersja 2

Wielkość: px
Rozpocząć pokaz od strony:

Download "Jak pisać testy? Wersja 2"

Transkrypt

1 Jak pisać testy? Wersja 2 Jakub Stolarski Spis treści 1 Wymagania i 1.1 Instalacja i 2 Testy akceptacyjne ii 2.1 Przygotowanie danych do testów ii 2.2 Przygotowanie testów iii 3 Testy funkcjonalne v 3.1 Testowanie javascript viii 4 Test driven development xi 1 Wymagania Do testów oprócz Django potrzebne są biblioteki: Django-WebTest 1, WebTest 2, AllPairs 3 perf_utils, selenium Instalacja Instalacja zewnętrznych bibliotek za pomocą pip odbywa się poprzez wpisanie:

2 pip install webtest pip install django-webtest pip install AllPairs pip install selenium Zamiast pip install można użyć easy_install. Perf_utils znajduje się w naszym svn w django_project_templates (jak tak jak cms_project) ściągamy z svn: svn co svn:// /django_project_templates I uzupełniamy jeden z plików.pth w site-packages ścieżkami wskazującymi na katalogi: django_project_templates/src django_project_templates/src/cms_project Aplikację perf_utils należy dodać do INSTALED_APPS w pliku local_settings.py. 2 Testy akceptacyjne W MowimyJakV1 w pliku cms_local/acceptance_tests.py znajduje się przykładowy test akceptacyjny opisujący podstawowy przebieg tworzenia i publikowania artykułu w serwisie Opis przypadku testowego: admin lub kierownik definiują nowe zadanie (artykuł z kategorią i tytułem) redaktor widzi listę nowych zadań i pobiera interesujący go temat redaktor pisze tekst i przesyła go do sprawdzenia do admina (długość tekstu musi wynosić minimum 1000 znaków) kierownik otrzymuje podgląd artykułu przy sprawdzeniu admin może: opulikować artykuł lub zwrócić go do redaktora W tym przypadku testowym mamy 3 role admin, kierownik oraz redaktor. 2.1 Przygotowanie danych do testów Na początek wypełnijmy testową bazę. Uruchamiamy aplikację na testowej bazie: python manage.py testserver Wchodzimy do panelu administracyjnego i tworzymy użytkowników dla odpowiednich ról. Nazwijmy ich superredaktor1 (admin), kierownik1 (kierownik), redaktor1 (redaktor). Oprócz ról tworzymy potrzebne kategorie, grupy użytkowników, uprawnienia itp. Jeżeli mamy już działającą bazę można ją skopiować. Utworzona baza ma prefix test_ (możemy dodać w konfiguracji baz danych taką baze z aliasem test_mowimyjak, aby wygodniej operować na bazie danych). Możemy zgrać jej zawartość do plików json, które wykorzystamy jako fixture w naszych testach: python manage.py dumpdata --database test_mowimyjak auth articles.articleblocktype \ > cms_local/fixtures/auth.json python manage.py dumpdata --database test_mowimyjak categories \ > cms_local/fixtures/categories.json python manage.py dumpdata --database test_mowimyjak authors > cms_local/fixtures/authors.json python manage.py dumpdata --database test_mowimyjak agency > cms_local/fixtures/agency.json python manage.py dumpdata --database test_mowimyjak editorprofiles.editorial \

3 > editorprofiles/fixtures/editorial.json python manage.py dumpdata --database test_mowimyjak editorprofiles.editorprofile \ > editorprofiles/fixtures/editorprofiles.json 2.2 Przygotowanie testów Następnie tworzymy szablon testów: python manage.py gen_tests --template acceptance > acceptance_tests.py W szablonie uzupełniamy fixtures o ścieżki do wcześniej wygenerowanych fixtures i tworzymy klasę dla naszego testu: class AbstractMuratorTest(AcceptanceTestCase): fixtures = [ cms_local/fixtures/auth.json, cms_local/fixtures/categories.json, cms_loca/fixtures/authors.json, cms_loca/fixtures/agency.json, editorprofiles/fixtures/editorial.json, editorprofiles/fixtures/editorprofiles.json, ] class BasicWorkflowTest(AbstractMuratorTest): Teraz zróbmy test sprawdzający poprawność dodawania i publikacji artykułu. Metdy testów muszą zaczynać się od prefiksu test_: class BasicWorkflowTest(AbstractMuratorTest): def test_add_article(self): task_num = 1 self.task_title = test_zadanie%s % task_num # dodanie zadania przez kierownika self._supervisor_add_task() # dodawanie artykulu przez redaktora self._editor_add_article() # kierownik ma wgląd do artykulu self._supervisor_view_article() # zatwierdzenie artykulu przez administratora self._admin_publish_article() Przygotowaliśmy sobie pomocniczą zmienną task_title, która będzie tytułem zadania, a następnie artykułu. Test podzieliliśmy dla wygody na części wykonywane poprzez poszczególne role. Uzupełnijmy teraz część testu przypisaną do roli kierownika: def _supervisor_add_task(self): ## kierownik loguje sie do panelu kierownika response = self.app.get( /panel-kierownika/ ) response.form[ username ] = kierownik1 response.form[ word ] = test response = response.form.submit().follow()

4 ## klika dodaj zadanie response = response.click(href= articles/task/add/ ) ## wypelnia formularz response.form[ title ] = self.task_title response.form[ category ] = 22 ## klika na zapisz response = response.form.submit().follow() self.assertequals(response.status_code, 200) try: self.task = Task.objects.get(title=self.task_title) except Task.DoesNotExist: self.task = None self.assertfalse(self.task is None) ## i wylogowuje sie response.click(href= /panel-kierownika/logout ) Pod zmienną self.app znajduje się testowana aplikacja (więcej informacji w dokumentacji WebTest 2 ). Otwieramy stronę poprzez get, pobieramy jedyny znajdujący się tam formularz, uzupełniamy go i logujemy się. Ponieważ po poprawnym zalogowaniu następuje przekierowanie, to dorzucamy follow. Następnie klikamy na przycisk dodawania zadania, wypełniamy formularz i tworzymy nowe zadanie. Nowo utworzone zadanie zapisujemy, aby móc odwołać się do tego samego zadania w dalszej części testu. Na koniec wylogowujemy się. Analogicznie postępujemy dla pozostałych ról. Następnie wyciągamy testy z naszej klasy (aktualnie tylko jeden test) i tworzymy z nich zestaw testów, który podpinamy do głownego zestawu testów: basic_suite = test_loader.loadtestsfromtestcase(test_case) def suite(): suite = unittest.testsuite() test_suites = [ basic_suite ] test_loader = unittest.testloader() for test_suite in test_suites: suite.addtest(test_suite) return suite W tej samej klasie testów możemy i powinniśmy zdefiniować inne testy sprawdzające alternatywne ścieżki przebiegu (np. odrzucenie artykułu przez kierownika). Django automatycznie uruchamia jedynie te testy, które podpięte są w pliku tests.py w katalogu aplikacji. Dlatego musimy zaimportować tam nasze testy: import unittest def suite(): from cms_local.acceptance_tests import suite as acceptance_suite suite = unittest.testsuite() test_suites = [ acceptance_suite() ] for test_suite in test_suites: suite.addtest(test_suite) return suite Testy uruchamiamy poleceniem:

5 python manage.py test cms_local 3 Testy funkcjonalne W MowimyJakV1 w pliku cms_local/functional_tests.py znajduje się przykładowy test funkcjonalny sprawdzający działanie formularza tworzenia artykułu dla redaktora serwisu Opis przypadku testowego: jako zalogowany redaktor pobieramy zadanie, na podstawie którego tworzymy artykuł wypelniamy pola zajawka, tagi, treść, nadtytul, zdjęcie główne, galeria klikamy Zapisz i wyślij do sprawdzenia w wyniku otrzymujemy potwierdzenie, że artykuł został wysłany i trafiamy na strone główną panelu redaktora Alternatywne przypadki do przetestowania: uzupełniona zbyt długa zajawka brak zajawki brak tagów brak treści za długi nadtytuł Na początek generujemy szablon testów funkcjonalnych: python manage.py gen_tests --template functional > functional_tests.py Uzupełniamy szablon przez wcześniej wygenerowane fixtures oraz naszą klasą testową AddArticleTest. W każdym teście bedziemy potrzebować zadania, na podstawie którego powstanie artykuł. Dlatego w metodzie setup tworzymy takie zadanie i przypisujemy je pod self.task, aby łatwiej odwołać się do niego w testach. W częsci teardown powinniśmy wyczyścić wszystko to, co utworzyliśmy w setup (czyli nasze zadanie): class AbstractMuratorTest(AcceptanceTestCase): fixtures = [ cms_local/fixtures/auth.json, cms_local/fixtures/categories.json, cms_loca/fixtures/authors.json, cms_loca/fixtures/agency.json, editorprofiles/fixtures/editorial.json, editorprofiles/fixtures/editorprofiles.json, ] class AddArticleTest(AbstractMuratorTest): def setup(self): super(addarticletest, self).setup() task_num = 1 self.task_title = test_zadanie%s % task_num # tworzymy zadanie supervisor = User.objects.get(username= superredaktor1 ) category = Category.objects.get(pk=22) self.proposal = TaskProposal.objects.create(title=self.task_title, status=taskproposal.status self.task = Task(title=self.task_title) self.task.category = category

6 self.task.user = User.objects.get_or_create(username=settings.NOT_SET_USERNAME)[0] self.task.status = Task.STATUS_NEW self.task.save() def teardown(self): # usuwamy artykul self.task.delete() self.proposal.delete() super(addarticletest, self).teardown() Następnie tworzymy pomocniczą metodę, która zasymuluje pobranie zadania przez zalogowanego redaktora, wypełni formularz, zapisze i wyśle do sprawdzenia: def _add_article(self, lead, tags, text, overtitle, lead_photo, gallery): editor = User.objects.get(username= redaktor1 ) response = self.app.get( /panel-redaktora/articles/task/take/%s/ % self.task.id, user=editor) response = response.follow() response.form[ lead ] = lead response.form[ tags ] = tags response.form[ text ] = text response.form[ overtitle ] = overtitle response.form[ lead_photo ] = lead_photo response.form[ gallery ] = gallery return response.form.submit( _save_and_sent_to_check, 0) Pod self.app mamy utworzony obiekt aplikacji WebTest, przez który możemy wykonywać zapytania na naszej aplikacji. W tym teście wywołujemy metodę get, która pobiera odpowiednie zadanie. Opis pozostałych metod (m.in. post) znajduje się w dokumentacji WebTest 2. Jako parametr user podaliśmy obiekt redaktora. Takie użycie powoduje, że zapytanie jest traktowane, jakbyśmy byli zalogowani jako ten użytkownik. W wyniku zapytania otrzymujemy obiekt response. Ponieważ pobranie zadania powoduje przekierowanie, to podążamy za przekierowaniem przy użyciu metody follow. W wyniku otrzymujemy kolejny obiekt response. W obiekcie response pod zmienną form znajduje się pierwszy formularz znaleziony na stronie. Jeżeli formularzy byłoby więcej, to wszystkie znajduja się w słowniku forms. Formularz zachowuje się jak słownik i możemy zupełnić poszczególne pola podpisując je pod kluczami, które odpowiadają artybutom name w formularzu. Na koniec wysyłamy formularz za pomocą przycisk o nazwie _save_and_sent_to_check. Jeżeli takich przycisków byłoby więcej, to drugi parametr mówi, który z nich użyć. Dopisujemy jeszcze dwie kolejne metody pomocnicze. Jedną wykorzystamy do testów, które zakładają, że wszystko zadziałało prawidłowo. Drugą do testów, w których oczekujemy, że system poinformuje nas o źle wypełnionym formularzu: def _add_article_ok(self, lead, tags, text, overtitle, lead_photo, gallery): response = self._add_article(lead, tags, text, overtitle, lead_photo, gallery) try: errors = response.context[ errors ] except (TypeError, KeyError): errors = [] self.assertequals(errors, [], msg=errors) self.assertequals(response.status_code, 302) response = response.follow() self.assertequals(response.status_code, 200) def _add_article_error(self, lead, tags, text, overtitle, lead_photo, gallery): response = self._add_article(lead, tags, text, overtitle, lead_photo, gallery) try: errors = response.context[ errors ] except (TypeError, KeyError): errors = []

7 self.assertnotequals(errors, []) self.assertequals(response.status_code, 200) Obiekt response posiada atrybut context, w którym znajduje się kontekst użyty do renderowania szablonów. Jeżeli wystąpił błąd w formularzu, to znajdzie się tam lista errors wskazująca, jakie błędy wystąpiły. Jeżeli poprawnie został dodany artykuł to oczekujemy, że errors będzie puste, a kod zwrócony przez aplikację będzie przekierowywał nas na inną stronę. Jeżeli źle wypełniliśmy formularz oczekujemy niepustej listy błędów oraz braku przekierowania. Metody self.assert sprawdzają te warunki w testach. Więcej metod jest opisanych w dokumentacji Django na temat testów 5. Jeżeli funkcja przyjmuje różne parametry, to należałoby przetestować wszystkie możliwe kombinacje tych parametrów. Niestety jest to czasochłonne, a czasami wręcz niemożliwe. Dlatego metodą przynoszącą dobre efekty jest sprawdzanie każdej pary takich parametrów. Aby to zrobić wykorzystamy dekorator generator, który na podstawie szablonu metody i przekazanych parametrów, automatycznie wygeneruje zajawka1 ], [ tag1,tag2 ], [ Tresc artykulu ], [, Nadtytul ], [ ], [ ]) def _add_article(self, lead, tags, text, overtitle, lead_photo, gallery): # poprawne dodanie artykulu self._add_article_ok(lead, tags, text, overtitle, lead_photo, za_dluga_zajawka * 100], [ tag1,tag2 ], [ Tresc artykulu ], [ ], [ ], [ ]) def _add_article_with_wrong_lead(self, lead, tags, text, overtitle, lead_photo, gallery): # blad dodawania artykulu - niepoprawna zajawka self._add_article_error(lead, tags, text, overtitle, lead_photo, zajawka ], [ ], [ Tresc artykulu ], [ ], [ ], [ ]) def _add_article_with_wrong_tags(self, lead, tags, text, overtitle, lead_photo, gallery): # blad dodawania artykulu - niepoprawne tagi self._add_article_error(lead, tags, text, overtitle, lead_photo, zajawka ], [ tag1,tag2 ], [ ], [ ], [ ], [ ]) def _add_article_with_wrong_text(self, lead, tags, text, overtitle, lead_photo, gallery): # blad dodawania artykulu - niepoprawny tekst self._add_article_error(lead, tags, text, overtitle, lead_photo, zajawka ], [ tag1,tag2 ], [ tresc ], [ za dlugi nadtytul * 100], [ ], [ ]) def _add_article_with_wrong_overtitle(self, lead, tags, text, overtitle, lead_photo, gallery): # blad dodawania artykulu - niepoprawny nadtylul self._add_article_error(lead, tags, text, overtitle, lead_photo, gallery) Kolejnymi parametrami generatora są listy zawierające możliwe wartości dla kolejnych argumentów dekorowanej funkcji. W przypadku wartości liczbowych, warto wprowadzić przynajmniej wartości ze skraju zakresu, w którym wartość jest poprawna oraz jakąś typową wartość ze środka zakresu. W przypadku łańcuchów znaków, warto sprawdzać, jak zachowuje się test przy pustych łańcuchach, bardzo długich, zawierających spacje i znaki diakrytyczne. Na koniec wyciągamy testy z naszej klasy i tworzymy z nich zestaw testów, który podpinamy do głownego zestawu testów: add_article_suite = test_loader.loadtestsfromtestcase(addarticletest) def suite(): suite = unittest.testsuite() test_suites = [ add_article_suite ] for test_suite in test_suites: suite.addtest(test_suite) return suite 5

8 Analogicznie jak w testach akcpetacyjnych należy podpiąć testy do głownego tests.py: import unittest def suite(): from cms_local.functional_tests import suite as functional_suite suite = unittest.testsuite() test_suites = [ functional_suite() ] for test_suite in test_suites: suite.addtest(test_suite) return suite Testy uruchamiamy poleceniem: python manage.py test cms_local 3.1 Testowanie javascript W MowimyJakV1 w pliku cms_local/selenium_tests.py znajduje się przykładowy test funkcjonalny sprawdzający działanie autouzupełniania tagów w formularzu tworzenia artykułu dla redaktora serwisu Opis przypadku testowego: redaktor loguje się do panelu redaktora klika na link Dodaj nowy artykuł uzupełnia pole title zaczyna uzupełnianie pola tags wybranym tagiem i czeka na podpowiedzi systemu widząc interesujący go tag potwierdza naciśnięciem klawisza ENTER następnie uzupełnia zajawkę oraz treść w edytorze TinyMCE zapisuje artykuł wylogowuje się Na początek generujemy szablon testów selenium: python manage.py gen_tests --template selenium > selenium_tests.py Szablon uzupełniamy o nowy test AddArticleTest: class AddArticleTest(AbstractMuratorTest): def setup(self): super(addarticletest, self).setup() def teardown(self): super(addarticletest, self).teardown() def test_should_show_autocomplete(self): Pod zmienną self.driver znajduje się webdriver selenium, który steruje zachowaniem przeglądarki. Uzupełniamy dwie pomocniczne metody do logowania i wylogowania:

9 def _login(self): self.driver.get(self.host_name + /panel-redaktora ) login_form = self.driver.find_element_by_id("login-form") login_form.find_element_by_name( username ).send_keys("redaktor1") login_form.find_element_by_name( word ).send_keys("test") login_form.submit() def _logout(self): self.driver.find_element_by_xpath("//a[contains(@href, /panel-redaktora/logout )]").click() Polecenie metoda self.driver.get powoduje uruchomienie w przeglądarce strony podanej w parametrze metodą GET. Za pomocą self.drive.find_element_by_id możemy pobrać interesujący nas element na stronie. W naszym przypadku jest to formularz. Inne dostępne metody to: find_element_by_xpath - pobiera element na stronie za pomocą wyrażenia xpath find_element_by_link_text - pobiera element na stronie na podstawie treści linku find_element_by_partial_link_text - pobiera element na stronie na podstawie fragmentu treści linku find_element_by_name - pobiera element na stronie na podstawie atrybutu name find_element_by_tag_name - pobiera element na stronie na podstawie nazwy taga find_element_by_class_name - pobiera element na stronie na podstawie nazwy klasy find_element_by_css_selector - pobiera element na stronie w sposób analogiczny do selektorów css Oprócz tego występują wszystkie wyżej wymienione metody w wersji find_elements, która powoduje pobranie listy wszystkich takich elementów, a nie tylko jednego. Dokumentacja do selenium webdriver jest dostępna w postaci pythonowych docstringów: import selenium.webdriver.remote.webdriver help(selenium.webdriver.remote.webdriver) Elementy pobrane za pomocą metod find_element same również posiadają wiele z wcześniej wymienionych metod oraz swoje unikalne. Wewnątrz pobranego formularza logowania wyszukujemy po name pola username oraz word i uzupełniamy je symulując wpisywanie tekstu za pomocą metody send_keys. Następnie na formularzu wywołujemy metodę submit, która wywoła domyślną akcję dla formularza. Jeżeli chcielibyśmy wywołać jedną z alternatywnych akcji, należałoby uruchomić submit na konkretnym elemencie np. przycisku OK lub Anuluj. Wypełniamy naszą metodę testową: def test_should_show_autocomplete(self): self._login() # potwierdz, zapytanie "Czy jestes pewien?" # czekamy, na zaladowanie sie strony # wypelniamy formularz ## wypelniamy tagi i czekamy na podpowiedz ## sprawdzamy, czy podpowiedziano tam wlasciwy tag # wypelniamy TinyMCE # zapisujemy formularz self._logout() Kliknięcie na link Dodaj nowy artykuł powoduje wyświetlenie alertu z informacją typu Czy jesteś pewien, że chcesz odstrzelić sobie palca?. Metodą self.driver.switch_to_alert przechodzimy do okienka alertu, a następnie potwierdzamy poprzez alert: self.driver.find_element_by_link_text(u"dodaj nowy artykuł").click() self.driver.switch_to_alert().accept()

10 Strona może ładować się dłużej lub krócej i powinniśmy zaczekać na załadowanie się jej. Załóżmy, że jak się wyświetli już właściwy tytuł, to strona jest załadowana. Do oczekiwania na pewne zdarzenie służy obiekt WebDriverWait: from selenium.webdriver.support.ui import WebDriverWait... try: # czekamy, na zaladowanie sie strony WebDriverWait(self.driver, 20).until(lambda driver : driver.title.lower().startswith(u"dodaj")) finally: Jako parametry przekazujemy webdriver oraz czas, po który zostanie wyrzucony wyjątek informujący, że nie doczekaliśmy się żądanego efektu. Następnie na naszym obiekcie, wywołujemy metodę until, której parametrem jest funkcja sprawdzająca, czy zaszło oczekiwane zdarzenie. Prototyp tej funkcji to: def func(driver): Przekazywany parametr driver to przekazany webdriver do obiektu WebDriverWait. W chwili, gdy funkcja zwróci True, kończymy oczekiwanie. W dalszej części testu wyszukujemy poszczególne pola formularza i uzupełniamy je. W przypadku tagów chcemy sprawdzić podpowiedzi. Dlatego wypełniamy tylko fragment nazwy taga i następnie oczekujemy, aż pojawi się okieno z podpowiedziami. W chwili, gdy widoczne jest okno z podpowiedziami wybieramy pierwszą automatycznie zaznaczoną odpowiedź. Aby zasymulować naciśnięcie klawisza ENTER musimy wykorzystać moduł z listą kodów klawiszy: from selenium.webdriver.common import keys W tym module znajduje się klasa Key, w której zdefiniowane są różne kody klawiszy. My wybieramy Keys.RETURN: self.driver.find_element_by_name( title ).send_keys( Artykul testowy ) self.driver.find_element_by_name( tags ).send_keys( infor ) try: def has_response(driver): ac_results = driver.find_element_by_class_name( ac_results ) return ac_results.value_of_css_property( display )!= none # czekamy, az przyjdzie odpowiedz z lista tagow WebDriverWait(self.driver, 20).until(has_response) finally: self.driver.find_element_by_name( tags ).send_keys(keys.keys.return) Na koniec sprawdzamy, czy oby na pewno uzupełniło nam o tag, który wcześniej przygotowaliśmy: value = self.driver.find_element_by_name( tags ).get_attribute( value ).strip().strip(, ) self.assertequals(value, informacja ) Zajawkę uzupełniamy w sposób analogiczny do title: self.driver.find_element_by_name( lead ).send_keys( zajawka ) Na koniec uzupełniania formularza, trzeba się trochę pogimnastykować z TinyMCE. Używając w zwykły sposób tego edytora, tak na prawdę nie uzupełniamy pola textarea, a jedynie wypełniamy iframe umieszczany na jego miejscu. Aby przejść do odpowiedniego iframe należy wykorzystać metodę switch_to_frame i jako parametr podać nazwę iframe:

11 # TinyMCE dziala w iframe self.driver.switch_to_frame( id_text_ifr ) Dalej już pobieramy element body wewnątrze tego iframe, które w przypadku TinyMCE jest zasze tinymce i klikamy na paragraf, czyli symulujemy dokładnie to co byśmy robili kursorem: tinymce_frame = self.driver.find_element_by_id( tinymce ) textarea = tinymce_frame.find_element_by_xpath( p ) textarea.click() Dalej pozostaje już tylko zasymulować wpisywanie tekstu i przełączyć się z iframe do głownego okna: textarea.send_keys( tresc ) self.driver.switch_to_default_content() Na koniec zapisujemy i wylogowujemy się: self.driver.find_element_by_name( _save ).submit() self._logout() Teraz należy uruchomić testy. Testy selenium działają poprzez instruowanie rzeczywistej przeglądarki do wykonywania poleceń, jakie wykonywałby człowiek. Z tego powodu, musimy mieć uruchomiony serwer z działającą aplikacją oraz odpalić oddzielnie testy. Inaczej, niż to było w przypadku testów akceptacyjnych, które w całości odbywały się po stronie pythona. Do uruchomienia serwera z aplikacją wykorzystamy serwer testowy django: python manage.py testserver cms_local/fixtures/all.json W pliku cms_local/fixtures/all.json znajdują się fixtures wykorzystywane w tym teście. W przypadku MowimyJakV1 ten plik jest generowany poprzez uruchomienie merge_fixtures.py. Można by te wszystkie fixtures podać po kolei jako parametry do testserver, ale z lenistwa wolę generować jeden plik... Następnie należy uruchomić nasze testy. Testy selenium uruchamiamy za pomocą polecenia: python manage.py testselenium cms_local To polecenie zakłada, że testy selenium umieszczone są w pliku selenium_tests.py w katalogu podanej aplikacji. Domyślnie uruchamiana jest przeglądarka Firefox. Jeżeli chcecie wykorzystać inną ustawcie w pliku local_settings.py zmienną SELENIUM_WEBDRIVER na wartość Firefox, Ie lub Chrome. Jeżeli testserver działa pod adresem innym niż to należy adres tego serwera przekazać do testselenium za pomocą parametry testserver. 4 Test driven development W podejściu TDD w pierwszej kolejności pisane są testy, następnie kod. Takie podejście powoduje, że więcej pracy jest na początku tworzenia projektu, ale nie ma lawiny rzeczy do poprawy bliżej końca projektu. Tworzenie według TDD działa według schematu: 1. Weź przypadek użycia. 2. Utwórz przypadek testowy na podstawie przypadku użycia. 3. Utwórz test na podstawie przypadku testowego. 4. Uruchom test. Test wyszedł niepomyślnie? To dobrze. 5. Dopisz fragment testowanej funkcjonalności. 6. Uruchom test.

12 jeżeli test przeszedł pomyślnie, funkcjonalność jest skończona; przejdź do punktu 1 jeżeli test nie powiódł się, przejdź do punktu 5 Dzięki TDD czas nie jest tracony na przygotowanie funkcjonalności, która może się nam przydać. Robione jest tylko to, co niezbędne. W przypadku późniejszych zmian, testy zapewniają, że nie wprowadzimy błędów w istniejącej funkcjonalności. Kluczem do sprawnego stosowania TDD jest dobry opis przypadków użycia. Przypadek użycia musi zawierać przynajmniej: aktorów biorących udział warunki początkowe warunki końcowe przebieg zdarzeń Przykładowy przypadek użycia rejestracja użytkownika : aktorzy niezalogowany użytkownik warunki poczatkowe brak konta w serwisie warunki końcowe: utworzone aktywne konto w serwisie konto jest przypisane do grupy użytkownicy użytkownik jest zalogowany przebieg zdarzeń: niezarejestrowany użytkownik wchodzi na stronę rejestracji użytkownik wypełnia obowiazkowe pola: nazwa użytkownika hasło powtórz hasło adres akceptuję regulamin użytkownik klika zarejestruj system przekierowuje użytkownika na SG i wyświetla komunikat z informacją, aby użytkownik aktywował link w mailu wysłanym na jego skrzynkę użytkownik wchodzi na skrzynkę, otwiera maila i klika link aktywacyjny system aktywuje konto użytkownika i wyświetla informację o poprawnej aktywacji alternatywny przebieg zdarzeń: użytkownik wypełnia również niektóre pola nieobowiązkowe Przypadek testowy to realizacja przypadku użycia widziana już z perspektywy wyłacznie strony testującej. Pomijamy elementy, które musi wykonać system, ale sprawdzamy, czy interesujące nas efekty zaszły. Na tym etapie wiemy

13 już lub przewidujemy jak będą nazywać się poszczególne pola w formularzach, więc wykorzystujemy tę wiedzę przy opisywaniu przebiegu zdarzeń. Przykładowy przypadek testowy: aktorzy niezalogowany użytkownik warunki poczatkowe czysty system bez użytkowników, ale z danymi umożliwiającymi uruchomienie go, np. predefiniowane grupy użytkowników warunki końcowe utworzone aktywne konto użytkownika utworzony profil użytkownika konto przypisane do grupy użytkownicy wysłany 1 mail aktywacyjny użytkownik jest zalogowany przebieg zdarzeń niezarejestrowany użytkownik wchodzi na stronę rejestracji pod adresem /rejestracja/ użytkownik wypełnia pola obowiązkowe username, word, reword, , reg_accept użytkownik klika przycisk zarejestruj użytkownik trafia na SG i otrzymuje komunikat, z informacją o poprawnej rejestracji i informacją o konieczności aktywacji z maila użytkownik klika na link z maila użytkownik otrzymuje informację, że jego konto jest zarejestrowane alternatywne przebiegi zdarzeń: użytkownik błędnie wypełnia pola obowiązkowe - otrzymuje komunikat o błędzie użytkownik wypełnia pola nieobowiązkowe - na zakończenie powinny być ustawione te pola Następnie przechodzimy do tworzenia kodu samego testu. Tworzymy szablon testów akceptacyjnych: python manage.py gen_tests --template acceptance > acceptance_tests.py Ponieważ jeszcze nie mamy danych, nie wypełniamy fixtures. Jak już będą istniały zręby projektu z wypełnionymi podstawowymi kategoriami itp. będzie można wykorzystać te dane do inicjalizacji testów: class AbstractMuratorTest(AcceptanceTestCase): fixtures = [ ] Dla każdej funkcjonalności tworzymy oddzielną klase testów: class RegistrationTest(AbstractMuratorTest): def setup(self): super(registrationtest, self).setup() def teardown(self): super(registrationtest, self).teardown()

14 def test_register_basic(self): Warunki początkowe przypadku testowego definiują nam środowisko, w jakim uruchamiany musi być test. To środowisko przygotowujemy w metodzie setup. W przykładowym teście wymagane jest, aby istniała już grupa użytkownicy : def setup(self): super(registrationtest, self).setup() self.group = Group.objects.create(name=u użytkownicy ) self.user_name = testuser self.user_word = testword self.user_ = test@example.com W części teardown sprzątamy wszystko po sobie. Testy w django uruchamiane są wewnątrz jednej transakcji, która jest wycofywana na zakończenie testów i bazwa wraca do stanu pierwotnego. Dlatego można pominąć czyszczenie utworzonych obiektów w bazie. Jednak jeżeli w trakcie testu wykorzystywane były jakieś inne moduły aplikacji (np. zapis plików na dysku, cache), to trzeba je przywrócić do pierwotnego statu własnie w metodzie teardown. W klasie testu powinien znaleźć się przynajmniej jeden test, odpowiadający głownemu przebiegowi zdarzeń oraz testy odpowiadające alternatywnym przebiegom. Zacznijmy od wypełnienia testu opisem przebiegu zdarzeń.: def test_register_basic(self): # niezarejestrowany użytkownik wchodzi na stronę rejestracji pod adresem /rejestracja/ # użytkownik wypełnia pola obowiązkowe username, word, reword, , reg_accept # użytkownik klika przycisk "zarejestruj" # użytkownik trafia na SG i otrzymuje komunikat, z informacją o poprawnej rejestracji i informacj # użytkownik klika na link z maila # użytkownik otrzymuje informację, że jego konto jest zarejestrowane # sprawdzenie warunków końcowych Teraz zamieniamy poszczególne kroki przebiegu zdarzeń na symulowane czynności wykonywane przez użytkownika. W pierwszej kolejności musimy wejść na stronę rejestracji.: def test_register_basic(self): # niezarejestrowany użytkownik wchodzi na stronę rejestracji pod adresem /rejestracja/ response = self.app.get( /rejestracja/ ) # użytkownik wypełnia pola obowiązkowe username, word, reword, , reg_accept # użytkownik klika przycisk "zarejestruj" # użytkownik trafia na SG i otrzymuje komunikat, z informacją o poprawnej rejestracji i informacj # użytkownik klika na link z maila # użytkownik otrzymuje informację, że jego konto jest zarejestrowane # sprawdzenie warunków końcowych Pod atrybutem app znajduje się testowana aplikacja. Wywołując na niej metodę get( /rejestracja/ ) symulujemy zapytanie, jakie wykonałaby przeglądarka użytkownika. W wyniku otrzymujemy obiekt response. Jeżeli na stronie rejestracyjnej znajduje się jeden formularz to znajdzie się on pod atrybutem form obiektu response. Wszystkie formularze dostępne są w słowniku forms. Formularz zachowuje się podobnie do słownika. Możemy wypełnić interesujące nas pola podpisując odpowiednie wartości w formularzu. Zgodnie z opisem musimy wypełnić pola username, word, reword (czyli ponownie wpisane hasło), i zaakceptować regulamin ( reg_accept ).: def test_register_basic(self): # niezarejestrowany użytkownik wchodzi na stronę rejestracji pod adresem /rejestracja/ response = self.app.get( /rejestracja/ ) # użytkownik wypełnia pola obowiązkowe username, word, reword, , reg_accept form = response.form form[ username ] = self.user_name

15 form[ word ] = self.user_word form[ reword ] = self.user_word form[ ] = self.user_ form[ reg_accept ] = True # użytkownik klika przycisk "zarejestruj" # użytkownik trafia na SG i otrzymuje komunikat, z informacją o poprawnej rejestracji i informacj # użytkownik klika na link z maila # użytkownik otrzymuje informację, że jego konto jest zarejestrowane # sprawdzenie warunków końcowych Użytkownik klika przycisk zarejestruj. Wysłanie formularza symulujemy metodą submit formularz. Metoda wywołana bez parametrów wykona domyślną akcję formularza. Jeżeli podamy parametry, to pierwszy z nich jest wartością name przycisku, a drugi jest indeksem takich przycisków (w przypadku, gdyby było więcej przycisków z takim samym name).: def test_register_basic(self): # niezarejestrowany użytkownik wchodzi na stronę rejestracji pod adresem /rejestracja/ response = self.app.get( /rejestracja/ ) # użytkownik wypełnia pola obowiązkowe username, word, reword, , reg_accept form = response.form form[ username ] = self.user_name form[ word ] = self.user_word form[ reword ] = self.user_word form[ ] = self.user_ form[ reg_accept ] = True # użytkownik klika przycisk "zarejestruj" response = form.submit( zarejestruj, 0) # użytkownik trafia na SG i otrzymuje komunikat, z informacją o poprawnej rejestracji i informacj # użytkownik klika na link z maila # użytkownik otrzymuje informację, że jego konto jest zarejestrowane # sprawdzenie warunków końcowych Po poprawnej rejestracji powinniśmy być przekierowani na SG i otrzymać komunikat z informacją Na adres XYZ został wysłany link aktywacyjny.. Aby podążać za przekierowaniem należy wywołać metodę follow na obiekcie response. Do sprawdzenia, czy na stronie znajduje się oczekiwany przez nas tekst możemy użyć atrybutu content.: def test_register_basic(self): # niezarejestrowany użytkownik wchodzi na stronę rejestracji pod adresem /rejestracja/ response = self.app.get( /rejestracja/ ) # użytkownik wypełnia pola obowiązkowe username, word, reword, , reg_accept form = response.form form[ username ] = self.user_name form[ word ] = self.user_word form[ reword ] = self.user_word form[ ] = self.user_ form[ reg_accept ] = True # użytkownik klika przycisk "zarejestruj" response = form.submit( zarejestruj, 0) # użytkownik trafia na SG i otrzymuje komunikat, z informacją o poprawnej rejestracji i informacj response = response.follow() self.assertequals(response.status_code, 200) self.asserttrue((u Na adres %s został wysłany link aktywacyjny % self.user_ ) in response.co # użytkownik klika na link z maila # użytkownik otrzymuje informację, że jego konto jest zarejestrowane # sprawdzenie warunków końcowych

16 W trakcie działania testów Django zamiast wysyłać maile umieszcza je w testowej skrzynce django.core.mail.outbox. Testowa skrzyna jest zwykła listą wysłanych maili zawierającą obiekty Message. W naszym teście sprawdzamy, czy został wysłany jeden mail, na podany przez nas adres i czy zawiera link rejestracyjny.: def test_register_basic(self): # niezarejestrowany użytkownik wchodzi na stronę rejestracji pod adresem /rejestracja/ response = self.app.get( /rejestracja/ ) # użytkownik wypełnia pola obowiązkowe username, word, reword, , reg_accept form = response.form form[ username ] = self.user_name form[ word ] = self.user_word form[ reword ] = self.user_word form[ ] = self.user_ form[ reg_accept ] = True # użytkownik klika przycisk "zarejestruj" response = form.submit( zarejestruj, 0) # użytkownik trafia na SG i otrzymuje komunikat, z informacją o poprawnej rejestracji i informacj response = response.follow() self.assertequals(response.status_code, 200) self.asserttrue((u Na adres %s został wysłany link aktywacyjny % self.user_ ) in response.co # użytkownik klika na link z maila from django.core import mail self.assertequals(len(mail.outbox), 1) activation_mail = mail.outbox[0] self.asserttrue(activation_mail.subject.startswith(u Aktywuj konto )) self.asserttrue(self.user_ in activation_mail.to) import re match = re.search( (?P<link>/aktywacja/\w+/), activation_mail.body) self.asserttrue(match is not None) link = match.groupdict()[ link ] response = self.app.get(link) # użytkownik otrzymuje informację, że jego konto jest zarejestrowane self.asserttrue((u Twoje konto zostało zarejestrowane ) in response.content) # sprawdzenie warunków końcowych Na sam koniec sprawdzamy rzecz najważniejszą - czy mamy utworzone konto i jest ono poprawne.: def test_register_basic(self): # niezarejestrowany użytkownik wchodzi na stronę rejestracji pod adresem /rejestracja/ response = self.app.get( /rejestracja/ ) # użytkownik wypełnia pola obowiązkowe username, word, reword, , reg_accept form = response.form form[ username ] = self.user_name form[ word ] = self.user_word form[ reword ] = self.user_word form[ ] = self.user_ form[ reg_accept ] = True # użytkownik klika przycisk "zarejestruj" response = form.submit( zarejestruj, 0) # użytkownik trafia na SG i otrzymuje komunikat, z informacją o poprawnej rejestracji i informacj response = response.follow() self.assertequals(response.status_code, 200) self.asserttrue((u Na adres %s został wysłany link aktywacyjny % self.user_ ) in response.co # użytkownik klika na link z maila from django.core import mail self.assertequals(len(mail.outbox), 1) activation_mail = mail.outbox[0] self.asserttrue(activation_mail.subject.startswith(u Aktywuj konto ))

17 self.asserttrue(self.user_ in activation_mail.to) import re match = re.search( (?P<link>/aktywacja/\w+/), activation_mail.body) self.asserttrue(match is not None) link = match.groupdict()[ link ] response = self.app.get(link) # użytkownik otrzymuje informację, że jego konto jest zarejestrowane self.asserttrue((u Twoje konto zostało zarejestrowane ) in response.content) # sprawdzenie warunków końcowych # czy konto istnieje i jest poprawne? try: user = User.objects.get(username=self.user_name) except User.DoesNotExist: user = None self.asserttrue(user is not None) self.assertequals(user.username, self.user_name) self.assertequals(user. , self.user_ ) # czy użytkownik jest przypisany do grupy użytkowników? self.asserttrue(self.group in user.groups.all()) # czy profil istnieje? try: profile = user.profile except Profile.DoesNotExist: profile = None self.asserttrue(profile is not None) # czy użytkownik jest zalogowany? self.asserttrue((u /logout ) in response.content) Po zakończeniu pisania testu podłączamy go do testów aplikacji w pliku tests.py.: import unittest def suite(): from cms_local.acceptance_tests import suite as acceptance_suite suite = unittest.testsuite() test_suites = [ acceptance_suite() ] for test_suite in test_suites: suite.addtest(test_suite) return suite Następnie uruchamiamy testy.: python manage.py test -v 2 <aplikacja> Testy powinny dać w rezultacie fail lub error. Jeżeli któryś test przeszedł poprawnie, a nie mamy napisanego dla niego kodu, który miałby go wykonywać, to znaczy, że ten test nic nie sprawdza. W następnej kolejności tworzymy kod, który wykonuje opisaną funkcjonalność. W chwili, gdy test przechodzi poprawnie, funkcjonalność jest zakończona (albo test jest niekompletny).

Mazowiecki Elektroniczny Wniosek Aplikacyjny

Mazowiecki Elektroniczny Wniosek Aplikacyjny Mazowiecki Elektroniczny Wniosek Aplikacyjny Generator Offline Instrukcja użytkownika Problemy z aplikacją można zgłaszad pod adresem: zgloszenie@mazowia.eu SPIS TREŚCI Zawartość 1 Instalacja Generatora

Bardziej szczegółowo

LeftHand Sp. z o. o.

LeftHand Sp. z o. o. LeftHand Sp. z o. o. Producent oprogramowania finansowo-księgowe, handlowego i magazynowego na Windows i Linux Instrukcja rejestracji wersji testowej programu LeftHand Ten dokument ma na celu przeprowadzić

Bardziej szczegółowo

Instrukcja rejestracji w systemie System Wspierający Prowadzenie Prac Badawczo-Naukowych oraz Współdzielenie i Publikację Wyników Prac

Instrukcja rejestracji w systemie System Wspierający Prowadzenie Prac Badawczo-Naukowych oraz Współdzielenie i Publikację Wyników Prac Instrukcja rejestracji w systemie System Wspierający Prowadzenie Prac Badawczo-Naukowych oraz Współdzielenie i Publikację Wyników Prac Do systemu wchodzimy ze strony głównej AWF wchodząc w zakładkę Uczelnia

Bardziej szczegółowo

Instalacja systemu zarządzania treścią (CMS): Joomla

Instalacja systemu zarządzania treścią (CMS): Joomla Instalacja systemu zarządzania treścią (CMS): Joomla Na stronie http://www.cba.pl/ zarejestruj nowe konto klikając na przycisk:, następnie wybierz nazwę domeny (Rys. 1a) oraz wypełnij obowiązkowe pola

Bardziej szczegółowo

Instrukcja zarządzania kontem przedsiębiorstwa w serwisie internetowym www.esiop.legionowo.pl

Instrukcja zarządzania kontem przedsiębiorstwa w serwisie internetowym www.esiop.legionowo.pl Instrukcja zarządzania kontem przedsiębiorstwa w serwisie internetowym www.esiop.legionowo.pl Rejestracja w serwisie: Aby utworzyć konto w serwisie, należy otworzyć w przeglądarce internetowej stronę www.esiop.legionowo.pl,

Bardziej szczegółowo

Instrukcja zarządzania kontem jednostki samorządu terytorialnego w serwisie internetowym

Instrukcja zarządzania kontem jednostki samorządu terytorialnego w serwisie internetowym Instrukcja zarządzania kontem jednostki samorządu terytorialnego w serwisie internetowym www.esiop.legionowo.pl Rejestracja w serwisie: Aby utworzyć konto w serwisie, należy otworzyć w przeglądarce internetowej

Bardziej szczegółowo

epuap Zakładanie konta organizacji

epuap Zakładanie konta organizacji epuap Zakładanie konta organizacji Projekt współfinansowany ze środków Europejskiego Funduszu Rozwoju Regionalnego w ramach Programu Operacyjnego Innowacyjna Gospodarka Jak założyć konto? Proces zakładania

Bardziej szczegółowo

INSTRUKCJA OBSŁUGI Proces rejestracji i logowania

INSTRUKCJA OBSŁUGI Proces rejestracji i logowania INSTRUKCJA OBSŁUGI Proces rejestracji i logowania 1 Spis treści Omówienie funkcjonalności w panelu Beneficjenta...3 Strona główna...4 Proces rejestracji i logowania...5 Ponowne wysłanie linku aktywacyjnego...6

Bardziej szczegółowo

epuap Zakładanie konta organizacji

epuap Zakładanie konta organizacji epuap Zakładanie konta organizacji Projekt współfinansowany ze środków Europejskiego Funduszu Rozwoju Regionalnego w ramach Programu Operacyjnego Innowacyjna Gospodarka Jak założyć konto? Proces zakładania

Bardziej szczegółowo

INSTRUKCJA. zakładania konta w Społeczności CEO oraz rejestrowania się do programu lub na szkolenie/cykl szkoleniowy KROK 1

INSTRUKCJA. zakładania konta w Społeczności CEO oraz rejestrowania się do programu lub na szkolenie/cykl szkoleniowy KROK 1 Wersja 1.0.1 INSTRUKCJA zakładania konta w Społeczności CEO oraz rejestrowania się do programu lub na szkolenie/cykl szkoleniowy KROK 1 W celu uzupełnienia formularza rejestracyjnego należy zarejestrować/zalogować

Bardziej szczegółowo

Biblioteki publiczne

Biblioteki publiczne Instrukcja pracy w programie do gromadzenia danych statystycznych w ramach projektu Analiza Funkcjonowania Bibliotek Biblioteki publiczne Spis treści 1. Użytkownicy i uprawnienia 1 2. Logowanie/rejestracja

Bardziej szczegółowo

INSTRUKCJA UŻYTKOWNIKA GENERATORA WNIOSKÓW O DOFINANSOWANIE DLA WNIOSKODAWCÓW

INSTRUKCJA UŻYTKOWNIKA GENERATORA WNIOSKÓW O DOFINANSOWANIE DLA WNIOSKODAWCÓW INSTRUKCJA UŻYTKOWNIKA GENERATORA WNIOSKÓW O DOFINANSOWANIE DLA WNIOSKODAWCÓW Historia zmian dokumentu Nr wersji Data wersji Komentarz/Uwagi/Zakres zmian 1.0 2015-11-19 Utworzenie dokumentu 1 Spis treści

Bardziej szczegółowo

Platforma e-learningowa

Platforma e-learningowa Dotyczy projektu nr WND-RPPD.04.01.00-20-002/11 pn. Wdrażanie elektronicznych usług dla ludności województwa podlaskiego część II, administracja samorządowa realizowanego w ramach Decyzji nr UDA- RPPD.04.01.00-20-002/11-00

Bardziej szczegółowo

Repozytorium Cyfrowe BN

Repozytorium Cyfrowe BN 1 Repozytorium Cyfrowe BN Instrukcja pozyskiwania certyfikatu oraz importowania certyfikatu osobistego w celu dodatkowej weryfikacji użytkownika podczas logowania do systemu 2 Spis treści 1. Informacje

Bardziej szczegółowo

ELEKTRONICZNA KSIĄŻKA ZDARZEŃ

ELEKTRONICZNA KSIĄŻKA ZDARZEŃ ELEKTRONICZNA KSIĄŻKA ZDARZEŃ Instrukcja obsługi 1. WSTĘP... 2 2. LOGOWANIE DO SYSTEMU... 2 3. STRONA GŁÓWNA... 3 4. EWIDENCJA RUCHU... 4 4.1. Dodanie osoby wchodzącej na teren obiektu... 4 4.2. Dodanie

Bardziej szczegółowo

Elektroniczna Skrzynka Podawcza

Elektroniczna Skrzynka Podawcza Elektroniczna Skrzynka Podawcza Instrukcja dla administratora Wersja 1.6.0 Przewodnik przeznaczony jest dla użytkowników, którzy administrują kontem urzędu w systemie Elektronicznej Skrzynki Podawczej.

Bardziej szczegółowo

Procedura krok po kroku umożlwiająca logowanie kontem MCL w POL-on (dla aktualnych użytkowników POL-on) Rejestracja nowego użytkownika w systemie MCL

Procedura krok po kroku umożlwiająca logowanie kontem MCL w POL-on (dla aktualnych użytkowników POL-on) Rejestracja nowego użytkownika w systemie MCL Procedura krok po kroku umożlwiająca logowanie kontem MCL w POL-on (dla aktualnych użytkowników POL-on) Rejestracja użytkownika systemu MCL Rejestracja nowego użytkownika w systemie MCL wymaga zawsze wykonania

Bardziej szczegółowo

Instrukcja portalu TuTej24.pl

Instrukcja portalu TuTej24.pl Instrukcja portalu TuTej24.pl Spis treści 1. Strona główna... 2 2. Zaloguj się... 4 3. Rejestracja nowego konta... 5 4. Zmiana hasła... 7 5. Moje konto... 8 5.1 Lista ogłoszeń... 8 5.1.1 Aktywne...8 5.1.2

Bardziej szczegółowo

INSTRUKCJA. rejestrowania się na szkolenie/cykl szkoleniowy oraz uzupełniania niezbędnej unijnej dokumentacji uczestnictwa w projekcie (PEFS)

INSTRUKCJA. rejestrowania się na szkolenie/cykl szkoleniowy oraz uzupełniania niezbędnej unijnej dokumentacji uczestnictwa w projekcie (PEFS) Wersja 1.3.5 INSTRUKCJA rejestrowania się na szkolenie/cykl szkoleniowy oraz uzupełniania niezbędnej unijnej dokumentacji uczestnictwa w projekcie (PEFS) Warunkiem uczestnictwa w szkoleniu (lub cyklu szkoleniowym)

Bardziej szczegółowo

INSTRUKCJA zakładania konta w Społecznoś ci CEO

INSTRUKCJA zakładania konta w Społecznoś ci CEO INSTRUKCJA zakładania konta w Społecznoś ci CEO KROK 1 W celu uzupełnienia formularza rejestracyjnego należy zarejestrować/zalogować się w Społeczności CEO https://spolecznosc.ceo.org.pl. Społeczność CEO

Bardziej szczegółowo

PTP COL. Instrukcja obsługi

PTP COL. Instrukcja obsługi PTP COL Instrukcja obsługi 1 Tytuł dokumentu Instrukcja obsługi Centrum Obsługi Licencji PTP Wersja dokumentu 1.0.0 Data dokumentu 2015-08-06 Ilość stron 22 Wykonawca Install-IT Krzysztof Gawliczek Dotyczy

Bardziej szczegółowo

Internetowy System Zgłoszeń Postępowanie Kwalifikacyjne w Służbie Cywilnej PRZEWODNIK

Internetowy System Zgłoszeń Postępowanie Kwalifikacyjne w Służbie Cywilnej PRZEWODNIK Internetowy System Zgłoszeń Postępowanie Kwalifikacyjne w Służbie Cywilnej PRZEWODNIK Wstęp...1 Zakładanie konta...3 Aktywowanie konta...3 Wypełnianie formularza zgłoszenia...5 Drukowanie formularza zgłoszenia...6

Bardziej szczegółowo

Instrukcja obsługi portalu MojeHR moduł pracownika

Instrukcja obsługi portalu MojeHR moduł pracownika Spis treści:. Strona startowa MojeHR 2 2. 3 3. Okno rejestracji pracownika 4 4. Konto pracownika 9 5. Znajdź ofertę 0 6. Edycja informacji 7. Zmiana hasła 8. Edycja zdjęcia 2 9. Zobacz swoje CV 2 0. Edycja

Bardziej szczegółowo

Testowanie aplikacji. Kurs języka Ruby

Testowanie aplikacji. Kurs języka Ruby Testowanie aplikacji Kurs języka Ruby Rodzaje testów Testy jednostkowe Testy funkcjonalne Testy integracyjne Testy jednostkowe (unit tests) Testy sprawdzające pojedyncze funkcjonalności (metodę, funkcję

Bardziej szczegółowo

Instrukcja. Elektronicznej Skrzynki Podawczej

Instrukcja. Elektronicznej Skrzynki Podawczej Instrukcja Elektronicznej Skrzynki Podawczej Podstawowe funkcje elektronicznej skrzynki podawczej 1. Możliwość składania do urzędu podań w formie elektronicznej (zarówno w postaci przygotowanych przez

Bardziej szczegółowo

Podręcznik Użytkownika LSI WRPO

Podręcznik Użytkownika LSI WRPO Podręcznik użytkownika Lokalnego Systemu Informatycznego do obsługi Wielkopolskiego Regionalnego Programu Operacyjnego na lata 2007 2013 w zakresie wypełniania wniosków o dofinansowanie Wersja 1 Podręcznik

Bardziej szczegółowo

INSTRUKCJA SKŁADANIA OFERT W SYSTEMIE WITKAC.PL

INSTRUKCJA SKŁADANIA OFERT W SYSTEMIE WITKAC.PL INSTRUKCJA SKŁADANIA OFERT W SYSTEMIE WITKAC.PL Tworzenie konta Na stronie głównej www.witkac.pl klikamy w przycisk Zarejestruj się 1. Pierwszym krokiem rejestracji jest wybranie Rejestracja organizacji

Bardziej szczegółowo

Tworzenie konta Na stronie głównej www.witkac.pl klikamy w przycisk Zarejestruj się

Tworzenie konta Na stronie głównej www.witkac.pl klikamy w przycisk Zarejestruj się Tworzenie konta Na stronie głównej www.witkac.pl klikamy w przycisk Zarejestruj się 1. Pierwszym krokiem rejestracji jest wybranie Rejestracja organizacji składającej wnioski. 2. W miejscu E-mail podajemy

Bardziej szczegółowo

1. Doradcy Logowanie i Pulpit Mój profil Moje kwalifikacje Moi klienci Szczegóły klientów...

1. Doradcy Logowanie i Pulpit Mój profil Moje kwalifikacje Moi klienci Szczegóły klientów... Spis treści 1. Doradcy... 2 2. Logowanie i Pulpit... 9 3. Mój profil... 10 4. Moje kwalifikacje... 12 5. Moi klienci... 17 5.1. Szczegóły klientów... 18 5.2. Wyniki klientów... 20 5.3. Raporty klientów...

Bardziej szczegółowo

Instrukcja rejestracji do systemu ecrf.biztm

Instrukcja rejestracji do systemu ecrf.biztm Instrukcja rejestracji do systemu ecrf.biztm Spis treści Wstęp... 3 1. Rejestracja do programu... 4 Wyrażenie zgody na przetwarzanie danych osobowych... 5 Weryfikacja adresu e-mail... 6 Formularz rejestracyjny...

Bardziej szczegółowo

Programowanie w Ruby

Programowanie w Ruby Programowanie w Ruby Wykład 13 Marcin Młotkowski 16 stycznia 2013 Plan wykładu Testowanie aplikacji w Ruby on Rails Testowanie modeli Testy funkcjonalne: testowanie kontrolerów Testy integracyjne Testowanie

Bardziej szczegółowo

Biblioteki publiczne

Biblioteki publiczne Instrukcja pracy w programie do gromadzenia danych statystycznych w ramach projektu Analiza Funkcjonowania Bibliotek Biblioteki publiczne Spis treści 1. Użytkownicy i uprawnienia 1 2. Logowanie/rejestracja

Bardziej szczegółowo

Instrukcja składania wniosku o dofinansowanie w systemie informatycznym IP na potrzeby konkursu nr 1/1.1.1/2017 INFORMACJE OGÓLNE 1. Wnioski o dofinansowanie projektu w ramach konkursu nr 1/1.1.1/2017

Bardziej szczegółowo

Podręcznik użytkownika Wprowadzający aplikacji Wykaz2

Podręcznik użytkownika Wprowadzający aplikacji Wykaz2 Podręcznik użytkownika Wprowadzający aplikacji Wykaz2 TiMSI Sp z o o ul Czapli 63, 02-781 Warszawa tel : +48 22 644 86 76, fax: +48 22 644 78 52 NIP: 951-19-39-800 Sąd Rejonowy dla mst Warszawy w Warszawie,

Bardziej szczegółowo

Jak złożyć wniosek o dotację Fundacji PZU? - instrukcja dla użytkownika

Jak złożyć wniosek o dotację Fundacji PZU? - instrukcja dla użytkownika Jak złożyć wniosek o dotację Fundacji PZU? - instrukcja dla użytkownika Wnioski o dotację w trybie konkursowym i pozakonkursowym składa się wyłącznie za pomocą Generatora wniosków, znajdującego się pod

Bardziej szczegółowo

INSTRUKCJA UŻYTKOWNIKA GENERATORA WNIOSKÓW O DOFINANSOWANIE DLA WNIOSKODAWCÓW

INSTRUKCJA UŻYTKOWNIKA GENERATORA WNIOSKÓW O DOFINANSOWANIE DLA WNIOSKODAWCÓW INSTRUKCJA UŻYTKOWNIKA GENERATORA WNIOSKÓW O DOFINANSOWANIE DLA WNIOSKODAWCÓW Historia zmian dokumentu Nr wersji Data wersji Komentarz/Uwagi/Zakres zmian 1.0 2016-12-01 Utworzenie dokumentu 1 Spis treści

Bardziej szczegółowo

Instrukcja zamawiania usług systemu ASG-EUPOS za pomocą Portalu PZGiK

Instrukcja zamawiania usług systemu ASG-EUPOS za pomocą Portalu PZGiK Instrukcja zamawiania usług systemu ASG-EUPOS za pomocą Portalu PZGiK Spis treści 1 WPROWADZENIE... 3 1.1. Cel dokumentu... 3 2 OPIS FUNKCJI PORTALU PZGIK... 3 2.1 Uruchomienie portalu... 3 2.2 Zamawianie

Bardziej szczegółowo

INSTRUKCJA UŻYTKOWNIKA GENERATORA WNIOSKÓW O DOFINANSOWANIE DLA WNIOSKODAWCÓW

INSTRUKCJA UŻYTKOWNIKA GENERATORA WNIOSKÓW O DOFINANSOWANIE DLA WNIOSKODAWCÓW INSTRUKCJA UŻYTKOWNIKA GENERATORA WNIOSKÓW O DOFINANSOWANIE DLA WNIOSKODAWCÓW Historia zmian dokumentu Nr wersji Data wersji Komentarz/Uwagi/Zakres zmian 1.0 2016-12-01 Utworzenie dokumentu 1 Spis treści

Bardziej szczegółowo

darmowe zdjęcia - allegro.pl

darmowe zdjęcia - allegro.pl darmowe zdjęcia - allegro.pl 1 Darmowe zdjęcia w Twoich aukcjach allegro? Tak to możliwe. Wielu sprzedających robi to od dawna i wbrew pozorom jest to bardzo proste. Serwis allegro oczywiście umożliwia

Bardziej szczegółowo

1.2 Prawa dostępu - Role

1.2 Prawa dostępu - Role Portlet Użytkownik Login Uprawnienie Rola Kontekst podmiotu Okno w serwisie portalu, udostępniające konkretne usługi lub informacje, na przykład kalendarz lub wiadomości Jest to osoba korzystająca z funkcjonalności

Bardziej szczegółowo

Instrukcja logowania i użytkowania platformy Uniwersytet Przedsiębiorczości

Instrukcja logowania i użytkowania platformy Uniwersytet Przedsiębiorczości Instrukcja logowania i użytkowania platformy Uniwersytet Przedsiębiorczości Platforma Uniwersytetu Przedsiębiorczości dostępna jest pod adresem http://www.upspecjal.pl w zakładce logowanie/rejestracja

Bardziej szczegółowo

REJESTRACJA I PUBLIKACJA ARTYKUŁÓW W SERWISIE. www.swiat-angielskiego.pl TUTORIAL

REJESTRACJA I PUBLIKACJA ARTYKUŁÓW W SERWISIE. www.swiat-angielskiego.pl TUTORIAL REJESTRACJA I PUBLIKACJA ARTYKUŁÓW W SERWISIE www.swiat-angielskiego.pl TUTORIAL REJESTRACJA Aby zostać Redaktorem portalu i mieć możliwość publikacji swoich artykułów należy wykonać krok 1 REJESTRACJA

Bardziej szczegółowo

Miejski System Zarządzania - Katowicka Infrastruktura Informacji Przestrzennej

Miejski System Zarządzania - Katowicka Infrastruktura Informacji Przestrzennej Miejski System Zarządzania - Katowicka Infrastruktura Informacji Przestrzennej Geoportal Usługa portalu edukacyjnego Instrukcja użytkownika Historia zmian Wersja Data Kto Opis zmian 1.0 2014-05-27 Sygnity

Bardziej szczegółowo

epuap Archiwizacja w Osobistym Składzie Dokumentów

epuap Archiwizacja w Osobistym Składzie Dokumentów epuap Archiwizacja w Osobistym Składzie Dokumentów Projekt współfinansowany ze środków Europejskiego Funduszu Rozwoju Regionalnego w ramach Programu Operacyjnego Innowacyjna Gospodarka SPIS TREŚCI SPIS

Bardziej szczegółowo

Spis treści REJESTRACJA NOWEGO KONTA UŻYTKOWNIKA PANEL ZMIANY HASŁA PANEL EDYCJI DANYCH UŻYTKOWNIKA EXTRANET.NET...

Spis treści REJESTRACJA NOWEGO KONTA UŻYTKOWNIKA PANEL ZMIANY HASŁA PANEL EDYCJI DANYCH UŻYTKOWNIKA EXTRANET.NET... Spis treści... 1 1. REJESTRACJA NOWEGO KONTA UŻYTKOWNIKA... 3 2. PANEL ZMIANY HASŁA... 5 3. PANEL EDYCJI DANYCH UŻYTKOWNIKA... 6 4. EXTRANET.NET... 8 a. ZMIANA HASŁA EXTRANET.NET... 10 5. PZPN24... 12

Bardziej szczegółowo

1. Rejestracja 2. Logowanie 3. Zgłaszanie nowego wniosku projektowego

1. Rejestracja 2. Logowanie 3. Zgłaszanie nowego wniosku projektowego 1. Rejestracja Dostęp do wniosku projektowego możliwy jest jedynie dla zarejestrowanych użytkowników. Aby zostać zarejestrowanym należy wypełnić formularz dostępny na stronie www.polskapomoc.gov.pl, a

Bardziej szczegółowo

HOTSPOT. [ konfiguracja, rejestracja, użytkowanie ]

HOTSPOT. [ konfiguracja, rejestracja, użytkowanie ] G [ internet.partner ] HOTSPOT [ konfiguracja, rejestracja, użytkowanie ] 1.Konfiguracja połączenia bezprzewodowego W pierwszej kolejności należy upewnić się, iż komputer jest poprawnie skonfigurowany,

Bardziej szczegółowo

Instrukcja Użytkownika Systemu Zarządzania Tożsamością Wersja. 1.0

Instrukcja Użytkownika Systemu Zarządzania Tożsamością Wersja. 1.0 Instrukcja Użytkownika Systemu Zarządzania Tożsamością Wersja. 1.0 1 SPIS TREŚCI 1. Wstęp... 3 2. Strona logowania do Systemu Zarządzania Tożsamością... 3 3. Pierwsze logowanie do systemu... 4 4. Logowanie

Bardziej szczegółowo

Extranet KLUBY.PZPN.PL Instrukcja obsługi

Extranet KLUBY.PZPN.PL Instrukcja obsługi Data utworzenia : 07.03.2013 Extranet KLUBY.PZPN.PL Instrukcja obsługi utworzył : Maciej Sobol korekta : Henryk Świerczek aktualizacja 14.03.2013 strona 1/13 Spis treści TWORZENIE KONTA UŻYTKOWNIKA...2

Bardziej szczegółowo

Skrócona instrukcja pracy z Generatorem Wniosków

Skrócona instrukcja pracy z Generatorem Wniosków Skrócona instrukcja pracy z Generatorem Wniosków I. OGÓLNA OBSŁUGA GENERATORA WNIOSKÓW Rozpoczynanie pracy z generatorem przez nowych użytkowników Aby skorzystać z Generatora Wniosków należy posiadać konto

Bardziej szczegółowo

Instrukcja dla Kandydatów na staż w Projekcie SIMS

Instrukcja dla Kandydatów na staż w Projekcie SIMS Instrukcja dla Kandydatów na staż w Projekcie SIMS Narodowe Centrum Badań i Rozwoju ul. Nowogrodzka 47a 00-695 Warszawa Warszawa, 28 czerwca 2013 r. Spis treści Rejestracja na staż instrukcja dla Kandydatów...2

Bardziej szczegółowo

Internetowy System Składania Wniosków PISF wersja 2.2. Instrukcja dla Wnioskodawców

Internetowy System Składania Wniosków PISF wersja 2.2. Instrukcja dla Wnioskodawców Internetowy System Składania Wniosków PISF wersja 2.2 Instrukcja dla Wnioskodawców Poznań 2011 1 Spis treści 1.Dostęp do ISSW... str.3 1.1.Zakładanie konta ISSW 1.2.Logowanie do systemu ISSW 1.3. Logowanie

Bardziej szczegółowo

Podręcznik użytkownika Publikujący aplikacji Wykaz2

Podręcznik użytkownika Publikujący aplikacji Wykaz2 Podręcznik użytkownika Publikujący aplikacji Wykaz2 TiMSI Sp z o o ul Czapli 63, 02-781 Warszawa tel : +48 22 644 86 76, fax: +48 22 644 78 52 NIP: 951-19-39-800 Sąd Rejonowy dla mst Warszawy w Warszawie,

Bardziej szczegółowo

Tworzenie dokumentów oraz prezentacji programu Młodzi Aktywiści Prezydencji przy wykorzystaniu EduTuby

Tworzenie dokumentów oraz prezentacji programu Młodzi Aktywiści Prezydencji przy wykorzystaniu EduTuby Tworzenie dokumentów oraz prezentacji programu Młodzi Aktywiści Prezydencji przy wykorzystaniu EduTuby W tym dokumencie pokażemy wam jak stworzyć dokument oraz prezentację wykorzystując do tego możliwości,

Bardziej szczegółowo

1. Składanie wniosku rejestracyjnego - rejestracja konta użytkownika/firmy

1. Składanie wniosku rejestracyjnego - rejestracja konta użytkownika/firmy 1. Składanie wniosku rejestracyjnego - rejestracja konta użytkownika/firmy Po wejściu na stronę Serwisu KLIPER https://kliper.tvp.pl w celu rejestracji należy wybrać polecenie zaloguj się a po przejściu

Bardziej szczegółowo

ZESTAW PLATINUM. - instrukcja pobrania i instalacji certyfikatu niekwalifikowanego wersja 1.2

ZESTAW PLATINUM. - instrukcja pobrania i instalacji certyfikatu niekwalifikowanego wersja 1.2 ZESTAW PLATINUM - instrukcja pobrania i instalacji certyfikatu niekwalifikowanego wersja 1.2 Spis treści 1. ZAMÓWIENIE I ZAKUP ZESTAWU PLATINUM...3 2. ZESTAW PLATINUM INSTALACJA I AKTYWACJA PROFILU NA

Bardziej szczegółowo

Instrukcja obsługi systemu MEDIABIN Grudzień 2012

Instrukcja obsługi systemu MEDIABIN Grudzień 2012 Instrukcja obsługi systemu MEDIABIN Grudzień 2012 Spis treści: 1. Rejestracja i logowanie do systemu MEDIABIN.3 2. Zamieszczanie reklamy w systemie.7 2.1. Wysyłka przez link autoryzacyjny upload.10 3.

Bardziej szczegółowo

INSTRUKCJA KROK 1. UWAGA: Jeżeli posiadasz już konto w Społeczności CEO, przejdź do kroku 9, pomijając część dotyczącą tworzenia konta w Społeczności.

INSTRUKCJA KROK 1. UWAGA: Jeżeli posiadasz już konto w Społeczności CEO, przejdź do kroku 9, pomijając część dotyczącą tworzenia konta w Społeczności. Wersja 1.0.1 OK zeszyt INSTRUKCJA zakładania konta w Społeczności CEO oraz rejestrowania się do kursu OK zeszyt KROK 1 W celu uzupełnienia formularza rejestracyjnego należy zarejestrować/zalogować się

Bardziej szczegółowo

AKTYWNY SAMORZĄD. Instrukcja użytkownika. www.as.tylda.pl

AKTYWNY SAMORZĄD. Instrukcja użytkownika. www.as.tylda.pl AKTYWNY SAMORZĄD Instrukcja użytkownika TYLDA Sp. z o.o. 65-001 Zielona Góra ul. Wazów 6a tel. 68 324-24-72 68 325-75-10 www.tylda.pl tylda@tylda.pl wersja 1.1 2014.12.01 2 Spis treści 1. Konta użytkowników...

Bardziej szczegółowo

INSTRUKCJA OBSŁUGI BAZY USŁUG ROZWOJOWYCH

INSTRUKCJA OBSŁUGI BAZY USŁUG ROZWOJOWYCH INSTRUKCJA OBSŁUGI BAZY USŁUG ROZWOJOWYCH KROK 1: REJESTRACJA I LOGOWANIE DO SYSTEMU Strona główna Bazy Usług Rozwojowych znajduje się pod adresem https://uslugirozwojowe.parp.gov.pl 1. W jej górnym prawym

Bardziej szczegółowo

https://lsi.ncbr.gov.pl

https://lsi.ncbr.gov.pl Instrukcja składania wniosku o dofinansowanie w systemie informatycznym IP na potrzeby konkursu nr 2/1.1.2/2015 INFORMACJE OGÓLNE 1. Wnioski o dofinansowanie projektu w ramach konkursu nr 2/1.1.2/2015

Bardziej szczegółowo

Kalipso wywiady środowiskowe

Kalipso wywiady środowiskowe Kalipso wywiady środowiskowe Instrukcja obsługi INFO-R Spółka Jawna - 2017 43-430 Pogórze, ul. Baziowa 29, tel. (33) 479 93 29, (33) 479 93 89 fax: (33) 853 04 06 e-mail: admin@ops.strefa.pl Spis treści:

Bardziej szczegółowo

INSTRUKCJA TWORZENIA KONTA W SYSTEMIE WITKAC.PL

INSTRUKCJA TWORZENIA KONTA W SYSTEMIE WITKAC.PL INSTRUKCJA TWORZENIA KONTA W SYSTEMIE WITKAC.PL Witkac sp. z o.o., ul. Sienkiewicza 5a, 76-200 Słupsk, www.witkac.pl, bok@witkac.pl Wersja 2 Data Opracował/a Wprowadzone zmiany 19.02.2018 Agnieszka Wirkus

Bardziej szczegółowo

1. Klienci... 2. 2. Logowanie i Pulpit... 9. 3. Mój profil... 10. 4. Wyniki testów... 12. 5. Moje CV... 13. 6. Kapitał Kariery...

1. Klienci... 2. 2. Logowanie i Pulpit... 9. 3. Mój profil... 10. 4. Wyniki testów... 12. 5. Moje CV... 13. 6. Kapitał Kariery... Spis treści 1. Klienci... 2 2. Logowanie i Pulpit... 9 3. Mój profil... 10 4. Wyniki testów... 12 5. Moje CV... 13 6. Kapitał Kariery... 15 6.1. Moje kwalifikacje i doświadczenie... 16 6.2. Moje kompetencje

Bardziej szczegółowo

Instrukcja zakładania konta pocztowego na stronie www-tz.c.pl

Instrukcja zakładania konta pocztowego na stronie www-tz.c.pl Instrukcja zakładania konta pocztowego na stronie www-tz.c.pl Krok 1 Należy wpisać w okno przeglądarki adres strony: www.tz-c.pl Na górze strony www.tz-c.pl należy odnaleźć przycisk Rejestracja (podświetlony

Bardziej szczegółowo

Instrukcja podłączenia do ZSMOPL na środowisku produkcyjnym

Instrukcja podłączenia do ZSMOPL na środowisku produkcyjnym Instrukcja podłączenia do ZSMOPL na środowisku produkcyjnym Spis treści 1. Wstęp... 2 2. Założenie konta dla administratora lokalnego podmiotu... 3 3. Złożenie wniosku o założenie konta podmiotu raportującego...

Bardziej szczegółowo

Poradnik użytkowania strony internetowej Sprawnego Dolnoślązaczka

Poradnik użytkowania strony internetowej Sprawnego Dolnoślązaczka Poradnik użytkowania strony internetowej Sprawnego Dolnoślązaczka Zalecamy korzystanie z najnowszej wersji Firefox, Chrome, Opera, Chromium. Strona może niepoprawnie działać w starszych przeglądarkach

Bardziej szczegółowo

Instrukcja podłączenia do ZSMOPL na środowisku produkcyjnym

Instrukcja podłączenia do ZSMOPL na środowisku produkcyjnym Instrukcja podłączenia do ZSMOPL na środowisku produkcyjnym Spis treści 1. Wstęp... 2 2. Założenie konta dla administratora lokalnego podmiotu... 3 3. Złożenie wniosku o założenie konta podmiotu raportującego...

Bardziej szczegółowo

System epon Dokumentacja użytkownika

System epon Dokumentacja użytkownika System epon Dokumentacja użytkownika Prawa autorskie tego opracowania należą do MakoLab S.A. Dokument ten, jako całość, ani żadna jego część, nie może być reprodukowana lub rozpowszechniana w jakiejkolwiek

Bardziej szczegółowo

VENUS-BEAUTY.pl. Instrukcja obsługi procesu zamówienia

VENUS-BEAUTY.pl. Instrukcja obsługi procesu zamówienia VENUS-BEAUTY.pl Instrukcja obsługi procesu zamówienia 1 Wymagania techniczne Komputer podłączony do sieci internetowej (ze stałym łączem internetowym) System Windows z zainstalowanym oprogramowaniem antywirusowym

Bardziej szczegółowo

Instrukcja obsługi Zaplecza serwisu biznes.gov.pl dla Pracowników Instytucji w zakresie weryfikacji opisów procedur przygotowanych przez Zespół epk

Instrukcja obsługi Zaplecza serwisu biznes.gov.pl dla Pracowników Instytucji w zakresie weryfikacji opisów procedur przygotowanych przez Zespół epk Instrukcja obsługi Zaplecza serwisu biznes.gov.pl dla Pracowników Instytucji w zakresie weryfikacji opisów procedur przygotowanych przez Zespół epk Spis treści: 1 WSTĘP... 3 2 DOSTĘP DO SYSTEMU... 3 3

Bardziej szczegółowo

Instrukcja użytkownika. Instrukcja konfiguracji i obsługi modułu e-rejestracja

Instrukcja użytkownika. Instrukcja konfiguracji i obsługi modułu e-rejestracja Instrukcja użytkownika Instrukcja konfiguracji i obsługi modułu e-rejestracja Spis treści 1. Wprowadzenie... 3 1.1. Do czego służy moduł e-rejestracji?... 3 1.2. Schemat działania systemu e-rejestracja...

Bardziej szczegółowo

Platforma e-learningowa

Platforma e-learningowa Dotyczy projektu nr WND-RPPD.04.01.00-20-002/11 pn. Wdrażanie elektronicznych usług dla ludności województwa podlaskiego część II, administracja samorządowa realizowanego w ramach Decyzji nr UDA- RPPD.04.01.00-20-002/11-00

Bardziej szczegółowo

INSTRUKCJA UŻYTKOWNIKA GENERATORA WNIOSKÓW O DOFINANSOWANIE DLA WNIOSKODAWCÓW

INSTRUKCJA UŻYTKOWNIKA GENERATORA WNIOSKÓW O DOFINANSOWANIE DLA WNIOSKODAWCÓW INSTRUKCJA UŻYTKOWNIKA GENERATORA WNIOSKÓW O DOFINANSOWANIE DLA WNIOSKODAWCÓW Historia zmian dokumentu Nr wersji Data wersji Komentarz/Uwagi/Zakres zmian 1.0 2015-11-19 Utworzenie dokumentu 1.1 2016-03-31

Bardziej szczegółowo

Instrukcja korzystania z Systemu Telnom - Nominacje

Instrukcja korzystania z Systemu Telnom - Nominacje Instrukcja korzystania z Systemu Telnom - Nominacje Opis panelu użytkownika Pierwsze zalogowanie w systemie Procedura resetowania hasła Składanie nominacji krok po kroku System Telnom Nominacje znajduje

Bardziej szczegółowo

SUPLEMENT DO DYPLOMU

SUPLEMENT DO DYPLOMU Projekt Jednolity System Obsługi Studentów Podręcznik użytkownika aplikacji SUPLEMENT DO DYPLOMU POLITECHNIKA WROCŁAWSKA wersja 1.02 ComputerLand Wrocław, czerwiec 2005 ComputerLand Podręcznik użytkownika

Bardziej szczegółowo

Droga Nauczycielko, Nauczycielu praktykujący OK zeszyt ;-) Witamy Cię w Społeczności CEO.

Droga Nauczycielko, Nauczycielu praktykujący OK zeszyt ;-) Witamy Cię w Społeczności CEO. Droga Nauczycielko, Nauczycielu praktykujący OK zeszyt ;-) Witamy Cię w Społeczności CEO. System tak działa, że musisz wykonać koniecznie dwie czynności: 1. Zapisać się do CEO na naszą społeczność. (postępując

Bardziej szczegółowo

INSTRUKCJA zakładania konta w Społeczności CEO

INSTRUKCJA zakładania konta w Społeczności CEO INSTRUKCJA zakładania konta w Społeczności CEO KROK 1 W celu uzupełnienia formularza rejestracyjnego należy zarejestrować/zalogować się w Społeczności CEO https://spolecznosc.ceo.org.pl. Społeczność CEO

Bardziej szczegółowo

APLIKACJA KONKURSOWA INSTRUKCJA UŻYTKOWNIKA

APLIKACJA KONKURSOWA INSTRUKCJA UŻYTKOWNIKA APLIKACJA KONKURSOWA INSTRUKCJA UŻYTKOWNIKA 1 Pojęcia używane w aplikacji Statusy konkursu 1. Organizacja konkurs jest w trakcie organizacji, ustalania parametrów 2. Otwarty do konkursu można składać zgłoszenia

Bardziej szczegółowo

1 z 18. Spis treści: 1. Zakładanie konta na portalu OX.PL

1 z 18. Spis treści: 1. Zakładanie konta na portalu OX.PL 1 z 18 Spis treści: 1. Zakładanie konta na portalu OX.PL 2. Uruchamianie linku aktywacyjnego 3. Co zrobić w przypadku kiedy link nie dotarł na skrzynkę mailową 4. Dodawanie ogłoszeń 5. Reset hasła 1. Zakładanie

Bardziej szczegółowo

Instrukcja Integracja z istore. Wersja z 07/02/2015. Copyright Zakupteraz.pl

Instrukcja Integracja z istore. Wersja z 07/02/2015. Copyright Zakupteraz.pl Instrukcja Integracja z istore Wersja z 07/02/2015 Copyright Zakupteraz.pl 1. SPIS TREŚCI 1. SPIS TREŚCI... 2 2. WSTĘP... 3 3. OPIS PROCEDURY INTEGRACJI... 4 1.1. LOGOWANIE... 4 1.2. PANEL KLIENTA INTEGRACJA

Bardziej szczegółowo

Instrukcja obsługi rejestrowanie uczestników rajdu.

Instrukcja obsługi rejestrowanie uczestników rajdu. Instrukcja obsługi rejestrowanie uczestników rajdu. Instrukcja obsługi. Regulamin rajdu. Przeglądanie tras rajdu. Rejestracja użytkownika. 1. Bez zalogowania dostępne są następujące funkcje: a) Wyświetlenie

Bardziej szczegółowo

Zakładanie konta użytkownika na platformie do nauczania na odległość http://moodle.ckp.edu.pl

Zakładanie konta użytkownika na platformie do nauczania na odległość http://moodle.ckp.edu.pl Projekt językowy Zakładanie konta użytkownika na platformie do nauczania na odległość http://moodle.ckp.edu.pl Zygmunt Sumiec Zespół Szkół Ogólnokształcących nr 1 w Mielcu I. Abyś mógł korzystać z platformy

Bardziej szczegółowo

Instrukcja użytkownika

Instrukcja użytkownika Instrukcja użytkownika Bydgoszcz 2017 Strona: 1/12 Spis treści 1 Konfiguracja i obsługa funkcjonalności... 3-1.1 Wstęp... 3 1.2 Konfiguracja stacji klienckiej... 3 1.3 Weryfikacja istniejącego dokumentu...

Bardziej szczegółowo

Instrukcja rejestracji

Instrukcja rejestracji Instrukcja rejestracji sancolombo.santanderconsumer.pl UWAGA! Tylko pracownicy produkcyjni mają możliwość korzystania z platformy San Colombo. System rejestracji użytkowników rozpozna Cię jeśli: aktywnie

Bardziej szczegółowo

INFORMACJE OGÓLNE. Użytkownik aplikacji otrzymuje dostęp do aktualnych informacji dotyczących obiektu

INFORMACJE OGÓLNE. Użytkownik aplikacji otrzymuje dostęp do aktualnych informacji dotyczących obiektu SPIS TREŚCI Informacje ogólne 3 1. Pobieranie aplikacji 3 2. Rejestracja i logowanie 4 3. Menu aplikacji 6 4. Zgłaszanie alarmu 7 5. Aktywne alarmy 8 6. Odwoływanie alarmów 8 7. Chronione obiekty 9 8.

Bardziej szczegółowo

Facebook, Nasza klasa i inne. www.facebook.com. podstawowe informacje o serwisach społeczności internetowych. Cz. 2. Facebook

Facebook, Nasza klasa i inne. www.facebook.com. podstawowe informacje o serwisach społeczności internetowych. Cz. 2. Facebook Facebook, Nasza klasa i inne podstawowe informacje o serwisach społeczności internetowych Cz. 2. Facebook www.facebook.com Facebook to drugi najczęściej wykorzystywany portal społecznościowy w Polsce i

Bardziej szczegółowo

Portal Personelu Medycznego. 2010 Global Services Sp. z o.o.

Portal Personelu Medycznego. 2010 Global Services Sp. z o.o. Portal Personelu Medycznego 2 Portal Personelu Medycznego Spis treści Rozdział I Wprowadzenie 3 Rozdział II Konfiguracja 4 Rozdział III Aktywacja 5 Rozdział IV Opis aplikacji 7 Rozdział V Obsługa okien

Bardziej szczegółowo

Część 3 - Konfiguracja

Część 3 - Konfiguracja Spis treści Część 3 - Konfiguracja... 3 Konfiguracja kont użytkowników... 4 Konfiguracja pól dodatkowych... 5 Konfiguracja kont email... 6 Konfiguracja szablonów dokumentów... 8 Konfiguracja czynności

Bardziej szczegółowo

Instrukcja obsługi Zaplecza epk w zakresie zarządzania tłumaczeniami opisów procedur, publikacji oraz poradników przedsiębiorcy

Instrukcja obsługi Zaplecza epk w zakresie zarządzania tłumaczeniami opisów procedur, publikacji oraz poradników przedsiębiorcy Instrukcja obsługi Zaplecza epk w zakresie zarządzania tłumaczeniami opisów procedur, publikacji oraz poradników przedsiębiorcy Spis treści: 1 WSTĘP... 3 2 DOSTĘP DO SYSTEMU... 3 3 OPIS OGÓLNY SEKCJI TŁUMACZENIA...

Bardziej szczegółowo

2. Kliknięcie Złóż wniosek otworzy Panel wnioskodawcy, o następującym wyglądzie

2. Kliknięcie Złóż wniosek otworzy Panel wnioskodawcy, o następującym wyglądzie Jak złożyć wniosek w Programie Równać Szanse 2018 Ogólnopolski Konkurs Grantowy instrukcja postępowania z Panelem wnioskodawcy Wnioski konkursowe w Programie Równać Szanse Ogólnopolski Konkurs Grantowy

Bardziej szczegółowo

Certyfikat kwalifikowany

Certyfikat kwalifikowany Certyfikat kwalifikowany Krok 2 Aktywacja odnowienia certyfikatu kwalifikowanego. Instrukcja uzyskania certyfikatu kwalifikowanego Krok 2 Aktywacja odnowienia certyfikatu kwalifikowanego Wersja 1.8 Spis

Bardziej szczegółowo

Instrukcja aktywacji i instalacji Certum Code Signing

Instrukcja aktywacji i instalacji Certum Code Signing Instrukcja aktywacji i instalacji Code Signing S t r o n a 2 Spis treści 1 Opis produktu... 3 2 Instalacja certyfikatu... 3 2.1 Wymagania... 3 2.2 Aktywacja certyfikatu... 3 3 Wgrywanie certyfikatu na

Bardziej szczegółowo

INSTRUKCJA OBSŁUGI. Proces rejestracji i logowania

INSTRUKCJA OBSŁUGI. Proces rejestracji i logowania INSTRUKCJA OBSŁUGI Proces rejestracji i logowania Data modyfikacji : 01-11-2015 r. wersja dokumentu 1.1 Spis treści 1. Funkcjonalność w panelu Beneficjenta...3 2. Strona główna...4 3. Rejestracja...6 3.1.

Bardziej szczegółowo

INSTRUKCJA instalacji aplikacji elisty.pl

INSTRUKCJA instalacji aplikacji elisty.pl INSTRUKCJA instalacji aplikacji elisty.pl Korzystanie z usługi elisty.pl jest bardzo proste musisz tylko: - zarejestrować się utwórz i aktywuj konto użytkownika w serwisie elisty.pl - pobrać i zainstalować

Bardziej szczegółowo

INSTRUKCJA Panel administracyjny

INSTRUKCJA Panel administracyjny INSTRUKCJA Panel administracyjny Konto nauczyciela Spis treści Instrukcje...2 Rejestracja w systemie:...2 Logowanie do systemu:...2 Przypomnienie hasła:...2 Przypomnienie hasła:...2 Przesłanie zgłoszenia

Bardziej szczegółowo

Skrócona instrukcja obsługi moduł lekarza

Skrócona instrukcja obsługi moduł lekarza Skrócona instrukcja obsługi moduł lekarza 1. Pierwszym krokiem, jaki musimy wykonać jest zalogowanie się do systemu. W tym celu wchodzimy na stronę NFZ-tu, wybieramy z lewego menu opcję Recepty/leki, następnie

Bardziej szczegółowo

wersja 1.0 ośrodek komputerowy uj cm ul. mikołaja kopernika 7e, Kraków tel

wersja 1.0 ośrodek komputerowy uj cm ul. mikołaja kopernika 7e, Kraków tel S Y S T E M B A D A Ń A N K I E T O W Y C H wersja 1.0 uj cm, 31-034 Kraków tel. 12 422 99 63 Opis konfiguracji Tworzenie ankiety rozpoczynamy ikoną znajdującą się w prawym górnym rogu ekranu. Ilustracja

Bardziej szczegółowo

1. REJESTRACJA W INTERIM24.PL... 2 2. PANEL UŻYTKOWNIKA ZAWARTOŚĆ... 8 3. UZUPEŁNIENIE PROFILU... 9

1. REJESTRACJA W INTERIM24.PL... 2 2. PANEL UŻYTKOWNIKA ZAWARTOŚĆ... 8 3. UZUPEŁNIENIE PROFILU... 9 Strona1 Platforma Interim24.pl została stworzona w ramach projektu Interim management nowość w zarządzaniu wiekiem i firmą współfinansowanego przez Unię Europejską w ramach Europejski Funduszu Społecznego.

Bardziej szczegółowo