Aracılığıyla paylaş


İzlenecek yol: Kodlanmış Bir UI Testi Oluşturmak Düzenlemek ve Sürdürmek

Bu yönergede kodlanmış UI testinin nasıl oluşturulduğunu, düzenlendiğini ve korunduğunu göstermek üzere basit bir Windows Presentation Foundation (WPF) oluşturacaksınız. İzlenecek yol çeşitli zamanlama sorunları ve yeniden düzenlemeyi denetleme tarafından kırılan testleri düzeltmeye ilişkin çözümler sağlar.

Önkoşullar

Bu örnek için şunlar gerekir:

  • Visual Studio 2010 Ultimate veya Visual Studio 2010 Premium.

Basit WPF Uygulaması Oluşturma

  1. Dosya menüsünde, Yeni'nin üzerine gelin ve sonra Proje'yi seçin.

    Yeni Proje iletişim kutusu görüntülenir.

  2. Yüklü Şablonlar bölmesinde Visual C# öğesini genişletin ve sonra Windows'u seçin.

  3. Orta bölmede hedef çerçeve açılır listesinin .NET Framework 4 olarak ayarlandığını doğrulayın.

  4. Ortadaki bölmeden WPF Uygulaması şablonunu seçin.

  5. Ad metin kutusuna, SimpleWPFApp yazın.

  6. Projeyi kaydetmek için bir klasör seçin. Konum metin kutusuna klasörün adını yazın.

  7. Tamam düğmesini tıklatın.

    Visual Studio için WPF Tasarımcısı açılır ve projenin MainWindow öğesini görüntüler.

  8. Araç kutusu açık değilse, açın. Görüntüleme menüsünü tıklatın ardından Araç kutusu öğesini tıklatın.

  9. Tüm WPF Denetimleri bölümü altında, tasarım yüzeyindeki MainWindow üzerine bir Button, CheckBox ve ProgressBar denetimi sürükleyin.

  10. Düğme kontrolünü seçin. Özellikler penceresinde İçerik özelliğinin değerini Düğme'den Başlat'a değiştirin.

  11. ProgressBar kontrolünü seçin. Özellikler penceresinde Maksimum özelliğinin değerini 100'den 1000'e değiştirin.

  12. Onay kutusu kontrolünü seçin. Özellikler penceresinde IsEnabled özelliğini temizleyin.

    Basit WPF uygulama

  13. Bir Tıklatma etkinliği eklemek için düğme denetimini çift tıklatın.

    MainWindow.xmal.cs, yeni button1_Click olayındaki imleç ile Kod Düzenleyicisi'nde görüntülenir.

  14. MainWindow sınıfının en üstünde, bir temsilci ekleyin. Temsilci ilerleme çubuğu için kullanılacaktır. Temsilci eklemek için aşağıdaki kodu ekleyin:

            private delegate void ProgressBarDelegate(
            System.Windows.DependencyProperty dp, Object value);
    
  15. button1_Click yöntemine aşağıdaki kodu ekleyin:

                double progress = 0;
    
                ProgressBarDelegate updatePbDelegate =
            new ProgressBarDelegate(progressBar1.SetValue);
    
                do
                {
                    progress ++;
    
                    Dispatcher.Invoke(updatePbDelegate,
                        System.Windows.Threading.DispatcherPriority.Background,
                        new object[] { ProgressBar.ValueProperty, progress });
                    progressBar1.Value = progress;
                }
                while (progressBar1.Value != progressBar1.Maximum);
    
                checkBox1.IsEnabled = true;
    

WPF Uygulamasının Düzgün Çalıştığını Doğrulayın

  1. Hata Ayıkla menüsünde Hata Ayıklamayı Başlat öğesini seçin veya F5 tuşuna basın.

  2. Başlat'ı tıklatın.

    Birkaç saniye içinde ilerleme çubuğu tam %100 bitmiş olmalıdır. Onay kutusu denetimi şimdi etkinleştirildi.

  3. SimpleWPFApp Uygulamasını Kapatın.

SimpleWPFApp için Kodlanmış Kullanıcı Arabirimi Testi Oluşturun ve Çalıştırın

  1. Çözüm Gezgini'nde, çözümü sağ tıklatın, Ekle'yi tıklatın ve sonra Yeni Proje'yi seçin.

    Yeni Proje Ekle iletişim kutusu görüntülenir.

  2. Yüklü Şablonlar bölmesinde Visual C# öğesini genişletin ve sonra Test'i seçin.

  3. Ortadaki bölmeden Test Projesi şablonunu seçin.

  4. Tamam düğmesini tıklatın.

    Çözüm Gezgini'nde TestProject1 adlı yeni test projesi çözümünüze eklenir ve UnitTest1.cs Kod Düzenleyicisi'nde belirir. UnitTest1.cs dosyasını kapatamazsınız çünkü dosya bu gözden geçirmelerde kullanılmaz.

  5. Çözüm Gezgini'nde TestProject1 öğesini sağ tıklatın, Ekle'yi tıklatın ve ardından Kodlanmış UI testi'ni seçin.

    Kodlanmış UI Testi için Kod Üret iletişim kutusu görünür.

  6. Eylemleri kaydet, UI eşlemesini düzenle veya onaylama işlemlerini ekle seçeneğini seçin ve Tamam'ı tıklatın.

    UIMap – Kodlanmış UI Test Oluşturucusu görünür.

    İletişim kutusundaki seçenekler hakkında daha fazla bilgi için bkz. Kodlanmış UI Testi Nasıl Oluşturulur.

  7. Daha önce oluşturduğunuz SimpleWPFApp uygulamasını bulup çalıştırın. Varsayılan olarak, uygulama C:\Users\<username>\Documents\Visual Studio 2010\Projects\SimpleWPFApp\SimpleWPFApp\bin\Debug\SimpleWPFApp.exe yer alacaktır

  8. SimpleWPFApp uygulaması için bir masaüstü kısayolu oluşturun. SimpleWPFApp.exe dosyasını sağ tıklayın ve Kopyala'yı seçin. Masaüstünüzde sağ tıklatın ve Kısayolu yapıştır'ı seçin.

    İpucuİpucu

    Uygulamaya bir kısayol eklenmesi, uygulamayı hızlıca başlatmanızı sağladığından uygulamanız açısından Kodlanmış UI testleri ekleyip değiştirmenizi kolaylaştırır. Ona gitmeniz gerekmez. İzlenecek bu yolda uygulamayı yeniden çalıştırmanız gerekir.

  9. UIMap – Kodlanmış Kullanıcı Arabirimi Test Oluşturucusu üzerinde Kaydetmeye Başla seçeneğini tıklatın. Birkaç saniye içinde Kodlu UI Testi Oluşturucusu hazır olacak.

  10. SimpleWPFApp.exe dosyasını masaüstü kısayolunu kullanarak çalıştırın.

  11. SimpleWPFApp üzerinde Başlat'ı tıklatın.

    Birkaç saniye içinde ilerleme çubuğu tam %100 bitmiş olmalıdır. Onay kutusu denetimi şimdi etkinleştirildi.

  12. Onay Kutusu denetimi kutusunu seçin.

  13. SimpleWPFApp uygulamasını kapatın.

  14. UIMap - Kodlanmış UI Test Oluşturucusu üzerinde Kod Oluştur seçeneğini tıklatın.

  15. Yöntem Adı'na SimpleAppTest yazın ve Ekle ve Oluştur'u tıklatın. Birkaç saniye içinde Kodlu UI testi görünür ve Çözüm'e eklenir.

  16. UIMap uygulamasını kapatın– Kodlanmış Kullanıcı Arabirimi Test Oluşturucusu.

    Kod Editörü'nde CodedUITest1.cs dosyası görüntülenir.

Kodlu UI Testi Çalıştırma

  • CodedUITest1.cs dosyasında CodedUITestMethod yöntemini bulun, sağ tıklatın ve Testleri Çalıştır'ı seçin.

    Kodlanmış UI testi çalışırken, SimpleWPFApp görülebilir. Bir önceki yordamda yaptığınız adımları oluşturur. Ancak, test CheckBox denetimi için onay kutusunu seçmeyi denerken, Test sonuçları penceresi testin başarısız olduğunu gösterir. Bu, testin onay kutusunu seçmeye çalışmasından, ancak ilerleme çubuğu %100 olacak şekilde tamamlanana kadar CheckBox denetiminin devre dışı olduğunun farkında olmamasından kaynaklanır. Kodlanmış arayüz testleri için mevcut çeşitli UITestControl.WaitForControlXXX() yöntemlerini kullanarak, bunu ve benzeri sorunları düzeltebilirsiniz. Sonraki yordamı bu testin başarısız olmasına neden olan sorunu düzeltmek için WaitForControlEnabled() yöntemini kullanmayı gösterir. Daha fazla bilgi için bkz. Kayıttan Yürütme Sırasında Belirli Olaylar için Kodlanmış UI Testlerini Bekletme.

Kodlanmış Kullanıcı Arabirimi Testini Düzenleme ve Yeniden Çalıştırma

  1. Test Sonuçları penceresinde başarısız testi sağ tıklatın ve Test Sonuçları Ayrıntılarını Görüntüle'yi seçin.

    CodedUITestMethod1 [sonuçlar] görüntülenir.

  2. Hata Yığını İzlemesi bölümünde, TestProject1.UIMap.SimpleAppTest() öğesinin yanındaki ilk bağlantıyı tıklatın.

    Kodda vurgulanan hata noktasını içeren UIMap.Designer.cs dosyası açılır:

    // Select 'CheckBox' check box
    uICheckBoxCheckBox.Checked = this.SimpleAppTestParams.UICheckBoxCheckBoxChecked;
    
  3. Bu sorunu düzeltmek için WaitForControlEnabled() yöntemini kullanarak bu yolda devam etmeden önce kodlanmış UI testinin CheckBox denetiminin etkin olmasını beklemesini sağlayabilirsiniz.

    Uyarı notuUyarı

    UIMap.Designer.cs dosyasını doğrudan değiştirmeyin. UIMap - Kodlanmış UI Test Oluşturucusu kullanarak kodu her oluşturduğunuzda, UIMapDesigner.cs dosyasında yaptığınız herhangi bir kod değişikliğinin üzerine yazılır. Kayıtlı bir yöntemi değiştirmeniz gerekiyorsa, yöntemi UIMap.cs dosyasına kopyalayıp yeniden adlandırmanız gerekir. UIMap.cs dosyası, UIMapDesigner.cs dosyasındaki yöntemleri ve özellikleri geçersiz kılmak için kullanılabilir. Kodlanmış UITest.cs dosyasındaki orijinal yönteme referansı kaldırıp yeniden adlandırılan yöntem adıyla değiştirmelisiniz.

  4. UIMapDesinger.cs dosyasından tüm SimpleAppTest yönteminin kodunun tamamını seçin ve kopyalayın.

  5. Çözüm Gezgini'nde, UIMap.cs dosyasını açın.

  6. SimpleAppTest yönteminin kodunu UIMap kısmi sınıfına yapıştırın.

  7. SimpleAppTest() olan yöntemi ModifiedSimpleAppTest() olarak yeniden adlandır

  8. Aşağıdaki kullanım deyimini dosyaya ekleyin:

    using Microsoft.VisualStudio.TestTools.UITesting.WpfControls;
    
  9. Aşağıdaki WaitForControlEnabled() yöntemini önceden tanımlanmış sorunlu kod satırından önce ekleyin.

    uICheckBoxCheckBox.WaitForControlEnabled();
    
    // Select 'CheckBox' check box
    uICheckBoxCheckBox.Checked = this.SimpleAppTestParams.UICheckBoxCheckBoxChecked;
    
  10. CodedUITest1.cs dosyasında CodedUITestMethod yöntemini bulun ve ya SimpleAppTest() yöntemine yapılan başvuruyu yeniden adlandırın ya da derleme dışı bırakın ve sonra yeni ModifiedSimpleAppTest() ile değiştirin:

    [TestMethod]
            public void CodedUITestMethod1()
            {
                // To generate code for this test, select "Generate Code for Coded UI Test" from the shortcut menu and select one of the menu items.
                // For more information on generated code, see https://go.microsoft.com/fwlink/?LinkId=179463
                //this.UIMap.SimpleAppTest();
                this.UIMap.ModifiedSimpleAppTest();
            }
    
  11. Yapı menüsünde, Çözümü Derle'yi tıklatın.

  12. CodedUITestMethod yöntemini sağ tıklayın ve Testleri Çalıştır'ı seçin.

  13. Bu kez kodlanmış UI testi testteki tüm adımları başarıyla tamamlar ve Test Sonuçları penceresinde Geçildi görüntülenir.

SimpleWPFApp içinde Denetimi Yeniden Düzenleme

  1. MainWindow.xaml dosyasındaki Tasarımcı'da düğme denetimini seçin.

  2. Özellikler penceresinin üst kısmında, Button öğesinin yanındaki button1 değerini seçin ve değeri buttonA olarak değiştirin.

  3. Yapı menüsünde, Çözümü Derle'yi tıklatın.

  4. Test menüsünde Windows'u seçin ve sonra Test Görünümü'nü tıklatın.

  5. Test Görünümü'nde Test Adı sütununun altındaki CodedUITestMethod1 öğesini seçin ve ardından araç çubuğundaki Seçimi Çalıştır'ı tıklatın.

    Kodlanmış UI testi button1 olarak UIMap öğesinde başlangıçta eşlenen düğme denetimini konumlandıramadığından test başarısız. Yeniden düzenleme kodlanmış UI testlerini bu anlamda etkileyebilir.

  6. Test Sonuçları penceresinde başarısız testi sağ tıklatın ve Test Sonuçları Ayrıntılarını Görüntüle'yi seçin.

    CodedUITestMethod1 [sonuçlar] görünür.

  7. Hata Yığını İzlemesi bölümünde, TestProject1.UIMpa.SimpleAppTest() öğesinin yanındaki ilk bağlantıyı tıklatın.

    UIMap.Designer.cs dosyası açılır. Hata noktası kodda vurgulanır:

    // Click 'Start' button
    Mouse.Click(uIStartButton, new Point(27, 10));
    

    Bu yordamın başındaki kod satırının, yeniden düzenlenmeden önceki UIMap adı olan UiStartButton öğesini kullanıp kullanmadığına dikkat edin.

    Sorunu düzeltmek için UIMap'e yeniden işlenmiş denetimi Kodlanmış UI Test Oluşturucusu kullanarak ekleyebilirsiniz. Testin kodunu, kodu kullanmak için sonraki yordamda gösterildiği şekilde güncelleştirebilirsiniz.

Yeniden Düzenlenmiş Denetimi Eşleme ve Kodlanmış UI Testini Düzenleme ve Yeniden Çalıştırma

  1. CodedUITest1.cs dosyasındaki CodedUITestMethod1() yönteminde sağ tıklatarak Kodlanmış UI Testi Kodu Üret'i seçin ve Kodlanmış UI Testi Oluşturucu'yu tıklatın.

    UIMap – Kodlanmış UI Test Oluşturucusu görünür.

  2. Daha önce oluşturduğunuz masaüstü kısayolunu kullanarak, daha önce oluşturduğunuz SimpleWPFApp uygulamasını Çalıştırın.

  3. UIMap – Kodlanmış UI Test Oluşturucusu üzerinde artı aracını SimpleWPFApp öğesindeki Başlat düğmesine sürükleyin.

    Başlat düğmesi mavi bir kutu içine alınır ve Kodlanmış UI Test Oluşturucusunun seçili denetim için veriyi işlemesi ve denetim özelliklerini görüntülemesi birkaç saniyesini alır. AutomationUId öğesinin adının buttonA olduğuna dikkat edin.

  4. Denetimin özelliklerinden, UI Denetim Eşlemesi'ni genişletmek için sol üst köşedeki oku tıklatın. UIStartButton1 öğesinin seçildiğinden emin olun.

  5. Araç çubuğunda Kullanıcı Arabirimi Denetim Haritasına denetim ekle'yi tıklatın.

    Pencerenin altındaki durum Seçili denetim UI kontrol eşleşmesine eklendiöğesini görüntüleyerek eylemi doğrular.

  6. UIMap – Kodlanmış UI Test Oluşturucusu üzerinde Kod Oluştur seçeneğini tıklatın.

    Kodlanmış UI Test Oluşturucu – Kod Oluştur yeni bir yönteme gerek olmadığı notuyla görüntülenir ve bu kod yalnızca UI kontrol haritasında değişiklikler olduğunda oluşturulacaktır.

  7. Oluştur seçeneğini tıklatın.

  8. SimpleWPFApp.exe Uygulamasını Kapatın.

  9. UIMap uygulamasını kapatın – Kodlanmış Kullanıcı Arabirimi Test Oluşturucusu.

    UIMap – Kodlanmış UI Test Oluşturucusunun UI kontrol eşlemesi değişikliklerini işlemesi bir kaç saniye alır.

  10. Çözüm Gezgini'nde, UIMap.Designer.cs dosyasını açın.

  11. Oluşturucu kod sınıfı UIMainWindow öğesindeki oluşturucunun alt bölümündeki UIMap.Designer.cs dosyasında Özellikler bölgesini genişletin. public WpfButton UIStartButton1 özelliğinin eklendiğinden emin olun.

  12. UIStartButton1 özelliğinde, Arama Ölçütü bölgesini genişletin. SearchProperties özelliğinin "buttonA" olarak ayarlandığından emin olun:

    public WpfButton UIStartButton1
            {
                get
                {
                    if ((this.mUIStartButton1 == null))
                    {
                        this.mUIStartButton1 = new WpfButton(this);
                        #region Search Criteria
                        this.mUIStartButton1.SearchProperties[WpfButton.PropertyNames.AutomationId] = "buttonA";
                        this.mUIStartButton1.WindowTitles.Add("MainWindow");
                        #endregion
                    }
                    return this.mUIStartButton1;
                }
            }
    

    Şimdi yeni eşlenen denetimi kullanmak için kodlanmış kullanıcı arabirimini değiştirebilirsiniz. Önceki yordamda işaret edildiği gibi, kodlu UI testindeki herhangi bir yöntemi ya da özelliği geçersiz kılmak istiyorsanız, bunu UIMap.cs dosyasında yapmalısınız.

  13. UIMap.cs dosyasına bir oluşturucu ekleyin ve UIStartButton özelliğinin SearchProperties özelliğini, AutomationID özelliğini bir "buttonA": değeriyle kullanmak üzere belirtin.

    public UIMap()
            {
                this.UIMainWindowWindow.UIStartButton.SearchProperties[WpfButton.PropertyNames.AutomationId] = "buttonA";
            }
    
  14. Yapı menüsünde, Çözümü Derle'yi tıklatın.

  15. Test Görünümü'nde Test Adı sütununun altındaki CodedUITestMethod1 öğesini seçin ve ardından araç çubuğundaki Seçimi Çalıştır'ı tıklatın.

    Bu kez, kodlanmış UI testi testteki tüm adımları başarıyla tamamlar. Test Sonuçları Penceresi'nde Geçti durumunu göreceksiniz.

Ayrıca bkz.

Görevler

Kodlanmış UI Testi Nasıl Oluşturulur

Kavramlar

Kullanıcı Arayüzü ile Otomatik UI Testlerini Test Etme

Kodlanmış UI Testleri ve Eylem Kayıtları için Desteklenen Yapılandırmalar ve Platformlar

Diğer Kaynaklar

İle çalışmaya başlama WPF Tasarımcı