Otomatik Test için UI Otomasyon kullanma
Bu genel bakış, Microsoft UI Automation'ın otomatik test senaryolarında programlı erişim için bir çerçeve olarak nasıl yararlı olabileceğini açıklar.
UI Otomasyonu, tüm UI çerçevelerinin karmaşık ve zengin işlevleri erişilebilir ve kolay otomatik bir şekilde kullanıma sunmalarını sağlayan birleşik bir nesne modeli sağlar.
UI Otomasyonu, denetimleri ve uygulamaları erişilebilir hale getirmek için bir çözüm sağlamak üzere tasarlanmış bir çerçeve olan Microsoft Etkin Erişilebilirlik'in ardılı olarak geliştirilmiştir. Microsoft Etkin Erişilebilirlik, benzer erişilebilirlik ve otomasyon gereksinimleri nedeniyle bu role dönüşmesine rağmen test otomasyonu düşünülerek tasarlanmamıştır. UI Otomasyonu, erişilebilirlik için daha iyi çözümler sunmanın yanı sıra otomatik test için güçlü işlevler sağlamak üzere özel olarak tasarlanmıştır. Örneğin, Microsoft Etkin Erişilebilirlik, kullanıcı arabirimi hakkındaki bilgileri kullanıma sunma ve yardımcı teknoloji ürünlerinin ihtiyaç duyduğu bilgileri toplama amacıyla tek bir arabirime dayanır; UI Otomasyonu iki modeli ayırır.
Otomatikleştirilmiş test aracı olarak yararlı olması için hem sağlayıcı hem de istemcinin UI Otomasyonu uygulaması gerekir. UI Otomasyonu sağlayıcıları, Microsoft Word, Microsoft Excel gibi uygulamalar ve Windows işletim sistemini temel alan diğer üçüncü taraf uygulamalar veya denetimlerdir. UI Otomasyonu istemcileri otomatik test betikleri ve yardımcı teknoloji uygulamaları içerir.
Bu konu aşağıdaki bölümleri içerir.
- Sağlayıcılarda Kullanıcı Arabirimi Otomasyonu
- İstemcilerde Kullanıcı Arabirimi Otomasyonu
- Test Otomasyonu için Anahtar Özellikleri
- İlgili Araçlar ve Teknolojiler
- İlgili konular
Sağlayıcılarda UI Otomasyonu
Kullanıcı arabiriminin bir öğesini otomatikleştirmek için, geliştiricinin standart klavye ve fare etkileşimini kullanarak kullanıcı arabirimi nesnesinde bir son kullanıcının hangi eylemleri gerçekleştirebileceğine bakması gerekir. Bu önemli eylemler tanımlandıktan sonra, ui öğesinin işlevselliğini ve davranışını yansıtan UI Otomasyonu denetim desenleri denetime uygulanmalıdır. Örneğin, birleşik giriş kutusu denetimiyle kullanıcı etkileşimi genellikle bir öğe listesini görüntülemek veya gizlemek, listeden bir öğe seçmek veya klavye girişi aracılığıyla yeni bir değer eklemek için birleşik giriş kutusunun genişletilip daraltılmasını içerir.
Diğer erişilebilirlik modellerinde geliştiricilerin doğrudan tek tek düğmeler, menüler veya diğer denetimlerden bilgi toplaması gerekir. Her denetim türü onlarca küçük varyasyonda gelir. Başka bir deyişle, bir düğmenin 10 varyasyonu aynı şekilde çalışsa ve aynı işlevi gerçekleştirse de, bunların tümü benzersiz denetimler olarak ele alınmalıdır. Bu denetimlerin işlevsel olarak eşdeğer olduğunu bilmenin hiçbir yolu yoktur. UI Otomasyonu denetim desenleri, bu yaygın denetim davranışlarını temsil etmek için geliştirilmiştir. Daha fazla bilgi için bkz. UI Otomasyonu Denetim Desenlerine Genel Bakış.
UI Otomasyonu tarafından sağlanan birleşik denetim desenleri modeli olmadan, test araçlarının ve geliştiricilerin bu çerçevedeki özellikleri ve denetim davranışlarını ortaya çıkarmak için çerçeveye özgü bilgilere sahip olması gerekir. Microsoft Win32, Windows Forms ve Windows Presentation Foundation (WPF) dahil olmak üzere Windows işletim sistemlerinde aynı anda birkaç farklı UI çerçevesi bulunabildiğinden, benzer görünen denetimlerle birden çok uygulamayı test etmek göz korkutucu bir görev olabilir. Örneğin, aşağıdaki tabloda bir düğme denetimiyle ilişkili adı veya metni almak için gereken çerçeveye özgü özellik adları listelenmektedir ve eşdeğer UI Otomasyonu özelliği gösterilmektedir.
Denetim türü | UI çerçevesi | Çerçeveye özgü özellik | UI Otomasyonu özelliği |
---|---|---|---|
Düğme | WPF | İçerik | Name özelliği |
Düğme | Win32 | Başlık | Name özelliği |
Resim | HTML | alt | Name özelliği |
UI Otomasyonu sağlayıcıları, denetimlerinin çerçeveye özgü özelliklerini eşdeğer UI Otomasyonu özellikleriyle eşlemekle sorumludur. Bir sağlayıcıda UI Otomasyonu uygulama hakkında bilgi için bkz. UI Otomasyonu Sağlayıcısı Programcı Kılavuzu. Denetim desenlerini uygulama hakkında bilgi için bkz. UI Otomasyonu Denetim Desenlerini Uygulama.
İstemcilerde UI Otomasyonu
Otomatikleştirilmiş test araçlarının ve senaryolarının amacı, kullanıcı arabiriminin tutarlı ve yinelenebilir işlemesidir. Örneğin, bu işlem belirli denetimlerin birim testini ve bir dizi denetimdeki genel eylemler aracılığıyla yinelenen test betiklerini kaydetmeyi ve çalıştırmayı içerebilir.
Otomatik uygulamalardaki bir komplikasyon, bir testi dinamik hedefle eşitlemenin zorluğudur; örneğin, şu anda çalışan uygulamaların listesini görüntüleyen Windows Görev Yöneticisi gibi bir liste kutusu denetimi. Liste kutusundaki öğeler test uygulamasının denetimi dışında dinamik olarak güncelleştirildiğinden, liste kutusunda herhangi bir tutarlılık içeren belirli bir öğenin seçilmesini yineleme girişimi mümkün değildir. Test uygulamasının denetimi dışındaki bir kullanıcı arabiriminde basit odak değişikliklerini yinelemeye çalışırken de benzer sorunlar ortaya çıkabilir.
Programlı Erişim
Programlı erişim, geleneksel fare ve klavye girişi tarafından sunulan tüm etkileşimleri ve deneyimleri kod aracılığıyla taklit etme olanağı sağlar. UI Otomasyonu beş bileşen aracılığıyla programlı erişim sağlar:
- UI Otomasyonu ağacı, kullanıcı arabiriminin yapısında gezinmeyi kolaylaştırır. Ağaç, HWNDkoleksiyonundan oluşturulur. Daha fazla bilgi için bkz. UI Otomasyon Ağacına Genel Bakış.
- Otomasyon öğeleri, kullanıcı arabirimindeki tek tek bileşenlerdir. Bunlar genellikle HWNDdaha ince ayrıntılara sahip olabilir.
- Otomasyon özellikleri, kullanıcı arabirimi öğeleri hakkında belirli bilgiler sağlar. Daha fazla bilgi için bkz. UI Otomasyonu Özelliklerine Genel Bakış.
- Denetim desenleri, denetimin işlevselliğinin belirli bir yönünü tanımlar; özellik, yöntem, olay ve yapı bilgilerinden oluşabilir. Daha fazla bilgi için bkz. UI Otomasyonu Denetim Desenlerine Genel Bakış.
- Otomasyon olayları, olay bildirimleri ve bilgileri sağlar. Daha fazla bilgi için bkz. UI Otomasyonu Olaylarına Genel Bakış.
Test Otomasyonu için Temel Özellikler
Kullanıcı arabirimindeki herhangi bir denetimi benzersiz olarak tanımlayıp daha sonra bulabilmek, otomatikleştirilmiş test uygulamalarının bu kullanıcı arabiriminde çalışmasına yönelik temel sağlar. İstemciler ve sağlayıcılar tarafından denetimleri tanımlamak ve bulmak için kullanılan UI Otomasyonu özellikleri aşağıdaki tabloda açıklanmıştır.
Mülk | Açıklama |
---|---|
AutomationId | Otomasyon öğesini eşdüzeylerinden benzersiz olarak ayırt eder. AutomationId özelliği için destek gerekli değildir. Kullanılabilir olduğunda, yerel dilden bağımsız olarak bir öğenin AutomationId özelliği uygulamanın herhangi bir örneğinde aynıdır. AutomationId özelliği eşdüzey öğeler arasında benzersiz olsa da tüm masaüstünde benzersiz olmayabilir. Örneğin, bir uygulamanın birden çok örneği veya Microsoft Windows Gezgini'ndeki birden çok klasör görünümü, "SystemMenuBar" gibi aynı AutomationIdProperty'ye sahip öğeler içerebilir. İstemciler, diğer uygulamalar tarafından kullanıma sunulan AutomationId'lerle ilgili hiçbir varsayımda bulunmamalıdır. AutomationId'nin bir uygulamanın farklı sürümleri veya derlemeleri arasında kararlı olması garanti edilmez. |
KontrolTipi | Otomasyon öğesi tarafından temsil edilen denetim türünü tanımlar. Önemli bilgiler, denetim türü bilgisinden çıkarılabilir. Daha fazla bilgi için bkz. UI Otomasyonu Denetim Türlerine Genel Bakış. |
İsim | Otomasyon öğesini tanımlayan veya amacını açıklayan metin dizesi. Yerelleştirilebildiği için dikkatli kullanılmalıdır. Name özelliği eşdüzeyler arasında benzersiz bir tanımlayıcı değildir. Test otomasyonu için istemcilerin bunun yerine AutomationId özelliğini veya RuntimeId özelliğini kullanması gerekir. |
RuntimeId | Otomasyon öğesinin tanımlayıcısını temsil eden tamsayı dizisi. Tanımlayıcı masaüstünde benzersizdir, ancak yalnızca oluşturulduğu masaüstünün kullanıcı arabirimi için benzersiz olacağı garanti edilir. Tanımlayıcılar zaman içinde yeniden kullanılabilir. Şu anda belirli bir çalışma zamanı kimliğine sahip olan öğenin daha önce bu kimlikle aynı öğe olup olmadığını belirlemek için IUIAutomation::CompareElementskullanın. Ayrıca RuntimeId özelliğinin biçimi değişebilir. Opak bir değer olarak ele alınmalı ve yalnızca karşılaştırma için kullanılmalıdır; örneğin, bir otomasyon öğesinin önbellekte olup olmadığını belirlemek için. |
İlgili Araçlar ve Teknolojiler
Inspect (Inspect.exe), sağlayıcı ve istemci geliştirme ve hata ayıklama için UI Otomasyonu bilgilerini toplamak için kullanabileceğiniz Windows tabanlı bir araçtır. Inspect aracı, Windows Yazılım Geliştirme Seti'ne (SDK) dahildir.
İlgili konular