Kurs Pythona dla testerów oprogramowania. Część 4. Generator danych - analiza aplikacji.

Kurs Pythona dla testerów oprogramowania. Część 4. Generator danych - analiza aplikacji.
W dzisiejszej części kursu przedstawiam Wam już efekt swojej pracy, czyli generator danych, który możecie pobrać. Zanim jednak przejdziemy do analizy mojej aplikacji, chciałabym zaznaczyć, iż zdaję sobie sprawę z faktu, że jakość kodu na tym etapie pracy nad aplikacją nie jest wystarczająca.

Wielu programistów, zwłaszcza początkujących, nie zwraca uwagi na jakość kodu, który tworzy. Jest to bez wątpienia związane z tym, że brak nam wiedzy pozwalającej na wytworzenie kodu, który będzie czytelny i zrozumiały.

W kolejnych artykułach postaram się zmodyfikować kod tak, aby był bardziej przejrzysty i wydajny.

 

Akcja – reakcja

Pora skończyć z suchymi faktami i przejść do działania. Jak zrobiłam mini aplikację w postaci generatora danych? Aplikacja miała umożliwiać wygenerowanie takich danych jak: imię, nazwisko, pesel, serie i nr. dowodu osobistego, ulicę oraz miasto. Przyznam, że nie było to dla mnie łatwe. Podczas przeglądania dostępnych tutorialów przy jednoczesnym uczeniu się ich, a co dalej za tym idzie, do przełożenia tego na praktykę jeszcze daleka droga. Trzy linijki kodu napisanego przy pomocy kursu online nie czyni z człowieka programisty, ba, nawet początkującego. Gdy już przystąpiłam do tworzenia aplikacji nie potrafiłam na początku zbudować poprawnej klasy, nadpisywałam zmienne, tworzyłam dane o tej samej nazwie. Zapominałam o tym, że w Pythonie bardzo ważne są wcięcia, co skutkowało faktem, iż Python zwracał mi błąd w konsoli w postaci SyntaxError.

 

Krok po korku pracy nad generatorem danych

We wcześniejszych częściach kursu przedstawiłam Wam pokrótce to, co będzie nam potrzebne do stworzenia aplikacji.

Tak naprawdę pierwszym etapem pracy nad aplikacją jest uruchomienie Qt Designera.

Przebieg tworzenia aplikacji wygląda mniej więcej tak:

  • stworzenie interfejsu w Qt Designer,
  • nadanie pasujących nazw dla widgetów, oraz ich wstępna konfiguracja (Qt Designer),
  • wygenerowanie za pomocą pyuic4 klasy opisującej interfejs,
  • wywołanie aplikacji z wykorzystaniem wygenerowanej klasy interfejsu,
  • rozszerzenie klasy interfejsu o własne sloty.

 

Dodatkowo jeśli chcecie uzupełnić swoją wiedzę możecie skorzystać z tego linka: https://www.youtube.com/watch?v=Dmo8eZG5I2w

 

Wróćmy do naszego generatora.

Macie już pierwszy projekt? Jeśli tak, to czas zapisać GUI jako np. test.ui (tutaj ważna uwaga: zapamiętajcie dokładną ścieżkę dostępu do pliku – będzie Wam potrzebna). Poniżej przedstawiam Wam przykład:

 

 

Warto tutaj również zauważyć, że nasz projekt zapisuje się z rozszerzeniem .ui, a nie .py.

Uwagi:

Ui_Form to nazwa klasy wygenerowanej przez pyuic4. Pochodzi od nazwy głównego widgeta okna naszej aplikacji.

Prosiłam Was o zapamiętanie ścieżki zapisanego pliku ui. Do czego będzie Wam to potrzebne? Plik .ui to tylko graficzny wygląd aplikacji. Jeśli chcemy ''tchnąć'' życie w aplikację musimy trochę przy niej popracować. Potrzebne będą tu funkcje, klasy. Sam program generuje tylko plik XML, a nam potrzebny jest plik z rozszerzeniem .py. Jeśli zapisany plik XML uruchomicie przez notepad++ będzie on wyglądać następująco:

 

 

W celu wygenerowania pliku .py, uruchamiamy konsolę cmd. Dla przypomnienia: w Windowsie 7 wiersz poleceń jest dostępny domyślnie.

Jeśli macie już uruchomioną konsolę oraz pamiętacie dokładną ścieżkę pliku to wiersz poleceń  powinien wyglądać następująco:

 

 

W razie jakichkolwiek problemów możecie skorzystać z tego linka: https://www.youtube.com/watch?v=egArGNwGxFE.

Po wykonaniu wszystkich czynności, które Wam przedstawiłam powinniście w swoim pliku PyQT zapisanym na komputerze wygenerować plik o rozszerzeniu .py. W moim przypadku jest to plik test.py.

Skoro mamy już potrzebny plik możemy zacząć pracę. Do naszego generatora potrzebne nam są dodatkowe dane. Jak już wcześniej wspominałam będzie to aplikacja, która generuje imię, nazwisko, pesel, serię i numer dowodu osobistego, ulicę oraz miasto. Angielskie słowo "fake" oznacza "imitacja/podróbka" i pod taką nazwą w internecie można znaleźć moduły w Python (i nie tylko) do generowania (do testów działania programów) fałszywych danych, które wyglądają jak prawdziwie - bo korzystają z list prawdziwych imion, nazwisk, itp. Spójrzcie na przykład "faker" w: https://github.com/joke2k/faker. Moduł zawiera polskie imiona, nazwiska, miasta, ulice. Dzięki temu możemy ''wypożyczyć'' listę imion i nazwisk. Przykład poniżej:

https://github.com/joke2k/faker/blob/master/faker/providers/person/pl_PL/__init__.py

Gdy otworzycie plik powyższej strony, zobaczycie kod, który możecie wykorzystać. Tylko uwaga: samo przekopiowanie kodu nic nie daje, bo klasy znajdujące się w tym zbiorze są zależne od innych klas, które są w jeszcze innych plikach (wystarczy spojrzeć na importy i klasy z jakich dziedziczą), być może trzeba stworzyć najpierw obiekt/instancję danej klasy, aby móc z niego skorzystać. Mając instancję trzeba wywołać odpowiednie funkcje z tych instancji. Tak więc zostawienie samych danych i zrobienie własnej funkcji wydaje się sensowniejsze. Co istotne na tym etapie pracy nad aplikacją to utworzenie samodzielnego  pliku dane.py, z klasą FakeData, którą można zaimportować i wykorzystać bez konieczności tworzenia instancji. Tym jednak zajmiemy się później.

Pierwszą rzeczą, którą należy zrobić w pliku testy.py, a co też ułatwi Wam pracę nad kodem to zmiana nazw zmiennych. Dzięki temu lepiej będziecie się orientować w kodzie.

Na przykład:

 

 

Powyższa część kodu to nasz widget imię. Jeśli zmienimy go na:

 

 

będzie to dla Was na pewno bardziej czytelniejsze. Przy okazji zauważcie, że pojawiły się tutaj pojęcia, które warto wyjaśnić, a mianowicie: class i def. W kolejnej części pokażę Wam jak wygląda system klas w Pythonie oraz jak go wykorzystuję w swojej aplikacji.

 

Pobierz generator danych >>

 

Autor: Iwona Rabus - praktykant w testerzy.pl.

 

SPRAWDŹ TAKŻE
Kurs Pythona dla testerów oprogramowania. Część 5. Obiektowe aspekty Pythona. 
Kurs Pythona dla testerów oprogramowania. Część 3. Biblioteka PyQt4. 
Kurs Pythona dla testerów oprogramowania. Część 2. Instalacja. 
Kurs Pythona dla testerów oprogramowania. Część 1. Wprowadzenie. 

 

To powinno Cię zainteresować