Sıralı Tanımlayıcı QTP/UFTNesne Tanımlama Örneği
⚡ Akıllı Özet
Sıralı Tanımlayıcı QTP/UFT eşitliği bozan faktördür. UFT Zorunlu ve yardımcı özelliklerin birden fazla nesneyle eşleşmesi durumunda, Index, Location veya CreationTime değerlerini kullanarak tek bir benzersiz nesne seçilir.
Sıralı tanımlayıcı nedir? QTP/UFT?
An Sıra Tanımlayıcı sayısal bir özelliktir UFT (eski QTPBu araç, kayıt oturumu sırasında yakalanan zorunlu ve yardımcı özelliklerin nesneyi benzersiz bir şekilde tanımlamak için yeterli olmadığı durumlarda nesne açıklamasına ekleme yapar. Başarısız olmak yerine, araç esasen "bu sınıftaki üçüncü nesneyi al" diyen bir sayaca geri döner.
Varsayılan olarak, her test nesnesi sınıfı için bir sıra numarası tanımlayıcı türü bulunur. Bir WebEdit, bir WinButton'dan farklı şekilde numaralandırılır ve bir Browser da yine farklı şekilde numaralandırılır. Bir sınıfın varsayılan sıra numarası tanımlayıcısını Nesne Tanımlama penceresinde görüntüleyebilir veya değiştirebilirsiniz.
Yukarıdaki ekran görüntüsünde de görüldüğü gibi, Sıra numarası tanımlayıcı açılır menüsü, Nesne Tanımlama iletişim kutusunun en altında, zorunlu ve yardımcı özellik listelerinin altında yer almaktadır. Bu konum tesadüfi değildir: zorunlu ve yardımcı özellik listelerinin altında yer alan özelliklerin sırasını yansıtır. UFT Aslında üç gruba da danışıyor.
Sıralı tanımlayıcıların üç türü vardır. UFT:
- Dizin tabanlı
- Konum tabanlı
- Oluşturma Zamanı
Neden Şimdi UFT Sıralı tanımlayıcıları yalnızca son çare olarak kullanır.
Nesne tanımlama UFT Bir basamaklı işlem şeklinde çalışır. Önce zorunlu özellikler öğrenilir. Eğer tek bir eşleşme sağlamazlarsa, açıklama benzersiz olana kadar yardımcı özellikler tek tek eklenir. Her iki grup da tükendiğinde ancak o zaman işlem tamamlanır. UFT Sıralı bir tanımlayıcı eklenir ve çalışma zamanında, sıralı değere güvenilmeden önce Akıllı Tanımlama mekanizmasına başvurulur.
Bu sıralamanın nedeni istikrardır. Zorunlu ve yardımcı özellikler şunları tanımlar: ne Bir nesne şunlardan oluşur: adı, HTML etiketi, türü, etiketi. Sıralı bir tanımlayıcı ise yalnızca onu tanımlar. nerede Nesne, kayıt anında tesadüfen orada bulunuyordu. Sayfayı değiştiren her şey sayıyı da değiştirir:
- Geliştirici, otomatikleştirdiğiniz alanın üstüne gizli bir alan ekler.
- Tanıtım afişi, başlığa iki ek bağlantı ekler.
- Duyarlı bir düzen, formu iki sütundan tek sütuna yeniden düzenler.
- Kaydedilen çalışma sırasında olduğundan daha erken bir aşamada açılır bir tarayıcı penceresi açılıyor.
Bu değişikliklerin hiçbiri bir isim veya kimlik üzerine kurulu bir açıklamayı bozmaz, ancak her biri sayfadaki her dizin ve konum değerini sessizce değiştirir. Bu nedenle deneyimli mühendisler, sıralı bir tanımlayıcıyı nesne açıklamasının üzerinde çalışılması gerektiğinin bir işareti olarak görürler, tamamlanmış bir çözüm olarak değil. Aynı prensip her yerde geçerlidir. otomasyon testi Genel olarak çerçeveler, konum belirleme stratejisi de dahil olmak üzere Selenium.
💡 İpucu: Sıralı bir tanımlayıcıyı kabul etmeden önce, nesneyi Nesne Casusu'nda açın ve kararlı bir özel öznitelik arayın. Bu özniteliği sınıfın yardımcı özellik listesine eklemek, genellikle bu türdeki her gelecekteki nesne için sıralı bir tanımlayıcıya olan ihtiyacı ortadan kaldırır.
Sıralı Tanımlayıcı Türleri UFT/QTP
Dizin Tabanlı
- İndeks tabanlı sıralı tanımlayıcı kullanıldığında, UFT bir değer atar indeks Kayıt sırasında nesnenin özelliği.
- Değer, nesnenin ekranda değil, kaynak kod içinde görünme sırasına göre belirlenir.
- İlk oluşumun değeri 0'dır.
- İndeks özelliği değerleri nesneye özgüdür, bu nedenle her test nesne sınıfı ayrı ayrı sayılır.
- Dolayısıyla, bir WebEdit test nesnesini tanımlamak için index:=3 kullanırsanız, UFT Sayfadaki dördüncü WebEdit nesnesini arar.
- Benzer şekilde, bir WebButton test nesnesini tanımlamak için index:=1 kullanırsanız, UFT Sayfadaki ikinci WebButton nesnesini arar.
Konum tabanlı
- Konum tabanlı sıralı tanımlayıcı kullanıldığında, UFT bir değer atar yer Nesneyi benzersiz bir şekilde tanımlamak için kullanılan özellik.
- Değer, nesnenin pencere, çerçeve veya iletişim kutusu içinde, aynı özelliklere sahip diğer nesnelere göre göründüğü sıraya dayanır.
- Nesnenin ilk oluşumu 0'dır.
- Değerler sütunlar halinde, yukarıdan aşağıya ve ardından soldan sağa doğru atanır.
- Konum, çoğu Standart için varsayılan sıra numarası tanımlayıcısıdır. Windows Görsel düzenin işaretleme sırasından daha istikrarlı olduğu test nesnesi sınıfları.
Oluşturma Zamanı
- Oluşturma zamanı sıra numarası tanımlayıcısı kullanıldığında, UFT bir değer atar yaratım zamanı Bir tarayıcı nesnesinin özelliği.
- Bu tanımlayıcı yalnızca Web ortamı ve yalnızca Tarayıcı test nesneleri için geçerlidir.
- Bu değer, tarayıcının diğer açık tarayıcılara göre açılma sırasını gösterir.
- Çalıştırma sırasında açılan ilk tarayıcı creationtime:=0 değerini alır ve sonraki tarayıcılar 1, 2, 3 ve bu şekilde devam eder.
- Bir tarayıcı kapatıldığında, kalan tarayıcılar yeniden numaralandırılmak yerine orijinal değerlerini korur.
İndeks, Konum ve Oluşturma Zamanı Karşılaştırma Tablosu
Üç tanımlayıcı üç farklı soruyu yanıtlıyor ve yanlış olanı seçmek, aralıklı arızaların sık görülen bir nedenidir.
| Görünüş | indeks | Konum | Oluşturma Zamanı |
|---|---|---|---|
| Mülkiyet adı | indeks | yer | yaratım zamanı |
| Sipariş esasları | Kaynak kod/nesne hiyerarşisindeki sıralama | Ekranın pencere, çerçeve veya iletişim kutusu içindeki konumu | Tarayıcı örneklerinin açılma sırası |
| Sayma kuralı | Sıralı, test nesnesi sınıfına göre | Sütunlar, yukarıdan aşağıya sonra soldan sağa | Sıralı, tarayıcı örneği başına |
| İlk değer | 0 | 0 | 0 |
| Uygulanır | Web ve Windows sınıflar | Esas olarak Standart Windows sınıflar | Yalnızca tarayıcı nesneleri |
| Molalar meydana geldiğinde | Fiyatlandırma sırası değişiklikleri | Yerleşim yeniden konumlandırıldı veya yeniden boyutlandırıldı. | Windows farklı bir sırayla açın |
| En iyi kullanım için | Tekrarlayan ızgara veya tablo kontrolleri | Sabit düzenli eski masaüstü formları | Ödeme açılır pencereleri gibi çoklu pencereli web akışları |
Nesne Deposunda Sıralı Tanımlayıcı Nasıl Ayarlanır?
Sıra numarası tanımlayıcısı, her test nesnesi sınıfı için yapılandırılır ve bu sınıfa ait her nesneye otomatik olarak uygulanır. UFT Sonradan öğrenir. Depoda zaten mevcut olan nesneler geriye dönük olarak güncellenmez.
- Açılış UFT seçin Araçlar > Nesne Tanımlama.
- Ortamı seçin, örneğin Web veya Standart WindowsOrtam açılır menüsünden.
- Değiştirmek istediğiniz test nesnesi sınıfını seçin, örneğin WebEdit veya WinButton.
- içinde Sıra numarası tanımlayıcısı Bu bölümden Dizin, Konum, Oluşturma Zamanı veya Hiçbiri'ni seçin.
- Tıkla OK ve nesneyi yeniden öğrenerek yeni sıralı değeri yakalayın.
- Nesne deposunu açın, nesneyi seçin ve sıralı özelliğin artık açıklama listesinde göründüğünü doğrulayın.
Seçilmesi Hayır Bu sınıf için yedekleme özelliğini tamamen devre dışı bırakır. UFT Bu durumda, tahmin etmek yerine bir tanımlama hatası verecektir; bu da genellikle sessiz yanlış tanımlamanın temiz bir başarısızlıktan daha zararlı olduğu bir test paketinde istediğiniz davranıştır. Beklentilerinizi iyi yazılmış bir şekilde kaydetmek önemlidir. test durumu Bu durum, söz konusu ödünleşmeyi tüm ekip için açık bir şekilde ortaya koyuyor.
⚠️Uyarı: Bir sınıfın sıralı tanımlayıcısını değiştirmek, test düzeyinde değil, makine düzeyinde bir ayardır. Eğer bu değer dışa aktarılıp paylaşılmazsa, sizin makinenizde başarılı olan komut dosyaları bir meslektaşınızın makinesinde veya derleme aracısında başarısız olabilir.
Sıralı Tanımlayıcılar Nasıl Kullanılır? DescriptCanlı Programlama
Tanımlayıcı programlamada Nesne Tanımlama iletişim kutusu yoktur. Sıra numarası, diğer özellik adları gibi doğrudan açıklama dizesine yazılır ve her zaman sıfır tabanlıdır.
' Ordinals are zero based: index:=3 is the FOURTH WebEdit on the page Set objPage = Browser("Guru99 Bank").Page("Guru99 Bank") objPage.WebEdit("index:=3").Set "9999999999" Print "Filled WebEdit occurrence #" & (3 + 1) ' Location is counted top to bottom, then left to right objPage.WebButton("location:=1").Click Print "Clicked WebButton occurrence #" & (1 + 1) ' CreationTime works only on Browser objects Print "Switching to browser opened at position #" & (1 + 1) Browser("creationtime:=1").Sync
Çıktı:
Filled WebEdit occurrence #4 Clicked WebButton occurrence #2 Switching to browser opened at position #2
Daha güvenli bir yöntem, gerçek özellikleri birleştirmektir. ChildObjects Dolayısıyla, sıra numarası kullanılmadan önce doğrulanır. Aşağıdaki örnek, beş eşleşen WebEdit nesnesi ve 9 indeksi içeren bir sayfayı varsaymaktadır.
Dim oDesc, oChildren, intIndex Set oDesc = Description.Create() oDesc("micclass").Value = "WebEdit" oDesc("html tag").Value = "INPUT" Set oChildren = objPage.ChildObjects(oDesc) intIndex = 9 If intIndex < oChildren.Count Then oChildren(intIndex).Set "Guru99" Else Print "Index " & intIndex & " is out of range; only " & oChildren.Count & " objects match" End If
Çıktı:
Index 9 is out of range; only 5 objects match
Bu koruma mekanizması, işe yaramayan "Nesne tanımlanamıyor" çalışma zamanı hatasını okunabilir bir mesaja dönüştürüyor; bu da sonuçlar bir hata raporuna yayınlandığında önem taşıyor. tracker veya -e HP ALM ile entegre UFT.
Sıralı Tanımlayıcılar Kullanılırken Yapılan Yaygın Hatalar
Sıralama ile ilgili kusurların çoğu tracTekrarlayan hataların küçük bir kümesine geri dönelim.
- 1'den başlayarak sayıyoruz. Her sıralı tanımlayıcı 0'dan başlar. İlk alan için index:=1 yazmak en sık yapılan hatadır ve zamanlama sorunu gibi görünen bir eksik değer hatasına neden olur.
- İndeks ile konumu karıştırmak. Index, kaynak kodunu takip eder; location ise ekranı takip eder. CSS'nin öğeleri yeniden sıraladığı bir sayfada, bu iki değer farklıdır ve yer değiştirir.ping Onlar sessizce yanlış kontrolü hedef alıyorlar.
- CreationTime'ı web ortamı dışında kullanma. Bu özellik yalnızca Browser nesnelerinde bulunur. Bunu Page, Frame veya Window nesnelerine uygulamak, desteklenmeyen özellik hatası verir.
- Paylaşılan bir fonksiyona sıralı bir sayıyı doğrudan kodlamak. Index:=2 varsayımına dayanan yeniden kullanılabilir bir fonksiyon, farklı bir düzenlemeye sahip ikinci bir ekran tarafından çağrıldığı anda kullanılamaz hale gelir.
- Uygulama istikrara kavuştuktan sonra sıralı sayıları depoda bırakmak. Geliştiriciler kalıcı kimlikler ekledikten sonra, nesneleri tekrar ziyaret edin ve sıra numarasını yeni özellikle değiştirin.
- Izgaralar üzerindeki döngüler içindeki sıralı sayılara güvenmek. tercih ederim
ChildObjectsBu, canlı bir koleksiyon döndürdüğü için sayım, kaydedilen sayfayı değil, mevcut sayfayı yansıtır.
Kaynaklar
Yukarıdaki eğitimde kullanılan web sayfalarını kendi kendinize pratik yapmak için indirin.
Sıralı tanımlayıcılar, nesne tanımlama modelinin küçük bir parçasıdır. Bunların daha geniş iş akışına nasıl uyduğunu görmek için, tam sürüme devam edin. QTP/UFT eğitim serisiTemelleri gözden geçirin yazılım testiSonuçların nasıl yönetildiğini öğrenin. HP ALM eğitim videosuve konum belirleme stratejilerini şunlarla karşılaştırın: Selenium öğretici.
SSS
Tıkla okuyun videoya erişilemiyorsa


