Eğer, aksi halde, eğer sonu, mevcutsa QTP/UFT Örnek ile

⚡ Akıllı Özet

IF Else End If ifadeleri izin verir UFT hem de QTP Komut dosyaları çalışma zamanı koşullarına bağlı olarak dallanır; Exist özelliği ise dallanma yürütülmeden önce bir nesnenin ekranda görünüp görünmediğini kontrol eder ve ElseIf, iç içe If ve Select Case yapılarını da kapsar.

  • 🔀 Temel sözdizimi: Eğer…O zaman yapısı, isteğe bağlı bir aksi halde bloğuyla eşleşir ve eğer sonlanırsa, her değerlendirmede tam olarak bir dal çalıştırır.
  • 🧮 Birden fazla koşul: ElseIf, koşulları yukarıdan aşağıya doğru kontrol eder ve ilk doğru eşleşmede durur; böylece uzun ayrı If blokları zincirinin yerini alır.
  • 🪆 İç içe mantık: Bir "If" ifadesini başka bir "Then" veya "Else" bölümünün içine yerleştirmek, bağımlı kontrolleri ele alır; okunabilirliği artırmak için iç içe geçmeyi iki veya üç seviyeyle sınırlı tutun.
  • 🎯 Büyük/küçük harf seçimi: Bir değişkeni birden fazla sabit değerle karşılaştırır ve uzun bir ElseIf zincirinden daha anlaşılır bir şekilde okunur.
  • 🔍 Mevcut özellik: Nesnenin ekranda olup olmadığını belirten True veya False değerini döndürür; bu, If Else dallanmasının standart koşuludur.
  • 🧪 Uygulama örneği: If Else yapısını Exist ile birleştirerek, bir komut dosyasını otomatik olarak olumsuz veya olumlu bir Uçuş Rezervasyonu giriş yoluna yönlendirebilirsiniz.
  • 🤖 Yapay zeka yardımı: Yapay zeka araçları, hata ayıklama sırasında If Else ve Select Case bloklarını oluşturabilir ve eksik End If ifadelerini işaretleyebilir.

IF-ELSE ifadesi nedir? UFT/QTP?

IF-Else ifadesi, kod yazmak için kullanılan VBScript betik dilinde en yaygın koşullu kontrol yapısıdır. UFT/QTP Otomasyon komut dosyaları. Bir komut dosyasının çalışma zamanında karar vermesini sağlar: bir koşul Doğru olarak değerlendirildiğinde, bir ifade bloğu çalışır ve Yanlış olarak değerlendirildiğinde, bunun yerine farklı bir blok çalışır. Test uzmanları, örneğin bir oturum açma işlemi başarılı olduğunda veya başarısız olduğunda ya da bir nesnenin ekranda görünüp görünmeyeceğine karar verirken komut dosyasını dallandırmak için bu yapıya sürekli olarak güvenirler. VBScript'in desteklediği koşullu ifadelerin ve karşılaştırma operatörlerinin tam listesi için bkz. VBScript Koşullu İfade Kılavuz.

Temel yapı, If…Then yapısını isteğe bağlı bir Else bloğuyla eşleştirir ve her zaman End If ile sona erer. UFT/QTP Koşulu bir kez değerlendirir. Eğer doğruysa, yalnızca "Then" ve "Else" arasındaki ifadeler çalışır; yanlışsa, yalnızca "Else" ve "End If" arasındaki ifadeler çalışır ve yalnızca bir dal yürütülür. Aşağıdaki sözdizimi sayısal bir değeri kontrol eder ve her sonuç için farklı bir mesaj kutusu görüntüler.

Dim iValue
iValue = 25
If iValue > 18 Then
    MsgBox "Eligible"
Else
    MsgBox "Not Eligible"
End If

In UFT/QTPKoşul neredeyse her zaman düz bir sayı yerine bir nesne özelliğini, bir kontrol noktası sonucunu veya Exist özelliğinin dönüş değerini karşılaştırır, çünkü çoğu betik aritmetik işlemler yapmak yerine test edilen bir uygulamayı doğrular. Bu sayfanın aşağısındaki her örnek, yukarıda gösterilen aynı If…Then…Else…End If kalıbına dayanır; yalnızca koşul değişir. Hangi koşulu kullanırsanız kullanın, betiği bir regresyon test paketine taşımadan önce her zaman hem True hem de False yollarını en az bir kez test edin.

Eğer…O zaman…aksi halde eğer…aksi halde ifadesi UFT/QTP

Basit bir If Else yapısı yalnızca iki sonuç arasında seçim yapar. Bir betiğin üç veya daha fazla karşılıklı olarak dışlayıcı koşulu test etmesi gerektiğinde, VBScript aynı bloğa ElseIf yapısını ekler. UFT/QTP Her koşulu yukarıdan aşağıya doğru kontrol eder ve koşulu doğru olan ilk bloğu çalıştırır; sondaki Else bloğu da dahil olmak üzere diğer tüm bloklar atlanır. Bu, birbiriyle ilgisiz birkaç If bloğunu iç içe yerleştirmekten çok daha okunabilir bir komut dosyası sağlar.

  • Koşullar yukarıdan aşağıya doğru değerlendirilir ve değerlendirme, doğru olan ilk koşulda durur.
  • Her ElseIf anahtar kelimesinin kendine ait bir Then ve bir koşulu olmalıdır.
  • Sondaki "Else" ifadesi isteğe bağlıdır ve yalnızca yukarıdaki koşullardan hiçbiri karşılanmadığında çalışır.
  • Blokun tamamını kapatan yalnızca bir End If ifadesidir; içinde kaç tane ElseIf dalı olursa olsun fark etmez.
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

Yukarıdaki komut dosyası, her puan aralığı için farklı bir not yazdırır ve bir dalın True olarak değerlendirildiği anda daha fazla koşulu kontrol etmeyi durdurur; bu da büyük karar ağaçlarının uzun bir otomasyon çalışması içinde bile verimli kalmasını sağlar.

Aynı model doğrudan kullanıcı arayüzü kontrolleri için de geçerlidir: bir komut dosyası, bir durum alanının değerini okuyabilir ve her biri alanı bağımsız olarak yeniden değerlendiren üç ayrı If bloğu yerine, bulduğu metne bağlı olarak geçme, uyarı veya başarısızlık işleme yönlendirmesi için ElseIf kullanabilir.

İç içe if ifadesi UFT/QTP

İç içe geçmiş bir If yapısı, bir If…End If bloğunu başka bir If bloğunun Then veya Else bölümünün içine yerleştirir. UFT/QTP Önce dış koşulu çözer ve yalnızca dış dal girildiğinde içteki If koşulunu değerlendirir. Bu model, her koşulu And ve Or ile tek bir uzun ifadeye birleştirmek yerine, kullanıcının oy kullanacak yaşta olduğunu doğrulamak ve ardından cinsiyete göre tekrar dallanmak gibi birbirine bağlı kontroller için uygundur. İç içe geçmeyi sığ tutun, genellikle iki veya üç seviyeden fazla olmasın, çünkü her ekstra katman bir betiği daha zor hale getirir. trace ve hata ayıklama. İçinde UFT/QTP Genellikle iç içe geçmiş bir If yapısı önce işletim sistemini kontrol eder ve ardından tarayıcı veya uygulama durumuna göre tekrar dallanır; bu nedenle iç blok yalnızca dış bağlam onaylandıktan sonra çalışır.

💡 İpucu: Her iç içe geçmiş bloğu bir satır girintileyin ve her "End If" ifadesini kendi satırına yerleştirin. Tutarlı girintileme, komut dosyasının çalışma zamanında başarısız olmadan önce eksik bir "End If" ifadesini yakalamanın en hızlı yoludur.

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

Seçim ifadesinde UFT/QTP

Her dalda aynı tek değişkenin farklı bir sabit değere karşı test edildiği durumlarda, Select Case uzun bir ElseIf zincirine alternatif bir yapıdır. UFT/QTP `Select Case` satırındaki ifadeyi bir kez değerlendirir, ardından sırayla her bir `Case` değeriyle karşılaştırır ve eşleşen ilk bloğu çalıştırır. İsteğe bağlı `Case Else`, listelenen durumların hiçbirinin kapsamadığı herhangi bir değeri yakalar; bu, `If` bloğundaki sondaki `Else`'e benzer. Karşılaştırma değişkeni yalnızca bir kez yazıldığından, uzun bir `Select Case` bloğu, her dalda aynı değişken adını tekrarlayan eşdeğer bir `ElseIf` ifadesi zincirine göre daha sonra güncellenmesi daha kolaydır.

Büyük/küçük harf değerleri eşitlik kullanılarak karşılaştırılır ve büyük/küçük harfe duyarlıdır; bu nedenle, değer önce normalleştirilmediği sürece (örneğin LCase fonksiyonu ile), "Chrome" ve "chrome" farklı eşleşmeler olarak sayılır. Bkz. VBScript Değişken Bildirimi Dim ve veri tiplerinin bu karşılaştırmaları nasıl etkilediğine dair kılavuz.

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
TABLOSU İÇİN EN İYİSİ KOŞULLARIN SAYISI BÜYÜK ÖLÇEKTE OKUNABİLİRLİK
Eğer…Aksi takdirde İki sonuç 1 koşul Yüksek
Eğer…Aksi takdirdeEğer…Aksi takdirde Birbirinden bağımsız çeşitli durumlar 3 veya daha fazla koşul Dalların büyümesiyle birlikte damlalar
Vaka Seç bir değişkenin birçok sabit değeri Herhangi bir numara Yüksek kalır

Case ifadesi, Is anahtar kelimesini kullanarak bir aralığı da eşleştirebilir; örneğin, Select Case bloğu içinde Case Is > 90 ifadesi, her bir değeri ayrı ayrı listelemek yerine, eşik değerin üzerindeki her değeri tek bir Case ifadesiyle kapsamanızı sağlar.

Komut dosyası bir değişkeni birçok olası değere karşı test ederken Select Case'i seçin; farklı değişkenleri karşılaştıran veya aralıklar ve mantıksal operatörler kullanan koşullar için If…ElseIf'i kullanın.

Exist özelliğiyle IF-Else yapısı nasıl kullanılır? UFT

Tıkla okuyun videoya erişilemiyorsa

Exist özelliği, test edilen uygulamada bir nesnenin mevcut olup olmadığına bağlı olarak True veya False değerini döndürür; bu da onu If Else ile eşleştirmek için doğal bir koşul haline getirir. Aşağıdaki örnek, klasik Giriş İşlevselliği senaryosunu yeniden ele almaktadır. Uçuş rezervasyonu dan uygulama Test yapmak Bu, bir hata iletişim kutusu göründüğünde komut dosyasının olumsuz senaryo yoluna, görünmediğinde ise olumlu senaryo yoluna dallanması gereken bir dizi senaryoyu tam olarak yansıtır. Test Senaryosu Yukarıdaki videoda ele alınmıştır.

  1. İki ayrı komut dosyası kaydedin: biri geçerli bir Temsilci Adı ve Parola kombinasyonuyla giriş yapan, diğeri ise geçersiz bir kombinasyonla giriş yapan.
  2. Giriş adımından hemen sonra bir If Else adımı ekleyin, böylece her iki kayıt da tek bir birleşik komut dosyası içinde çalışabilir.
  3. Hata Bilgisi penceresinin var olup olmadığını kontrol etmek için aşağıdaki koşulu ayarlayın: Var olmak Tıklama adımı yerine özellik.
  4. Olumsuz senaryo adımlarını, örneğin hata penceresini ve giriş iletişim kutusunu kapatmayı, "Eğer" bloğunun içine taşıyın.
  5. Uçuş Rezervasyonu penceresini kapatmak gibi olumlu senaryo adımlarını "Diğer Durumlar" bloğunun içine taşıyın.
  6. Birleştirilmiş betiği kaydedin ve her iki yolun da doğru şekilde yürütüldüğünü doğrulamak için hem geçerli hem de geçersiz kimlik bilgisi setine karşı çalıştırın.
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 ve Else yapılarının yanı sıra, VBScript While…Wend yapısını da destekler. Sonraki döngüler için… Tekrarlama için, ayrıca yukarıda ele alınan ElseIf ve Select Case ifadeleri ek dallanmalar için kullanılır. Bu yapıları Exist özelliğiyle birleştirmek, tek bir işlemin gerçekleşmesini sağlar. UFT/QTP Bu komut dosyası, manuel müdahaleye gerek kalmadan hem olumlu hem de olumsuz test senaryolarını ele alır.

⚠ Not: Exist(10) gibi daha uzun bir değer Exist'e iletmek, UFT Yavaş yüklenen diyaloglar için yararlı olan ancak her adımda kullanılırsa tüm test paketini yavaşlatabilecek False döndürme özelliği, bir nesne için daha uzun süre beklemeyi gerektirir. Uzun bekleme sürelerini gerçekten yavaş olan nesneler için ayırın. Kısa ve iyi seçilmiş bir zaman aşımı, birleşik pozitif ve negatif senaryo betiğinin sürekli test çalıştırmalarında hem güvenilir hem de hızlı bir şekilde yürütülmesini sağlar.

SSS

ElseIf, koşulları sırayla değerlendirir ve ilk eşleşmede durur; bu da onu birden fazla bağımsız If bloğundan daha hızlı ve anlaşılır kılar. Ayrı If ifadelerini yalnızca koşullar birbiriyle ilişkisiz olduğunda ve her birinin kontrol edilmesi gerektiğinde kullanın.

Exist, şunu kullanıyor: UFT Varsayılan senkronizasyon zaman aşımı, genellikle birkaç saniyedir; ancak yavaş yüklenen bir nesne için daha uzun süre beklemek üzere parantez içinde Exist(10) gibi özel bir değer geçirilirse bu süre uzayabilir.

Evet. Yapay zeka asistanları, test mantığının düz bir dille yazılmış açıklamasından If, ElseIf ve Select Case blokları oluşturabilir; ancak test uzmanlarının, komut dosyasını çalıştırmadan önce nesne adlarını, özelliklerini ve zaman aşımı değerlerini doğrulamaları gerekir.

Yapay zeka araçları bir betiği tarayabilir, uyumsuz End If ifadelerini ve erişilemeyen Else bloklarını işaretleyebilir ve düzeltmeler önerebilir; bu da uzun betiklerin satır satır manuel olarak incelenmesine kıyasla hata ayıklamayı hızlandırır.

Evet. Eşik değerinin üzerindeki her değeri tek tek listelemek yerine, örneğin Case Is > 90 şeklinde bir Case satırı içinde Is anahtar kelimesini kullanın.

Bu yazıyı şu şekilde özetleyin: