2009-11-16 25 views
5

PowerBuilder ile aşina değilim ama PB için Otomatik UI Test Uygulaması oluşturma görevim var. Python'da pywinauto ve icablanabilir kütüphanelerle yapmaya karar verdik. Sorun şu ki, yeni eklenen listeler gibi bazı UI öğeleri bunlara eklenemez (inspect32 bunu alamıyor bile). Bu öğelere nasıl ulaşılacağı ve test edilebilir hale getirilebileceği hakkında herhangi bir fikriniz var mı?PowerBuilder UI test uygulaması nasıl yapılır?

cevap

2

Ayrıca PowerBuilder tabanlı GUI'leri otomatikleştirmek için bir araç için kod deniyorum. Gördüğüm kadarıyla, en iyi bahsiniz PowerBuilder Yerel Arayüzünü (PBNI) kullanmak ve NVO'nuzdan PowerScript kodunu çağırmak olacaktır.

İsterseniz, bana bir e-posta göndermekten çekinmeyin (e-posta adresim için profilime bakın), bunun nasıl yapılacağı hakkında fikir alışverişinde bulunmak isterim.

1

PowerBuilder'ı bir süredir kullanmadım ama sanırım çözmeye çalıştığınız sorun, Wonderware Intouch gibi SCADA sistemleriyle projeler yapan kişiler için adreslemeye çalıştığım soruna benzer.

Böyle bir uygulamadaki sorun, bir denetimin değerini almak veya ayarlamak için bir API olmamasıdır. Yani bir pywinauto yaklaşımı çalışamaz.

Kullanıcı olaylarını simüle etmek ve sonuçları bir ekrandan almak için küçük bir araç yaptım. Ekran yakalamalarının analizi için PIL ve pytesser ORM kullanıyorum. En kolay yol değil ama iyi çalışıyor.

Araç, açık kaynaklı ve ücretsizdir ve my website (Üzgünüz Fransızca) adresinden indirilebilir. Sadece bir hesaba ihtiyacın var ama ücretsiz. Sadece sor. fransız okuyabiliyorsanız

, burada kendini tanıtımı için one article about testing Intouch-based applications

Üzgünüz, ama ben kendi yazdığım yüzden hiçbir çözüm ile benzer bir sorun karşı karşıya idi. Her neyse, bu ücretsiz ve açık kaynak ...

+1

Merhaba. Python uygulamamız bazı ekspertizlerin yanı sıra oldukça iyi çalışıyor.Doğrudan kontrol değerini ayarlamayız, ancak sisteme şöyle diyoruz: "x pozisyonuna geçin, y yazın ve enter tuşuna basın" Kontrole ulaşmak ve pozitivite, değer vb. Bulmak için pywinauto kullanıyoruz ve kullanamıyoruz. Sorun şu ki, ya mantıksız olan ya da bulunamayan bazı elementler vardır. –

1

Eğer DataWindows'u (sınıf pbdwxxx, örn. Pbdw110) test ediyorsanız, belirli koordinatlara tıklayarak ve kontrol için Sekme tuşlarını kullanarak bir kombinasyon kullanmanız gerekecektir. İstediğiniz. Tabii ki satırlar arasında hareket etmek için yukarı ve aşağı ok tuşlarını da gönderebilirsiniz. Yapılacak en kolay şey, bir SLE gibi normal bir kontrol ile başlayıp DataWindow'a sekme yapmaktır. Sorun DataWindow'un aslında sadece bir görüntü olmasıdır. Belirli bir alan için, odağı tıklatarak veya sekme yaparak oraya taşıdığınızda denetim yoktur. DataWindow'un iAccessible arabiriminin biraz garip olduğunu da öğrendim. Nesne için DataWindow'u soruyorsanız, doğru yanıtı alamazsınız. Tüm çocuklarla numaralandırırsanız, odaklanmış olanı bulabilirsiniz. Kaynağı değiştirebilirseniz, DataWindow denetimleriniz için AccessibleName ayarlamanızı öneririm, aksi halde konumlar dışındaki denetimleri tanımlayamazsınız (DataWindow denetimleriyle, DataWindow'un içindeki DataWindow içindekileri değil). . Bir MDI uygulamasıysa, mevcut içeriğinizi belirlemenize yardımcı olması için MicroHelp penceresini (fnhelpxxx sınıfı, örn. Fnhelp110, ana uygulama penceresinden bulabilirsiniz) bulmak da yararlı olabilir.

Eklenme: Sikuli PowerBuilder sınamak için çok umut verici görünüyor. Ekrandaki nesneleri, ekran görüntüsünün kayıtlı bir parçasından tanıyarak çalışır. Yani, bulmak istediğiniz ekranın parçasının ekran görüntüsünü alırsınız.

1

AutomatedQa desteğiyle msaa'yı kullanarak ve kontroller üzerinde bazı özellikler ayarlayarak tavsiye ettiklerini gördüm. Çalışır mı bilmiyorum.

+0

Test yardımcı olmak için MSAA kullanmanın kısıtlaması, PowerBuilder uygulamasının yalnızca birkaç istisna dışında geliştiricinin açıkça sağladığı MSAA bilgilerini sunduğudır. Burada klasik PB'den bahsetmişken, WinForms'da dolaşmadım. Orta seviyemizdeki birçok PFC kontrolüne MSAA desteği ekledim. –

İlgili konular