C# ile Web Testlerini Otomatikleştirme: PuppeteerSharp ve SpecFlow Kullanarak
Web uygulamaları günümüzde işletmeler için olmazsa olmaz bir araç haline geldi. Bu uygulamaların kalitesi ve performansı işletmelerin başarısını doğrudan etkiler. Bu nedenle, web uygulamalarını geliştirme ve yayınlama sürecinde test otomasyonu son derece önemlidir.
Bu makalede, C# ile web testlerini otomatikleştirmek için kullanılan güçlü bir araç olan PuppeteerSharp ve SpecFlow’u ele alacağız. Bu araçlar, web uygulamalarınızın güvenilirliğini, performansını ve kullanıcı deneyimini iyileştirmek için size kapsamlı bir test otomasyon çerçevesi sunmaktadır.
PuppeteerSharp Nedir?
PuppeteerSharp, Google’ın geliştirdiği ve açık kaynak kodlu bir Node.js kütüphanesi olan Puppeteer’ın C# portudur. PuppeteerSharp, web tarayıcılarını başlatmayı, sayfalara gezinmeyi, kullanıcı etkileşimlerini simüle etmeyi, ekran görüntüleri ve PDF’ler oluşturmayı ve daha fazlasını yapmayı sağlayan bir kütüphanedir.
PuppeteerSharp, test otomasyonunda kullanılabilen birçok özellik sunar:
- Web Sayfası Gezintisi: PuppeteerSharp ile web sayfalarına kolayca erişebilir, linklere tıklayabilir, formları doldurabilir ve sayfalar arasında geçiş yapabilirsiniz.
- Kullanıcı Eylemlerini Simüle Etme: Kullanıcı tıklamaları, fare hareketleri, klavyeden girişler gibi kullanıcı eylemlerini simüle ederek gerçekçi test senaryoları oluşturabilirsiniz.
- Ekran Görüntüsü ve PDF Oluşturma: PuppeteerSharp, web sayfalarından istediğiniz anda ekran görüntüsü ve PDF dosyası oluşturabilmenizi sağlar.
- Web Sayfası İçeriğini Çıkarma: Web sayfalarındaki metin, resim ve diğer verileri kolayca alabilirsiniz.
- Çerez Yönetimi: Çerezleri ekleyip kaldırarak web uygulamalarında farklı oturumları simüle edebilirsiniz.
SpecFlow Nedir?
SpecFlow, Behaviour Driven Development (BDD) yaklaşımını destekleyen bir test otomasyon aracıdır. BDD, yazılım geliştirme sürecine kullanıcı hikayeleri ve senaryoları dahil ederek daha anlaşılır ve iş odaklı bir yaklaşım sağlar. SpecFlow, bu hikayeleri ve senaryoları özel bir dilde (Gherkin) tanımlamanıza ve ardından bunları C# kodunuza bağlamanıza olanak tanır.
SpecFlow’un avantajlarından bazıları şunlardır:
- Kolay Anlaşılabilir Test Senaryoları: Gherkin dili, doğal dil benzeri bir sözdizimi kullanarak test senaryolarını okumayı ve anlamayı kolaylaştırır.
- İletişim ve İş Birliği: BDD, geliştirme ekibi, test ekibi ve iş analistleri arasında daha iyi iletişim ve iş birliği sağlar.
- Otomasyon ve Bakım: SpecFlow, test otomasyonunu kolaylaştırır ve test senaryolarının bakımı daha kolay hale getirir.
PuppeteerSharp ve SpecFlow Kullanarak Web Testi Otomasyonu
PuppeteerSharp ve SpecFlow’u kullanarak web testlerini otomatikleştirmek için aşağıdaki adımları izleyebilirsiniz:
1. Proje Kurulumu
Yeni bir C# proje oluşturun ve aşağıdaki NuGet paketlerini yükleyin:
- PuppeteerSharp
- SpecFlow
- SpecFlow.NUnit
2. Test Senaryolarını Yazma
SpecFlow, test senaryolarını Gherkin dilinde yazmanıza olanak tanır. Örneğin, bir web sitesine giriş yapmak için aşağıdaki senaryoyu yazabilirsiniz:
“`gherkin
Özellik: Giriş İşlevi
Senaryo: Başarılı Giriş
Veri:
| Kullanıcı Adı | Şifre |
| admin | 1234 |
Giriş sayfasına git
Kullanıcı adı alanına “admin” yaz
Şifre alanına “1234” yaz
Giriş düğmesine tıkla
Giriş başarılı olmalı
Senaryo: Geçersiz Giriş
Veri:
| Kullanıcı Adı | Şifre |
| test | test |
Giriş sayfasına git
Kullanıcı adı alanına “test” yaz
Şifre alanına “test” yaz
Giriş düğmesine tıkla
Giriş başarısız olmalı
“`
3. Test Adımları için Kod Yazma
Gherkin senaryolarında yazdığınız adımları C# kodunuzda tanımlamanız gerekir. SpecFlow, bu adımları “Step Definition” olarak adlandırır. Aşağıdaki örnekte, “Giriş sayfasına git” adımının kodunu görebilirsiniz:
“`csharp
[Given(@”Giriş sayfasına git”)]
public void GirişSayfasınaGit()
{
// PuppeteerSharp kullanarak giriş sayfasına git
_page.GoToAsync(“https://www.fatihsoysal.com/giris”);
}
“`
4. Testleri Çalıştırma
Test senaryolarınızı SpecFlow’un sağladığı NUnit test çalıştırıcısı ile çalıştırabilirsiniz. Testler başarısız olursa, SpecFlow size hata mesajları ve ek bilgiler sağlayacaktır.
Sonuç
PuppeteerSharp ve SpecFlow kullanarak web testlerini otomatikleştirmek, test süreçlerinizi iyileştirmenize ve web uygulamalarınızın kalitesini artırmanıza yardımcı olur. Bu araçlar, kullanıcı hikayelerini ve senaryolarını test etmeye, hataları erken aşamalarda yakalamaya ve daha kaliteli yazılımlar geliştirmeye olanak tanır.
İpuçları
- Testlerinizi düzenli olarak çalıştırın ve hata mesajlarını dikkatlice inceleyin.
- Test senaryolarınızı belirli ve anlaşılır tutun.
- PuppeteerSharp’ın sunduğu API’leri öğrenmek için belgelerine göz atın. PuppeteerSharp Belgeleri
- Test otomasyonunu geliştirmek için Selenium gibi diğer araçları da kullanabilirsiniz.
Kaynaklar
#Etiketler
Web Testi Otomasyonu, PuppeteerSharp, SpecFlow, C#, BDD, Gherkin, Test Otomasyonu, Web Uygulamaları, Kalite Güvencesi, Yazılım Geliştirme, Fatih Soysal, fatihsoysal.com
