Jak korzystać z funkcji w QTP/UFT w 3 prostych krokach

⚡ Inteligentne podsumowanie

Funkcje w QTP/UFT pozwól testerom pakować wielokrotnego użytku logikę VBScript w pliki bibliotek, które może wywołać dowolny test, co eliminuje duplikację, ułatwia konserwację i przyspiesza rozwój automatyzacji UFT oraz QTP projektów.

  • 📚 Definicja: Biblioteka funkcji to plik .qfl lub .vbs zawierający funkcje VBScript, które można wielokrotnie wykorzystywać. UFT test może zadzwonić.
  • 🛠️. Kreacja: Zbuduj bibliotekę, wybierając Plik > Nowy > Biblioteka funkcji, i napisz w niej standardowe bloki VBScript Function…End Function.
  • 🔗 Stowarzyszenie: Podłącz bibliotekę poprzez Plik > Ustawienia > Zasoby > Powiąż bibliotekę funkcji, aby udostępnić jej funkcje do testu.
  • ▶ ️ Powołanie: Wywołanie funkcji bibliotecznej przez typing jego nazwa z argumentami wewnątrz skryptu testowego, dokładnie tak jak wbudowany UFT komunikat.
  • 🗂️. Formaty plików: Wybierz .qfl jako natywny UFT edytor lub .vbs w przypadku zwykłego pliku tekstowego, który można odczytać w dowolnym miejscu, łącznie z kontrolą wersji.
  • ⚙️ Ładowanie w czasie wykonywania: Aby dołączyć bibliotekę programowo, zamiast korzystać z okna dialogowego Zasoby, użyj LoadFunctionLibrary lub ExecuteFile.
  • 🧭 Dyscyplina nazewnictwa: Nadaj każdej funkcji unikalną nazwę we wszystkich powiązanych bibliotekach, ponieważ UFT wykonuje ostatnio załadowaną definicję, gdy nazwy się kolidują.
  • 📊 Raportowanie: Zastąp wiadomośćBox wywołuje Reporter.ReportEvent, dzięki czemu statusy „pass”, „fail” i „ostrzeżenie” pojawiają się bezpośrednio w UFT drzewo wyników.

Jeśli masz segmenty kodu, które musisz użyć wielokrotnie w testach, możesz utworzyć funkcję zdefiniowaną przez użytkownika. Dzięki temu testy są krótsze oraz łatwiejsze w projektowaniu, odczytywaniu i utrzymaniu.

Twoje własne biblioteki funkcji w Micro Focus UFT może zawierać VBScript funkcje, podprogramy, moduły itp.

Aby użyć funkcji z biblioteki w teście, musisz wykonać tylko 3 proste kroki.

Biblioteka funkcji różni się od akcja in UFT:funkcja nie ma własnego repozytorium obiektów ani arkusza danych, ale każda akcja lub test może ją wywołać po skojarzeniu biblioteki.

Kopiowanie i wklejanie tych samych kroków do każdej akcji zwielokrotnia nakład pracy konserwacyjnej, ponieważ pojedyncza zmiana musi być powtarzana w każdej kopii. Biblioteka funkcji rozwiązuje ten problem, centralizując tę ​​logikę w jednym miejscu, do którego może zostać wywołana dowolna akcja lub test w projekcie.

3 proste kroki do użycia funkcji z biblioteki w UFT/QTP

Krok 1) Utwórz nową bibliotekę funkcji w UFT or QTP wybierając Plik > Nowy > Biblioteka funkcji. Otworzy się jako nowa karta w QTP.

Utwórzmy bardzo prostą funkcję wyświetlającą okno komunikatu.

Function Demo

MsgBox "This is a Test Function"

End Function

Za każdym razem, gdy ta funkcja jest wywoływana, pojawia się okno komunikatu. Pojedynczy plik może zawierać wiele funkcji, dlatego zapisz plik raz i używaj go ponownie w wielu testach. UFT zapisuje bibliotekę funkcji z .qfl rozszerzenie domyślnie, choć proste vbs Plik również działa, jak wyjaśniono w następnej sekcji.

Krok 2) Powiąż bibliotekę z testem. Otwórz Plik > Ustawienia > Zasoby > Powiąż bibliotekę funkcji i kliknij Dodaj, wybierz plik biblioteki funkcji i kliknij OK.

Krok 3) Ostatnim krokiem jest wywołanie funkcji w skrypcie testowym. Po powiązaniu biblioteki wywołanie funkcji jest tak proste, jak…ping jego nazwę i przekazując wszelkie wymagane argumenty, jak pokazano poniżej.

' Call the function from the associated library
Demo()

UFT lokalizuje Demo w powiązanej bibliotece i uruchamia ją dokładnie tak, jakby była napisana lokalnie w teście.

Ważne uwagi

  • Używając obiektów COM i DCOM można tworzyć bardzo zaawansowane funkcje
  • W rzeczywistości wiele funkcji zapewnianych przez QTP można zakodować za pomocą VBScript
  • Widzieliśmy inżynierów automatyków, którzy czynili z tego bardziej projekt VB niż projekt automatyzacji
  • Naszym zaleceniem jest skupienie się na 100% automatyzacji, zamiast popisywać się swoimi umiejętnościami VB

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

Typy plików biblioteki funkcji: .qfl vs. .vbs

UFT nie wymusza stosowania pojedynczego formatu pliku dla biblioteki funkcji. Edytor biblioteki funkcji zapisuje nowe pliki z .qfl rozszerzenie domyślnie i UFT akceptuje również tekst jawny vbs plik utworzony w dowolnym edytorze kodu, ponieważ QTP/UFT Biblioteka funkcji to nic innego jak zwykły kod VBScript zapisany na dysku; oba formaty zachowują się identycznie w czasie wykonywania.

ASPEKT PLIK .QFL PLIK .VBS
Stworzony z UFT Edytor biblioteki funkcji Dowolny edytor tekstu lub kodu
Otwiera się na zewnątrz UFT Nie Tak, jako zwykły tekst
Przyjazność kontroli wersji Ograniczony Lepiej, bo różnice są czytelne
Metoda asocjacyjna To samo dla obu To samo dla obu

Wybór sprowadza się głównie do przepływu pracy zespołowej, a nie funkcjonalności. Jednorazowa biblioteka, którą szybko zbudujesz w UFT działa dobrze jako .qflpodczas gdy biblioteki utrzymywane w Git, SVN lub innym systemie kontroli wersji są zwykle przechowywane jako vbs pliki, ponieważ zwykły tekst generuje znacznie bardziej czytelne różnice podczas przeglądu kodu. Oba formaty obsługują pełen zestaw funkcji języka VBScript, w tym klasy, obsługę błędów i tworzenie obiektów COM, i oba są powiązane z testem dokładnie w ten sam sposób, co wyjaśniono w następnej sekcji.

Zmiana rozszerzenia pliku nie zmienia jego zawartości, więc konwersja istniejącego pliku .qfl złożyć do vbslub odwrotnie, jest po prostu zmianą nazwy pliku, a następnie ponownym skojarzeniem zmienionej nazwy pliku z testem.

Sposoby skojarzenia biblioteki funkcji z testem

W kroku 2 powyżej użyto okna dialogowego Zasoby, ale UFT W rzeczywistości oferuje kilka sposobów powiązania biblioteki funkcji z testem, a wybór właściwego zależy od tego, czy powiązanie powinno być trwałe, czy też obowiązywać tylko podczas jednego uruchomienia. Test może mieć jednocześnie powiązanych więcej niż jedną bibliotekę, a UFT ładuje je w kolejności, w jakiej pojawiają się na liście zasobów.

  1. Dialog biblioteki funkcji skojarzonych (GUI): Otwórz Plik > Ustawienia > Zasoby > Biblioteka funkcji skojarzonych, kliknij Dodaj i wybierz plik. UFT Przechowuje to skojarzenie w samym teście, dzięki czemu biblioteka ładuje się automatycznie przy każdym uruchomieniu testu. Ta metoda została pokazana w kroku 2 powyżej i dobrze sprawdza się jako domyślny wybór dla każdej biblioteki potrzebnej w każdym teście w projekcie.
  2. Instrukcja LoadFunctionLibrary: Wywołaj LoadFunctionLibrary „path” z poziomu skryptu, aby dołączyć bibliotekę w czasie wykonywania bez konieczności dotykania okna dialogowego Zasoby. UFT traktuje bibliotekę dokładnie tak, jak skojarzenie oparte na dialogu przez resztę przebiegu, co jest wygodne, gdy ścieżka dostępu do biblioteki jest ustalana dynamicznie.
  3. Polecenie ExecuteFile: ExecuteFile „ścieżka” uruchamia plik skryptu i udostępnia jego funkcje bieżącemu uruchomieniu, ale UFT nie rejestruje pliku jako traczasób ked, więc nigdy nie pojawia się w bibliotekach powiązanych funkcji w ustawieniach testu.
  4. Model obiektowy automatyzacji (AOM): Można uruchomić zewnętrzny plik VBScript UFT, otwórz test i dodaj bibliotekę do Test.Settings.Resources.Libraries programowo. Skrypty kompilacji lub wdrażania często wykorzystują to podejście do konfigurowania tej samej biblioteki w dziesiątkach testów w jednym przebiegu.
' Load a library at run time from inside a script
LoadFunctionLibrary "C:\Automation\CommonFunctions.qfl"

' ExecuteFile works the same way, but UFT does not
' track the file as an associated resource
ExecuteFile "C:\Automation\CommonFunctions.qfl"

Bez względu na wybraną metodę bibliotekę wystarczy skojarzyć tylko raz dla każdego testu w przypadku metod GUI i AOM, natomiast LoadFunctionLibrary i ExecuteFile muszą być uruchamiane ponownie po każdym wykonaniu skryptu, ponieważ są to zwykłe polecenia VBScript, a nie zapisane ustawienia.

Jeśli biblioteka nie jest już potrzebna, usuń ją z listy zasobów, zamiast pozostawiać ją powiązaną, ponieważ nieużywana biblioteka może nadal przysłaniać funkcję o tej samej nazwie, którą później dodasz do innej biblioteki.

Najlepsze praktyki pisania UFT/QTP Biblioteki funkcji

Biblioteka funkcji opłaca się tylko wtedy, gdy cały zespół może jej zaufać i ją utrzymywać. Poniższe nawyki zapewniają niezawodność biblioteki w miarę jej rozwoju.

  • Użyj opcji jawnej: Dodaj to jako pierwszy wiersz każdej biblioteki, więc UFT oznacza błędnie napisaną zmienną zamiast po cichu tworzyć nową.
  • Zachowaj unikalne nazwy funkcji: Jeżeli dwie powiązane biblioteki definiują funkcję o tej samej nazwie, UFT wywołuje to, które zostało załadowane jako ostatnie, więc powtarzające się nazwy powodują ciche, trudne dotraci robaków.
  • Zwracaj wartości zamiast kodowania ich na stałe: Akceptuj parametry i zwracaj wynik, jak w poniższym przykładzie, dzięki czemu ta sama funkcja obsługuje wiele testów zamiast jednego.
  • Unikaj wiadomościBox w scenariuszach produkcyjnych: Okno komunikatu wstrzymuje wykonywanie do momentu kliknięcia przycisku OK. Użyj Reporter.ReportEvent zamiast tego statusy zaliczone, niezaliczone i ostrzegawcze są rejestrowane bezpośrednio w drzewie wyników bez zatrzymywaniaping bieg.
  • Grupuj według domeny, a nie według wygody: Przechowuj funkcje logowania, funkcje bazy danych i funkcje pomocnicze interfejsu użytkownika w oddzielnych plikach, aby każdy test mógł skojarzyć tylko to, czego faktycznie potrzebuje.
  • Utrzymuj biblioteki pod kontrolą wersji: Przechowuj pliki bibliotek funkcji w tym samym repozytorium, w którym znajduje się reszta projektu automatyzacji, aby wycofanie projektu spowodowało również usunięcie wszystkich współdzielonych funkcji.
Function AddNumbers(ByVal num1, ByVal num2)
    AddNumbers = num1 + num2
End Function

Dim result
result = AddNumbers(10, 20)
Reporter.ReportEvent micPass, "Sum Calculation", "The result is " & result

Wczesne wdrożenie tych nawyków kosztuje niewiele, ale późniejsze dostosowanie ich do dużej, niezarządzanej biblioteki jest o wiele droższe.

FAQ

Funkcja może zwrócić wartość do wywołującego, a obiekt podrzędny nie. Użyj funkcji, gdy skrypt potrzebuje wyniku, takiego jak obliczona wartość lub flaga zaliczenia/niezaliczenia, a obiektu podrzędnego do wykonania samodzielnej akcji, takiej jak kliknięcie przycisku.

UFT Nie zgłasza błędu. Po cichu wywołuje ostatnią załadowaną definicję, w oparciu o kolejność bibliotek pojawiających się w ustawieniach zasobów, więc identyczne nazwy w dwóch bibliotekach mogą powodować mylące, trudne do zrozumienia…tracwyniki.

Tak. Gdy obie biblioteki zostaną powiązane z tym samym testem, UFT ładuje wszystkie swoje funkcje do pojedynczej współdzielonej przestrzeni nazw, dzięki czemu każda funkcja w jednej bibliotece może wywołać funkcję zdefiniowaną w innej.

Tak. Asystenci AI mogą tworzyć funkcje VBScript na podstawie opisu wymaganych kroków w języku potocznym, jednak tester powinien mimo wszystko sprawdzić wygenerowany kod pod kątem poprawnych odwołań do obiektów i obsługi błędów przed jego użyciem.

Narzędzia AI potrafią tłumaczyć logikę języka VBScript na języki takie jak Python or Java jako szkic początkowy, ale inżynier ds. zapewnienia jakości musi zweryfikować identyfikację obiektu i logikę biznesową, ponieważ automatyczne tłumaczenie rzadko zachowuje oba te elementy w idealnym stanie.

Podsumuj ten post następująco: