ΑΝ, Αλλιώς, Τέλος ΑΝ, Υπάρχει σε QTP/UFT με Παράδειγμα
⚡ Έξυπνη Σύνοψη
ΑΝ Αλλιώς Τέλος Οι δηλώσεις If let UFT και QTP Τα σενάρια διακλαδώνονται με βάση τις συνθήκες εκτέλεσης, ενώ η ιδιότητα Exist ελέγχει εάν ένα αντικείμενο εμφανίζεται στην οθόνη πριν από την εκτέλεση του κλάδου, καλύπτοντας επίσης τα ElseIf, τα ένθετα If και Select Case.

Τι είναι η δήλωση IF Else σε UFT/QTP?
Η πρόταση IF Else είναι η πιο κοινή δομή ελέγχου υπό όρους στην VBScript, τη γλώσσα scripting που χρησιμοποιείται για τη σύνταξη UFT/QTP σενάρια αυτοματισμού. Επιτρέπει σε ένα σενάριο να λάβει μια απόφαση κατά τον χρόνο εκτέλεσης: όταν μια συνθήκη αξιολογείται σε True, εκτελείται ένα μπλοκ δηλώσεων και όταν αξιολογείται σε False, εκτελείται ένα διαφορετικό μπλοκ. Οι δοκιμαστές βασίζονται σε αυτήν την κατασκευή συνεχώς, για παράδειγμα για να διακλαδώσουν ένα σενάριο όταν μια σύνδεση είναι επιτυχής έναντι όταν αποτυγχάνει ή όταν ένα αντικείμενο μπορεί να εμφανιστεί ή να μην εμφανιστεί στην οθόνη. Για την πλήρη λίστα των δηλώσεων υπό όρους και των τελεστών σύγκρισης που υποστηρίζει το VBScript, ανατρέξτε στο Δήλωση υπό όρους VBScript οδηγός.
Η βασική μορφή συνδυάζει το If…Then με ένα προαιρετικό μπλοκ Else και κλείνει πάντα με End If. UFT/QTP αξιολογεί τη συνθήκη μία φορά. Εάν είναι True (Αληθές), εκτελούνται μόνο οι εντολές μεταξύ Then (Τότε) και Else (Διαφορετικό). Εάν είναι False (Ψευδές), εκτελούνται μόνο οι εντολές μεταξύ Else (Διαφορετικό) και End If (Τέλος) και εκτελείται μόνο ένας κλάδος. Η παρακάτω σύνταξη ελέγχει μια αριθμητική τιμή και εμφανίζει ένα διαφορετικό πλαίσιο μηνύματος για κάθε αποτέλεσμα.
Dim iValue iValue = 25 If iValue > 18 Then MsgBox "Eligible" Else MsgBox "Not Eligible" End If
In UFT/QTP, η συνθήκη σχεδόν πάντα συγκρίνει μια ιδιότητα αντικειμένου, ένα αποτέλεσμα σημείου ελέγχου ή την τιμή επιστροφής της ιδιότητας Exist αντί για έναν απλό αριθμό, καθώς τα περισσότερα σενάρια επικυρώνουν μια εφαρμογή υπό δοκιμή αντί να κάνουν αριθμητικές πράξεις. Κάθε παράδειγμα παρακάτω σε αυτήν τη σελίδα βασίζεται στο ίδιο μοτίβο If…Then…Else…End If που φαίνεται παραπάνω. Αλλάζει μόνο η συνθήκη. Όποια συνθήκη και αν χρησιμοποιήσετε, δοκιμάστε πάντα και τις δύο διαδρομές True και False τουλάχιστον μία φορά πριν μετακινήσετε το σενάριο σε μια σουίτα παλινδρόμησης.
ΑΝ…Τότε…ΑλλιώςΑν…Δήλωση Αλλιώς στο UFT/QTP
Ένα απλό If Else επιλέγει μόνο μεταξύ δύο αποτελεσμάτων. Όταν ένα σενάριο χρειάζεται να ελέγξει τρεις ή περισσότερες αμοιβαία αποκλειόμενες συνθήκες, η VBScript προσθέτει το ElseIf στο ίδιο μπλοκ. UFT/QTP ελέγχει κάθε συνθήκη από πάνω προς τα κάτω και εκτελεί το πρώτο μπλοκ του οποίου η συνθήκη είναι True. Κάθε άλλο μπλοκ, συμπεριλαμβανομένου του Else που ακολουθεί, παραλείπεται. Αυτό διατηρεί ένα σενάριο πολύ πιο ευανάγνωστο από την ένθεση αρκετών άσχετων μπλοκ If το ένα μέσα στο άλλο.
- Οι συνθήκες αξιολογούνται από πάνω προς τα κάτω και η αξιολόγηση σταματά στην πρώτη συνθήκη που είναι True.
- Κάθε λέξη-κλειδί ElseIf χρειάζεται τη δική της Then και τη δική της συνθήκη.
- Το Else που ακολουθεί είναι προαιρετικό και εκτελείται μόνο όταν δεν ταιριάζει καμία από τις παραπάνω συνθήκες.
- Μόνο μία συνάρτηση End If κλείνει ολόκληρο το μπλοκ, ανεξάρτητα από το πόσα κλαδιά ElseIf περιέχει.
Dim iMarks iMarks = 75 If iMarks >= 90 Then MsgBox "Grade A" ElseIf iMarks >= 75 Then MsgBox "Grade B" ElseIf iMarks >= 50 Then MsgBox "Grade C" Else MsgBox "Fail" End If
Το παραπάνω σενάριο εκτυπώνει διαφορετικό βαθμό για κάθε εύρος βαθμολόγησης και σταματά τον έλεγχο περαιτέρω συνθηκών τη στιγμή που ένας κλάδος αξιολογείται σε True, γεγονός που διατηρεί τα μεγάλα δέντρα αποφάσεων αποτελεσματικά ακόμη και σε μια μακρά εκτέλεση αυτοματισμού.
Το ίδιο μοτίβο ισχύει άμεσα για τους ελέγχους UI: ένα σενάριο μπορεί να διαβάσει την τιμή ενός πεδίου κατάστασης και να χρησιμοποιήσει το ElseIf για να δρομολογήσει σε χειρισμό pass, warning ή fail ανάλογα με το κείμενο που βρίσκει, αντί για τρία ξεχωριστά μπλοκ If που το καθένα επαναξιολογεί το πεδίο ανεξάρτητα.
Ένθετη Δήλωση If σε UFT/QTP
Ένα ένθετο If τοποθετεί ένα πλήρες μπλοκ If…End If μέσα στην ενότητα Then ή Else ενός άλλου μπλοκ If. UFT/QTP Επιλύει πρώτα την εξωτερική συνθήκη και αξιολογεί την εσωτερική If μόνο όταν εισάγεται σε αυτόν τον εξωτερικό κλάδο. Αυτό το μοτίβο ταιριάζει σε ελέγχους που εξαρτώνται ο ένας από τον άλλον, όπως η επιβεβαίωση ότι ένας χρήστης είναι αρκετά μεγάλος για να ψηφίσει και στη συνέχεια η διακλάδωση ξανά με βάση το φύλο, αντί να συνδυάζει κάθε συνθήκη σε μία μεγάλη έκφραση με And και Or. Διατηρήστε την ένθεση ρηχή, γενικά όχι περισσότερο από δύο ή τρία επίπεδα, επειδή κάθε επιπλέον επίπεδο καθιστά ένα σενάριο πιο δύσκολο να trace και εντοπισμός σφαλμάτων. Στο UFT/QTP όροι, ένα ένθετο If ελέγχει συνήθως πρώτα το λειτουργικό σύστημα και στη συνέχεια διακλαδίζεται ξανά στην κατάσταση του προγράμματος περιήγησης ή της εφαρμογής, επομένως το εσωτερικό μπλοκ εκτελείται μόνο αφού επιβεβαιωθεί το εξωτερικό περιβάλλον.
💡 Συμβουλές: Προσθέστε εσοχή σε κάθε ένθετο μπλοκ κατά ένα επιπλέον επίπεδο και δώστε σε κάθε End If τη δική του γραμμή. Η συνεπής εσοχή είναι ο γρηγορότερος τρόπος για να εντοπίσετε ένα End If που λείπει πριν το σενάριο αποτύχει κατά τον χρόνο εκτέλεσης.
Dim iAge, sGender iAge = 20 sGender = "Male" If iAge >= 18 Then If sGender = "Male" Then MsgBox "Eligible male voter" Else MsgBox "Eligible female voter" End If Else MsgBox "Not eligible to vote" End If
Επιλέξτε Δήλωση Περίπτωσης σε UFT/QTP
Η επιλογή περίπτωσης (Select Case) είναι μια εναλλακτική λύση σε μια μακρά αλυσίδα ElseIf όπου κάθε κλάδος δοκιμάζει την ίδια μεμονωμένη μεταβλητή έναντι μιας διαφορετικής σταθερής τιμής. UFT/QTP αξιολογεί την έκφραση στη γραμμή Select Case μία φορά, στη συνέχεια τη συγκρίνει με κάθε τιμή Case με τη σειρά και εκτελεί το πρώτο μπλοκ που ταιριάζει. Ένα προαιρετικό Case Else συλλαμβάνει οποιαδήποτε τιμή που δεν καλύπτεται από καμία από τις αναφερόμενες περιπτώσεις, παρόμοιο με το Else που ακολουθεί σε ένα μπλοκ If. Επειδή η μεταβλητή σύγκρισης γράφεται μόνο μία φορά, ένα μεγάλο μπλοκ Select Case είναι επίσης πιο εύκολο να ενημερωθεί αργότερα από μια ισοδύναμη αλυσίδα δηλώσεων ElseIf που επαναλαμβάνει το ίδιο όνομα μεταβλητής σε κάθε κλάδο.
Οι τιμές πεζών-κεφαλαίων συγκρίνονται χρησιμοποιώντας την ισότητα και κάνουν διάκριση πεζών-κεφαλαίων, επομένως οι λέξεις "Chrome" και "chrome" μετράνε ως διαφορετικές αντιστοιχίσεις, εκτός εάν η τιμή κανονικοποιηθεί πρώτα, για παράδειγμα με τη συνάρτηση LCase. Δείτε το Δήλωση μεταβλητής VBScript Οδηγός για το πώς το Dim και οι τύποι δεδομένων επηρεάζουν αυτές τις συγκρίσεις.
Dim sBrowserName sBrowserName = "Chrome" Select Case sBrowserName Case "Chrome" MsgBox "Launching Chrome" Case "Firefox" MsgBox "Launching Firefox" Case "Edge" MsgBox "Launching Edge" Case Else MsgBox "Browser not supported" End Select
| ΔΉΛΩΣΗ | καλύτερη ΓΙΑ | ΑΡΙΘΜΟΣ ΚΑΤΑΣΤΑΣΕΩΝ | ΑΝΑΓΝΩΣΙΜΟΤΗΤΑ ΣΕ ΚΛΙΜΑΚΑ |
|---|---|---|---|
| Αν… Αλλιώς | Δύο αποτελέσματα | 1 συνθήκη | Ψηλά |
| Αν…ΑλλιώςΑν…Αλλιώς | Αρκετές άσχετες καταστάσεις | 3 ή περισσότερες συνθήκες | Πέφτει καθώς τα κλαδιά μεγαλώνουν |
| Επιλέξτε Περίπτωση | Πολλές σταθερές τιμές μιας μεταβλητής | Οποιοσδηποτε ΑΡΙΘΜΟΣ | Παραμένει ψηλά |
Η περίπτωση μπορεί επίσης να αντιστοιχιστεί σε ένα εύρος χρησιμοποιώντας τη λέξη-κλειδί Is, για παράδειγμα η περίπτωση Is > 90 μέσα σε ένα μπλοκ Select Case, το οποίο επιτρέπει σε μια μεμονωμένη περίπτωση να καλύπτει κάθε τιμή πάνω από ένα όριο αντί να παραθέτει την καθεμία ξεχωριστά.
Επιλέξτε Επιλογή Περίπτωσης κάθε φορά που ένα σενάριο ελέγχει μια μεταβλητή σε σχέση με πολλές πιθανές τιμές. Διατηρήστε την επιλογή Αν…ΕλεύθεραΑν για συνθήκες που συγκρίνουν διαφορετικές μεταβλητές ή χρησιμοποιούν εύρη και λογικούς τελεστές.
Πώς να χρησιμοποιήσετε τη συνάρτηση IF Else με την ιδιότητα Exist στο UFT
Πατήστε εδώ εάν το βίντεο δεν είναι προσβάσιμο
Η ιδιότητα Exist επιστρέφει True ή False ανάλογα με το αν ένα αντικείμενο υπάρχει αυτήν τη στιγμή στην εφαρμογή που ελέγχεται, γεγονός που την καθιστά φυσική συνθήκη για σύζευξη με το If Else. Το παρακάτω παράδειγμα επανεξετάζει το κλασικό σενάριο Λειτουργικότητας Σύνδεσης για το Κράτηση πτήσης αίτηση από το Δοκιμές σειρά, όπου ένα σενάριο πρέπει να διακλαδίζεται σε μια διαδρομή αρνητικού σεναρίου όταν εμφανίζεται ένα παράθυρο διαλόγου σφάλματος ή σε μια διαδρομή θετικού σεναρίου όταν δεν εμφανίζεται. Αυτό αντικατοπτρίζει την ακριβή Σενάριο δοκιμής που καλύπτεται στο παραπάνω βίντεο.
- Καταγράψτε δύο ξεχωριστά σενάρια: ένα που συνδέεται με έναν έγκυρο συνδυασμό ονόματος παράγοντα και κωδικού πρόσβασης και ένα που συνδέεται με έναν μη έγκυρο συνδυασμό.
- Εισαγάγετε ένα βήμα If Else αμέσως μετά το βήμα σύνδεσης, ώστε και οι δύο εγγραφές να μπορούν να εκτελεστούν μέσα σε ένα ενιαίο συνδυασμένο σενάριο.
- Ορίστε τη συνθήκη για να ελέγξετε εάν υπάρχει το παράθυρο Πληροφορίες σφάλματος, χρησιμοποιώντας το Υπάρχει ιδιότητα αντί για βήμα κλικ.
- Μετακινήστε τα βήματα του αρνητικού σεναρίου, όπως το κλείσιμο του παραθύρου σφάλματος και του παραθύρου διαλόγου σύνδεσης, μέσα στο μπλοκ If.
- Μετακινήστε τα βήματα θετικού σεναρίου, όπως το κλείσιμο του παραθύρου Κράτηση Πτήσης, μέσα στο μπλοκ Else.
- Αποθηκεύστε το συνδυασμένο σενάριο και εκτελέστε το σε ένα έγκυρο και ένα μη έγκυρο σύνολο πιστοποιήσεων για να επιβεβαιώσετε ότι κάθε διαδρομή εκτελείται σωστά.
Dim bLoginFailed bLoginFailed = Browser("Flight Reservation").Page("Flight Reservation").WinObject("Error").Exist(5) If bLoginFailed Then 'Negative scenario - invalid login Browser("Flight Reservation").Page("Flight Reservation").WinObject("Error").Close Dialog("Login").Close Else 'Positive scenario - valid login Window("Flight Reservation").Close End If
Εκτός από τα If και Else, η VBScript υποστηρίζει επίσης τα While…Wend και Για… Επόμενους βρόχους για επανάληψη, καθώς και τις εντολές ElseIf και Select Case που καλύφθηκαν παραπάνω για επιπλέον κλάδους. Ο συνδυασμός αυτών των δομών με την ιδιότητα Exist είναι αυτό που επιτρέπει σε ένα μόνο UFT/QTP Το σενάριο χειρίζεται τόσο ένα θετικό όσο και ένα αρνητικό σενάριο δοκιμής χωρίς χειροκίνητη παρέμβαση.
⚠ Σημείωση: Η μεταβίβαση μιας μεγαλύτερης τιμής στο Exist, όπως το Exist(10), δημιουργεί UFT Περιμένετε περισσότερο χρόνο για ένα αντικείμενο πριν επιστρέψετε την τιμή False, η οποία είναι χρήσιμη για διαλόγους αργής φόρτωσης, αλλά μπορεί να επιβραδύνει ολόκληρη τη σουίτα εάν χρησιμοποιηθεί σε κάθε βήμα. Κρατήστε τις μεγάλες αναμονές για πραγματικά αργά αντικείμενα. Ένα σύντομο, καλά επιλεγμένο χρονικό όριο διατηρεί το συνδυασμένο σενάριο θετικού και αρνητικού σεναρίου αξιόπιστο και γρήγορο για εκτέλεση σε συνεχείς δοκιμαστικές εκτελέσεις.
