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.

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.
- 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.
- 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.
- 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.
- 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.
