qtp tutorial 7 qtp s object identification paradigm how qtp identify objects uniquely
Jak QTP jednoznacznie identyfikuje obiekt? - To jest siódmy samouczek dotyczący QTP w naszej serii szkoleń dotyczących QTP.
Wyposażamy się we wszystkie podstawowe pojęcia, które pozwolą nam pisać solidne testy QTP . Omówiliśmy QTP Ustawienia nagrywania i uruchamiania , Praca z widokiem słów kluczowych i inne powiązane tematy.
=> Kliknij tutaj, aby zapoznać się z serią samouczków szkoleniowych QTP
To kolejny artykuł z serii, który mówi o kluczowym aspekcie QTP - Mechanizm, którego używa do jednoznacznej identyfikacji obiektu . Kiedy spojrzysz na poniższy ekran:
W tym oknie dialogowym znajdują się 3 przyciski i 2 pola tekstowe oraz różne inne elementy.
W poprzednich przykładach, kiedy wprowadzaliśmy nazwę użytkownika i hasło, widzieliśmy, jak QTP zapisywał te same operacje pod względem kodu programowego, a także tabeli w widoku słów kluczowych. Teraz, podczas odtwarzania, skąd QTP wie, że wartość, którą podajemy jako nazwa agenta lub hasło, musi zostać odpowiednio wpisana w tych polach edycji. Albo skąd wie, który przycisk należy kliknąć, aby przesłać wprowadzone wartości?
Spróbujmy znaleźć na to odpowiedź.
jak zaimplementować hashtable w java
Oczywiste jest, że QTP w jakiś sposób pamięta, na którym obiekcie działać. Sposób, w jaki to robi, polega na tym, że przechowuje obiekt w AUT jako obiekt testowy. Następnie bada jego właściwości i klasyfikuje obiekt. Na przykład, kiedy napotka przycisk OK, sprawdza jego właściwości i na ich podstawie klasyfikuje obiekt jako „WinButton”.
QTP ma z góry określony zestaw właściwości, których uczy się / przechowuje dla każdej klasy obiektów, które identyfikuje. Istnieją 3 aspekty tego:
- Obowiązkowe właściwości : To jest lista właściwości dla określonej klasy, które QTP zawsze przechowuje. Można powiedzieć, że jest to opis obiektu. Sprawdza to również w połączeniu z obiektem nadrzędnym, aby zobaczyć, czy opis jest wystarczający do jednoznacznej identyfikacji obiektu.
- Właściwości pomocnicze : W przypadku, gdy opis obowiązkowych właściwości jest niewystarczający do zidentyfikowania Obiektu, do opisu zostanie dodany zestaw właściwości nieobowiązkowych, jedna po drugiej, aż będzie wystarczająca ilość danych do identyfikacji obiektu.
- Identyfikator porządkowy : Jeśli właściwości pomocnicze również nie skutkują unikalną identyfikacją obiektu, QTP dodaje specjalny identyfikator porządkowy, taki jak lokalizacja obiektu na stronie lub w kodzie źródłowym.
W ten sposób QTP tworzy obiekty testowe. Używa tego opisu obiektu testowego do wyszukiwania obiektów do działania podczas sesji uruchamiania. Wybiera obiekty, które idealnie pasują do zawartego w nim opisu. Te obiekty są nazywane Obiekty czasu wykonywania.
O ile aplikacja nie zmieniła się znacząco, opis obiektu testowego, który ma QTP, jest wystarczający do znalezienia obiektu.
W przypadku obiektu WinButton, który mamy w naszej aplikacji Flight, zobaczmy, jakie właściwości przechowuje QTP. Te informacje są dostępne w repozytorium obiektów. Opcja menu „Zasoby-> Repozytorium obiektów” uruchomi za nas OR. Alternatywnie możesz użyć CTRL + R lub kliknąć ikonę.
Jeśli zauważysz w powyższym oknie, zapisał on „tekst” w WinButton jako jego opis, aby zidentyfikować ten przycisk w czasie wykonywania.
W przypadku bardziej skomplikowanych aplikacji tester może dodawać lub usuwać pewne właściwości, aby opis był wystarczająco mocny, aby dokładniej identyfikować obiekt w czasie wykonywania. Aby to zrobić, po prostu kliknij ikonę „+”.
Zostaną wyświetlone wszystkie inne właściwości obiektu. Użytkownik może dodać jedną lub więcej z tych właściwości.
Jest też coś, co nazywa się „ Wizualny identyfikator relacji ”Na ekranie LUB dla właściwości WinButton.
Jest to funkcja, która dodatkowo wspiera rozpoznawanie obiektów na podstawie ich sąsiednich obiektów w AUT. Po ustawieniu tworzy to rodzaj łącza dla mniej stabilnych komponentów w Twoim AUT z obiektami, które są bardziej jednoznacznie identyfikowalne. QTP będzie identyfikować te obiekty, o ile zachowują one swoje położenie względem tych unikalnych obiektów.
Aby ustawić rodzaj linku pozycyjnego, będziemy musieli kliknąć tę kolumnę w OR i pojawi się następujący ekran:
Na tym ekranie wybierz znak „+”, aby dodać obiekt, z którym chcesz, aby obiekt testowy miał łącze pozycyjne.
Wybieram „Agent Name” i powiem, że ten obiekt powinien znajdować się nad przyciskiem „OK”.
Oto jak to ustawiłem:
Teraz, w przypadku zmiany niektórych właściwości przycisku OK w przyszłości, QTP zidentyfikuje go, jeśli nad nim znajduje się „Nazwa agenta”.
Inteligentna identyfikacja
jak utworzyć tablicę ciągów java
Jest to mechanizm używany przez QTP w jednej z tych dwóch sytuacji. Opis obiektu, który ma QTP:
- Nie pasuje do żadnych obiektów wykonawczych
- Dopasowuje się do wielu obiektów
Jest to trochę zaawansowana koncepcja, więc przejdziemy do niej później, posługując się kilkoma przykładami, które ułatwią zrozumienie.
Identyfikator porządkowy
Jest to wartość liczbowa, która przedstawia względną kolejność obiektu z obiektami o podobnym opisie. Jeśli obiekt 1 i Object 2 mają te same właściwości obowiązkowe i pomocnicze, to identyfikator porządkowy zostanie użyty do jednoznacznego rozpoznania obiektu.
Ta wartość jest powiązana z innymi obiektami ekranu, więc jeśli coś się zmieni na ekranie, ten identyfikator może nie być przydatny. Należy zauważyć, że jeśli właściwości obowiązkowe i pomocnicze są wystarczające, do zapisu nie jest przypisywany identyfikator porządkowy. Można go dodać później, klikając odpowiednią kolumnę obiektu w OR
Istnieją 3 rodzaje identyfikatorów porządkowych:
- Indeks: jest to oparte na kolejności pojawiania się obiektu w kodzie aplikacji
- Lokalizacja: na podstawie lokalizacji na ekranie, oknie dialogowym lub stronie
- Czas utworzenia: Służy tylko do obiektów przeglądarki. W przypadku istnienia 2 przeglądarek o podobnych właściwościach, brana jest pod uwagę ta, która została utworzona jako pierwsza i następna.
Na przykład, pozwól nam zrozumieć, jak działa identyfikator „indeksu” na ekranie logowania do aplikacji lotniczych:
Są to następujące elementy:
Jak widać, tekst statyczny i pola edycji mają tę samą właściwość „tekst”.
Jeśli wiem, że jeden z nich to statyczny tekst, a drugi to obiekt WinEdit, to nie ma żadnego problemu. Powiedzmy, że jeśli wszystkie te są traktowane jako WinObject, będę musiał określić, na którym obiekcie działać. Stanie się tak tylko wtedy, gdy zawiodą obowiązkowa, wspomagająca i inteligentna identyfikacja. Aby więc powiedzieć QTP, co jest tym, przypiszę identyfikator porządkowy „Indeks”. Zrobię to z sali operacyjnej.
Ustawię statyczny identyfikator tekstowy nazwy agenta na 0, a dla pola edycji ustawię go na 1.
Tak to wygląda:
Więc jeśli potrzebuję uzyskać dostęp do tekstu statycznego, zrobię to w następujący sposób:
WinObject („tekst: = nazwa agenta:”, indeks: = 0) - Będzie to odnosić się do tekstu statycznego
WinObject („tekst: = nazwa agenta:”, indeks: = 1) - Będzie to odnosić się do pola edycji
Ta sama teoria dotyczy również identyfikatora lokalizacji, z wyjątkiem tego, że wybieramy lokalizację w oknie, aby określić wartość liczbową, która ma zastosowanie do określonego obiektu.
Konfigurowanie właściwości identyfikacji obiektu:
Obowiązkowe, wspomagające właściwości i identyfikatory porządkowe, które mają być brane pod uwagę, aby obiekt określonej klasy został rozpoznany, można skonfigurować za pomocą „Narzędzia-> Identyfikator obiektu”. W tym oknie możemy również ustawić właściwości inteligentnej identyfikacji.
Okno wygląda następująco:
Jak widać na powyższym obrazku, środowisko można wybrać z listy rozwijanej. Po wybraniu na liście zostaną wyświetlone klasy obiektów w odpowiednich środowiskach. Po wybraniu obiektu wyświetlane są obowiązkowe i pomocnicze właściwości. Użytkownik może dodawać / usuwać dodatkowe właściwości do tej listy.
Ponadto w razie potrzeby można włączyć / wyłączyć inteligentną identyfikację dla określonej klasy obiektów. Aby ustawić identyfikator porządkowy, znajduje się menu rozwijane, które można wybrać, aby zidentyfikować obiekt za pomocą lokalizacji, indeksu lub czasu utworzenia (tylko dla typu przeglądarki).
Podsumujemy podstawowe koncepcje, zanim przejdziemy do pełnoprawnych programów QTP. Następny artykuł QTP będzie zawierał różne tryby nagrywania, szpiegowanie obiektów, repozytorium obiektów itp. Szczegóły.
=> Odwiedź tutaj, aby zapoznać się z serią samouczków szkoleniowych QTP
rekomendowane lektury
- Repozytorium obiektów w QTP - samouczek nr 22
- QTP Tutorial # 18 - Objaśnienie struktur opartych na danych i hybrydowych z przykładami QTP
- Samouczek QTP nr 24 - Korzystanie z obiektów wirtualnych i scenariuszy odzyskiwania w testach QTP
- Samouczek QTP nr 6 - Zrozumienie ustawień nagrywania i uruchamiania QTP dla naszego pierwszego testu
- Samouczek QTP nr 23 - Identyfikacja inteligentnego obiektu QTP, punkt synchronizacji i analiza wyników testów
- Samouczek QTP nr 8 - Dowiedz się o trybach nagrywania QTP, szpiegowaniu obiektów i repozytoriach obiektów
- Parametryzacja w QTP (część 2) - samouczek QTP nr 20
- Samouczki QTP - ponad 25 samouczków szkoleniowych Micro Focus Quick Test Professional (QTP)