Aracılığıyla paylaş


Otomatik Test için UI Otomasyon kullanma

Not

Bu belgeler, System.Windows.Automation ad alanında tanımlanan yönetilen UI Otomasyonu sınıflarını kullanmak isteyen .NET Framework geliştiricilerine yöneliktir. UI Otomasyonu hakkında en son bilgiler için bkz. Windows Otomasyonu API'si: UI Otomasyonu.

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 kullanıcı arabirimi (UI) çerçevelerinin karmaşık ve zengin işlevleri erişilebilir ve kolay bir şekilde otomatik hale getirmesini sağlayan birleşik bir nesne modeli sağlar.

UI Otomasyonu, Microsoft Etkin Erişilebilirlik'in ardılı olarak geliştirilmiştir. Etkin Erişilebilirlik, denetimleri ve uygulamaları erişilebilir hale getirmek için bir çözüm sağlamak üzere tasarlanmış mevcut bir çerçevedir. Etkin Erişilebilirlik, erişilebilirlik ve otomasyonun çok benzer 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 sağlam işlevsellik sağlamak üzere özel olarak tasarlanmıştır. Örneğin, Etkin Erişilebilirlik hem kullanıcı arabirimiyle ilgili bilgileri kullanıma sunma hem de AT ürünleri için gerekli 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ının hem de istemcinin UI Otomasyonu uygulaması gerekir. UI Otomasyonu sağlayıcıları, Microsoft Word, Excel gibi uygulamalar ve Microsoft 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.

Not

Bu genel bakışın amacı, UI Otomasyonu'nun yeni ve geliştirilmiş otomatik test özelliklerini göstermektir. Bu genel bakış, erişilebilirlik özellikleri hakkında bilgi sağlamaya yönelik değildir ve gerektiğinden farklı olarak erişilebilirliği ele almayacaktır.

Sağlayıcıda UI Otomasyonu

Kullanıcı arabiriminin otomatik hale getirilebilmesi için, bir uygulama veya denetim geliştiricisinin standart klavye ve fare etkileşimi kullanarak kullanıcı arabirimi nesnesinde bir son kullanıcının gerçekleştirebileceği eylemlere bakması gerekir.

Bu önemli eylemler tanımlandıktan sonra, ilgili UI Otomasyonu denetim desenleri (kullanıcı arabirimi öğesinin işlevselliğini ve davranışını yansıtan denetim desenleri) denetim üzerinde uygulanmalıdır. Örneğin, birleşik giriş kutusu denetimiyle (çalıştırma iletişim kutusu gibi) kullanıcı etkileşimi genellikle bir öğe listesini gizlemek veya görüntülemek, 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.

Not

Diğer erişilebilirlik modellerinde geliştiricilerin doğrudan tek tek düğmeler, menüler veya diğer denetimlerden bilgi toplaması gerekir. Ne yazık ki, her denetim türü onlarca küçük varyasyonda gelir. Başka bir deyişle, bir düğmenin on çeşitlemesi 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. 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 Otomasyonunu Gerçekleştirme

Daha önce belirtildiği gibi, UI Otomasyonu tarafından sağlanan birleşik model olmadan, test araçlarının ve geliştiricilerin söz konusu çerçevedeki denetimlerin özelliklerini ve davranışlarını ortaya çıkarmak için çerçeveye özgü bilgileri bilmesi gerekir. Win32, Windows Forms ve Windows Presentation Foundation (WPF) dahil olmak üzere Windows işletim sistemlerinde tek bir anda mevcut olan birkaç farklı UI çerçevesi olabileceğ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ı özetlenir ve tek eşdeğer UI Otomasyonu özelliği gösterilir.

Kullanıcı Arayüzü Otomasyonu Denetim Türü Kullanıcı Arayüzü Çerçevesi Çerçeveye Özgü Özellik UI Otomasyonu Özelliği
Düğme Windows Presentation Foundation İçerik İsimÖzelliği
Düğme Win32 Başlık İsimÖzelliği
Resim HTML alt İsimÖ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 uygulamayla ilgili bilgiler, yönetilen kod içinUI Otomasyonu Sağlayıcıları sayfasında bulunabilir. Denetim desenlerini uygulama hakkında bilgi UI Otomasyonu Denetim Desenleri ve UI Otomasyonu Metin Deseni.

İstemcide UI Otomasyonu

Birçok otomatik test aracının ve senaryonun amacı, kullanıcı arabiriminin tutarlı ve yinelenebilir şekilde değiştirilmesidir. Bu, belirli denetimlerin birim testinden, bir denetim grubundaki bir dizi genel eylemi tekrarlayan test betiklerinin kaydedilmesi ve tekrar yürütülmesine kadar uzanabilir.

Otomatik uygulamalardan kaynaklanan bir komplikasyon, testi dinamik bir hedefle eşitleme zorluğudur. Örneğin, Windows Görev Yöneticisi'nde bulunan ve çalışmakta olan uygulamaların listesini görüntüleyen liste kutusu denetimi. Liste kutusundaki öğeler test uygulamasının denetimi dışında dinamik olarak güncelleştirildiğinden, herhangi bir tutarlılık ile liste kutusunda belirli bir öğenin seçilmesini yinelemeye çalışmak 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ç, hWnd nesnelerinin koleksiyonundan 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 bir hWnd'den daha ayrıntılı olabilir. Daha fazla bilgi için bkz. UI Otomasyonu Denetim Türlerine Genel Bakış.

  • 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ı arabiriminde 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. Bu konuda yardımcı olan istemciler ve sağlayıcılar tarafından kullanılan birkaç Microsoft UI Otomasyonu özelliği vardır.

AutomationID

Bir otomasyon öğesini kardeş öğelerinden benzersiz bir şekilde tanımlar. AutomationIdProperty, bir ürün birden çok dilde gönderilirse genellikle yerelleştirilen NameProperty gibi bir özelliğin aksine yerelleştirilmemiştir. Bkz. AutomationID Özelliğini kullanma.

Not

AutomationIdProperty, otomasyon ağacı boyunca benzersiz bir kimlik garantisi vermez. Örneğin, bir uygulama, birden çok üst düzey menü öğesine ve bu öğelerin her birinin birçok alt menü öğesine sahip bir menü denetimi içerebilir. Bu ikincil menü öğeleri, "Öğe1, Öğe 2, Öğe 3 vb." gibi genel bir şema ile tanımlanabilir ve bu da üst düzey menü öğelerindeki alt öğeler arasında yinelenen tanımlayıcıların kullanılmasına olanak tanır.

KontrolTürü

Otomasyon öğesi tarafından temsil edilen denetim türünü tanımlar. Önemli bilgiler, denetim türü bilgisinden çıkarılabilir. bkz. UI Otomasyonu Denetim Türlerine Genel Bakış.

İsimÖzelliği

Bu, denetimi tanımlayan veya açıklayan bir metin dizesidir. NameProperty yerelleştirilebileceği için dikkatli kullanılmalıdır. bkz. UI Otomasyonu Özelliklerine Genel Bakış.

Test Uygulamasında UI Otomasyonu Uygulama

Adım Açıklama
UI Otomasyon Referanslarını ekleyin. UI Otomasyonu istemcileri için gereken UI Otomasyonu dll'leri burada listelenmiştir.

- UIAutomationClient.dll UI Otomasyonu istemci tarafı API'lerine erişim sağlar.
- UIAutomationClientSideProvider.dll, Win32 denetimlerini otomatikleştirme olanağı sağlar. Bkz. Standart Denetimler içinUI Otomasyonu Desteği.
- UIAutomationTypes.dll, UI Otomasyonu'nda tanımlanan belirli türlere erişim sağlar.
System.Windows.Automation ad alanını ekleyin. Bu ad alanı, UI Automation istemcilerinin metin işleme dışında UI Otomasyonu'nun özelliklerini kullanması için ihtiyaç duyduğu her şeyi içerir.
System.Windows.Automation.Text ad alanını ekleyin. Bu ad alanı, UI Otomasyonu istemcilerinin UI Otomasyonu metin işleme özelliklerini kullanması için gereken her şeyi içerir.
İlgili denetimleri bulun. Otomatik test betikleri, otomasyon ağacındaki ilgi denetimlerini temsil eden UI Otomasyonu öğelerini bulur.

Ui Otomasyonu öğelerini kodla edinmenin birden çok yolu vardır.

- Condition deyimini kullanarak kullanıcı arabirimini sorgular. Bu genellikle dilden bağımsız AutomationIdProperty kullanıldığı yerdir. Not: Denetimin UI Otomasyonu özelliklerini öğelendirebilen Inspect.exe gibi bir araç kullanılarak bir AutomationIdProperty elde edilebilir.

- Ui Otomasyonu ağacının tamamını veya bir alt kümesini çapraz geçiş yapmak için TreeWalker sınıfını kullanın.
- Odağı izleme.
- Denetimin hWnd değerini kullanın.
- Fare imlecinin konumu gibi ekran konumunu kullanın.

Bkz. UI Otomasyon Öğelerini Alma
Denetim Desenlerini Edin. Denetim desenleri, işlevsel olarak benzer denetimler için ortak davranışları ortaya çıkarır.

Test gerektiren denetimlerin yerini tespit ettikten sonra, otomatik test betikleri bu UI Otomasyonu öğelerinden ilgi çekici denetim desenlerini alır. Örneğin, tipik düğme işlevselliği için InvokePattern denetim deseni veya pencere işlevselliği için WindowPattern denetim deseni.

bkz. UI Otomasyonu Denetim Desenlerine Genel Bakış.
Kullanıcı arabirimini otomatikleştirin. Otomatik test betikleri artık UI Otomasyonu denetim desenleri tarafından sunulan bilgileri ve işlevleri kullanarak bir UI çerçevesinden ilgi çekici tüm kullanıcı arabirimini denetleyebiliyor.

UI Otomasyonu ile otomatik testi destekleyen bir dizi ilgili araç ve teknoloji vardır.

  • Inspect.exe, hem sağlayıcı hem de istemci geliştirme ve hata ayıklama için UI Otomasyonu bilgilerini toplamak için kullanılabilecek bir grafik kullanıcı arabirimi (GUI) uygulamasıdır. Inspect.exe Windows SDK'sında bulunur.

  • MSAABridge, UI Otomasyonu bilgilerini Etkin Erişilebilirlik istemcilerinin kullanımına sunar. UI Otomasyonu'nun Etkin Erişilebilirlik'e köprü oluşturmasının birincil hedefi, mevcut Etkin Erişilebilirlik istemcilerinin UI Otomasyonu'nun uygulandığı herhangi bir çerçeveyle etkileşim kurmasına olanak sağlamaktır.

Güvenlik

Güvenlik bilgileri için bkz. UI Otomasyonu Güvenliğine Genel Bakış.

Ayrıca bkz.