Akcje w QTP/UFT z Przykładem

⚡ Inteligentne podsumowanie

Akcje w UFT/QTP Podziel skrypt testowy na logiczne, wielokrotnego użytku jednostki, aby testerzy mogli szybciej tworzyć, utrzymywać i udostępniać automatyzację. Ta strona wyjaśnia trzy typy akcji, sposób ich podziału i wywołania oraz sposób przekazywania danych między akcjami.

  • 🧩 Definicja: Akcja grupuje zestaw kroków testowych w jedną modułową, wielokrotnego użytku jednostkę wewnątrz UFT/QTP skrypt.
  • 🔁 Akcje wielokrotnego użytku: Wielokrotne wywołanie tej samej akcji w tym samym teście lub w dowolnym innym teście.
  • 🔒 Akcje jednorazowe: Można je uruchomić tylko raz i wyłącznie w ramach testu, w którym zostały utworzone.
  • 🌐 Działania zewnętrzne: Wielokrotnego użytku akcja staje się akcją zewnętrzną, dostępną tylko do odczytu, gdy zostanie wywołana przez inny test.
  • ✂️. Rozdzielać: Podziel dużą akcję na niezależne akcje pokrewne lub zagnieżdżoną parę rodzic-dziecko.
  • 📞 Wywołanie akcji: Wstaw nową akcję, kopię akcji lub wywołanie istniejącej akcji.
  • 📤 Parametry: Przekazuj wartości wejściowe i wyjściowe między akcjami za pomocą polecenia RunAction.
  • 🗂️. Arkusze danych: Użyj arkusza Globalnego dla danych testowych i arkusza Lokalnego każdej akcji dla danych prywatnych.

Czym jest akcja w UFT/QTP?

Akcje in UFT/QTP Podziel test na „jednostki logiczne” lub „procesy biznesowe”. Każda akcja grupuje kroki, które wykonują jedno rozpoznawalne zadanie, takie jak logowanie, wyszukiwanie lotu lub rezerwacja biletu. Akcje pomagają stworzyć skrypt, który jest bardziej modułowy i wydajny.

Nowo utworzony skrypt składa się tylko z jednej akcji. Możesz dodać więcej akcji do swojego Micro Focus. UFT skrypt zgodnie z wymaganiami, a każda dodana akcja zachowuje swoją własną logikę i dane lokalne, oddzielone od reszty testu.

Podzielenie długiego skryptu na akcje przynosi korzyści w momencie, gdy test wymaga zmiany. Tester może zaktualizować jedną akcję, na przykład sekwencję logowania, bez konieczności modyfikowania logiki wyszukiwania lub finalizacji zamówienia, która jest obecna w innych akcjach. Taka izolacja sprawia również, że akcje stają się wielokrotnego użytku elementami konstrukcyjnymi, które inne skrypty mogą wywoływać, zamiast ponownie rejestrować te same kroki.

Na przykład, typowy skrypt rezerwacji lotów dzieli się na akcję logowania, akcję wyszukiwania lotów i akcję rezerwacji biletów. Każda z nich ma swoje własne kroki i dane lokalne, więc tester, który musi jedynie zweryfikować logowanie, nie musi rejestrować ani zarządzać procesem rezerwacji.

Rodzaje działań w UFT/QTP: Wielokrotnego użytku, jednorazowego użytku i zewnętrzne

UFT/QTP obsługuje trzy rodzaje akcji. Wybrany typ decyduje, czy akcja może być udostępniana między skryptami, czy pozostanie prywatna i dostępna dla testu, w którym została utworzona.

Rodzaj działania Gdzie może działać Można edytować w teście wywołania
Wielokrotnego użytku Ten sam test, wiele razy lub jakikolwiek inny test Tak, z testu, który jest jego właścicielem
Nie nadaje się do ponownego użycia Tylko test, w którym został utworzony i tylko raz Tak
Zewnętrzny wielokrotnego użytku Wywołane z innego testu jako współdzielona, ​​przechowywana akcja Nie, tylko do odczytu; edytowalna jest tylko lokalna kopia tabeli danych

Wielokrotnego użytku działanie staje się działanie zewnętrzne w momencie, gdy inny test go wywoła, a nie test, który jest jego właścicielem. Akcje zewnętrzne pozostają tylko do odczytu w teście wywołującym, ponieważ akcja współdzielona może być używana przez dziesiątki skryptów jednocześnie, a umożliwienie każdemu wywołującemu edycji kroków spowodowałoby awarię pozostałych. Nadal można sparametryzować wywołanie i pracować lokalnie z kopią jego tabeli danych.

Z reguły nową akcję należy pozostawić niepowtarzalną, dopóki jej logika jest przypisana do jednego testu. Promozrób tak, aby można go było ponownie wykorzystać, gdy drugi skrypt będzie potrzebował tych samych kroków, i oczekuj, że będzie się zachowywał jak zewnętrzna akcja tylko do odczytu w chwili, gdy drugi skrypt faktycznie ją wywoła.

Jak dzielić, kopiować i wywoływać akcje w UFT

W miarę rozwoju akcji, kontynuujping każdy krok w jednym miejscu utrudnia debugowanie i ponowne wykorzystanie skryptu. UFT umożliwia podzielenie istniejącej akcji na dwa sposoby, gdy stanie się ona nieporęczna.

  • Podział niezależny (rodzeństwo): Wybrana akcja dzieli się na dwie oddzielne akcje, które są wykonywane jedna po drugiej, każda z nichping własną lokalną tabelę danych.
  • Podział zagnieżdżony (rodzic-dziecko): Wybrana akcja dzieli się na akcję nadrzędną, której ostatni krok wywołuje drugą, akcję podrzędną, zachowując logiczną zależność między nimi.

Gdy istnieją działania, UFT oferuje trzy sposoby wprowadzenia akcji do testu z wstawka Menu:

  • Wstaw wezwanie do nowej akcji: Tworzy nową, pustą akcję wewnątrz bieżącego testu.
  • Wstaw wezwanie do podjęcia działania: Kopiuje istniejącą akcję w całości, łącznie z punktami kontrolnymi, parametryzacją i kartą Tabeli Danych, do testu wywołującego. Kopia jest w pełni niezależna, więc zmiany nigdy nie wpływają na oryginał ani nie są przez niego modyfikowane. Można kopiować zarówno akcje wielokrotnego użytku, jak i jednorazowe.
  • Wstaw wezwanie do istniejącej akcji: Wstawia wywołanie tylko do odczytu do akcji wielokrotnego użytku zapisanej w innym teście. Można je modyfikować tylko w teście, w którym zostało utworzone, co zapewnia synchronizację wszystkich wywołań i ułatwia utrzymanie dużych zestawów testów.

Każde połączenie jest kompilowane do RunAction oświadczenie w opinii eksperta:

' Calls Action2, which is stored in Test2, running it for one iteration
RunAction "Action2[Test2]", oneIteration

Akcja jest uruchamiana tyle razy, ile określono we właściwościach wywołania akcji. Na przykład, jeśli Akcja2 jest ustawiona na uruchamianie w każdej iteracji tabeli danych Test2, ale wywołanie Akcji1 w Teście1 jest uruchamiane tylko raz, Akcja2 i tak zostanie wykonana tylko raz, ponieważ samo wywołanie jest wyzwalane jednokrotnie.

💡 Wskazówka: Jeśli test zawiera kilka akcji, otwórz Przepływ testowy panel z menu Widok, aby je przeciągnąć i zmienić ich kolejność. Zmienia to kolejność, w jakiej UFT wykonuje akcje bez edytowania kroków w ramach pojedynczej akcji.

Poniższy film stanowi rozwinięcie pięcioetapowego skryptu logowania stworzonego we wcześniejszych samouczkach Rezerwacja lotu i prowadzi przez proces tworzenia, dzielenia i wywoływania akcji od początku do końca. To najdłuższy film w tym UFT/QTP seria samouczkówDlatego warto robić notatki podczas oglądania.

Kliknij w tym miejscu jeśli film nie jest dostępny

Jak przekazywać parametry i przechowywać wartości wyjściowe pomiędzy akcjami

Oprócz wywołania akcji większość prawdziwych skryptów musi przesłać do niego dane i odczytać wynik. UFT nadaje każdej akcji własne parametry wejściowe i wyjściowe, a także kilka sposobów na zapisanie zwracanych informacji.

Przekazywanie parametrów do i z akcji

Tak jak funkcje lub metody w językach programowania akcja może definiować dane wejściowe i wyjściowe parametryTen parametr nie ma związku z Parametryzacja danych testowych omówione wcześniej; parametry tutaj należą do samej akcji, a nie do kolumny tabeli danych. Skonfiguruj je z Edytuj > Akcja > Właściwości akcjilub klikając prawym przyciskiem myszy akcję w widoku słów kluczowych. Przekaż wartości w wywołaniu, używając następującej składni:

' Passes an input value and captures the action's output into myResult
RunAction "Action1", oneIteration, "testuser", myResult

Przechowywanie wartości wyjściowej akcji

W zależności od potrzeb reszty skryptu, wartość zwracaną przez akcję można przechowywać w jednym z trzech miejsc:

  • Zmienna: RunAction "Action1", oneIteration, "testuser", myResult przechowuje dane wyjściowe bezpośrednio w myResult.
  • An zmienna środowiskowa: utwórz zmienną zdefiniowaną przez użytkownika w Plik > Ustawienia > Środowisko, następnie napisz RunAction "Action1", oneIteration, "testuser", Environment("env_var").
  • Kolumna tabeli danych: RunAction "Action1", oneIteration, "testuser", DataTable("A", dtGlobalSheet) zapisuje wynik bezpośrednio do arkusza globalnego.

Arkusze danych globalnych i lokalnych

Akcje odczytują i zapisują dane testowe za pomocą dwóch rodzajów arkuszy. Globalna karta danych jest unikalny dla całego testu; każda akcja może z niego odczytywać lub do niego zapisywać dane i zawsze nosi nazwę „Globalny”. Lokalna karta danych jest unikalny dla każdej akcji, nosi nazwę odpowiadającą tej akcji i tylko jej własna akcja może go odczytać lub zapisać.

Wychodzenie z akcji i kontrolowanie iteracji

Kiedy konieczne jest wcześniejsze zakończenie działania, zamiast pozwolić mu trwać do końca, UFT zawiera cztery oświadczenia:

  • ExitAction — zatrzymuje tylko bieżącą akcję.
  • ExitActionIteration — zatrzymuje bieżącą iterację akcji i przechodzi do następnej.
  • ExitRun — natychmiast zatrzymuje cały przebieg testu.
  • ExitGlobalIteration — zatrzymuje bieżącą globalną iterację testu i przechodzi do następnej.

Podczas wykonywania a UFT/QTP scenariusz Jeśli używasz akcji, pamiętaj o iteracjach globalnych i lokalnych, ponieważ obie wpływają na liczbę powtórzeń akcji. Możesz zmienić częstotliwość powtarzania wywołanej akcji, otwierając Właściwości wywołania akcji > Uruchom i tam ustawić tryb iteracji.

⚠ Typowa pułapka: Wywołana akcja, która ma być uruchamiana w każdej iteracji lokalnej, ale jest wyzwalana przez element nadrzędny, który uruchamia się tylko raz, nadal zostanie wykonana jednokrotnie. Przed założeniem, że wywołana akcja będzie się powtarzać, należy sprawdzić zarówno liczbę iteracji globalnych elementu nadrzędnego, jak i właściwości wywołania akcji elementu podrzędnego.

FAQ

Akcja jest wbudowana UFT funkcja z własnym repozytorium obiektów i tabelą danych, która może być lub nie być wielokrotnego użytku. funkcjonować jest zwykłym językiem VBScript, który można zawsze ponownie wykorzystać i który nie posiada własnego repozytorium obiektów ani tabeli danych.

Tak. Otwórz właściwości akcji i przełącz flagę wielokrotnego użytku w dowolnym momencie. Jeśli oznaczysz akcję, która wcześniej była wielokrotnego użytku, jako nie do ponownego użytku, podczas gdy inne testy nadal ją wywołują, testy wywołujące zakończą się niepowodzeniem i UFT wyświetla ostrzeżenie do momentu usunięcia połączeń.

Akcje są zapisywane wraz z testem w folderach akcji .mtr/.mts, a nie jako samodzielne pliki skryptów. Biblioteki funkcji są natomiast zapisywane jako oddzielne pliki .vbs lub .qfl, które każdy test może skojarzyć i ponownie wykorzystać.

Tak. Narzędzia do projektowania testów wspomagane sztuczną inteligencją mogą skanować zarejestrowany przepływ i sugerować logiczne punkty przerwania, takie jak logowanie, wyszukiwanie i finalizacja zakupu, jako działania kandydatów. Tester powinien jednak potwierdzić, czy podział jest zgodny z rzeczywistymi potrzebami ponownego wykorzystania, zanim go sfinalizuje.

To pomaga. Samonaprawiająca się identyfikacja obiektów ponownie łączy przeniesiony lub przemianowany element sterujący w ramach akcji, zamiast od razu go zepsuć, co zmniejsza obciążenie konserwacyjne akcji wielokrotnego użytku i zewnętrznych współdzielonych przez wiele skryptów. Revobejrzyj uzdrowione przedmioty zanim w pełni im zaufasz.

Podsumuj ten post następująco: