Selenium ile Test Senaryoları Oluşturma
Web uygulamalarınızın kullanım adımlarını kaydederek test senaryoları oluşturmanızı ve bu senaryoları otomatik çalıştırmanızı sağlayan Selenium ile ilgili daha önceden Devnot’ta bir yazı yayınlamıştım. http://devnot.com/2015/test-otomasyon-araci-seleniumu-taniyalim adresinden ulaşabileceğiniz bu yazıda kısaca Selenium’un farklı araçları ve kullanımları anlatılıyor.
Selenium, browser üzerinden yapmış olduğunuz işlemleri otomatize ederek test işlemlerinin kısa sürede yapılmasını sağlar. Yapılan bu testleri kaydederek geriye dönük yapılan testlerin kontrolü sırasında veya aynı test işlemini tekrardan yapmak yerine var olanı tekrardan çalıştırarak geliştirmiş olduğunuz uygulamalarınızı kolay ve hızlı bir şekilde test edebiliyorsunuz.
Bu yazının amacı, Selenium’u kullanarak bir web uygulamasında nasıl test senaryosu oluşturabileceğinize göz atmak. Örnek için Google hesabına giriş yapılan ekranı kaydedeceğiz. Başlayalım:
Not: Yazıdaki resimlerin üzerine tıklayarak detayları daha yakından görebilirsiniz.
Firefox’a Selenium eklentisini kurduysanız web sayfasına girdikten sonra Selenium’u açıp Record tuşuna basmamız gerekiyor. Ardından web sayfasına kullanıcı adınızı, şifrenizi yazıyorsunuz. Selenium siz Record tuşuna bastıktan sonra web sayfasında yapılan tüm hareketleri(input alanlarına veri girme, butonlara tıklama… gibi) kaydediyor. Bu şekilde test senaryomuzu hazırlamış oluyoruz.
Stop butonuna tıklayıp kayıt işlemini bitirebilirsiniz. Open butonlarıyla da tüm senaryoyu veya belirli adımları tekrar çalıştırabilirsiniz. Üstteki resmin sol kısmındaki Table bölümünde yaptığımız işlemlerin adımlarını görebilirsiniz.
Bu şekilde hazırlanan test case’ini kaydederek daha sonra tekrar çalışmasını sağlayabilirsiniz. Kaydetmek için menüden Save Test Case seçeneğini tıklayabilirsiniz. Geçmişte kaydettiğiniz test case’lerini de Open seçeneğinden açarak tekrar çalışmasını sağlayabilirsiniz.
Tekrar çalıştıracağınız test senaryolarında önceki testlerde kullandığınız veri girişlerini değiştirmek isterseniz aşağıdaki resimde görüleceği üzere Selenium, Table bölümünde olası alanları değiştirmenize olanak sağlıyor. Böylece aynı test senaryosunu farklı verileri kullanarak çalıştırıp testlerinizi yapabilirsiniz.
Hazırladığımız testi case’nin HTML çıktısını aynı penceredeki Source tabından görüntüleyebilirsiniz.
Yaptığımız örnekte belli bir akış doğrultusunda ilerleyerek işlemlerimizi yapıyorduk. Fakat Selenium’un inceliklerinden bir tanesi de akışa ek olarak Selenium command’lerinden parametreler ekleyip, bu parametrelere uygun değerler atayarak işlemler yapmanıza olanak sağlaması. Ben bu örnekte “assertTextPresent” parametresini kullandım. Siz de bu parametleri kendinize uygun bir şekilde düzenleyebilir, kullanabilir ve test edebilirsiniz.
Kullanımı oldukça basit olan Selenium’u sadece test uzmanlarının değil yazılım geliştiricilerin de çok işine yarayacağını söyleyebiliriz. Şöyleki geliştirdiğiniz bir form üzerinde onlarca input alanı olduğunu düşünün. Bu tarz bir formun doğru çalıştığını görebilmek için bazı zamanlar onlarca kez çalıştırıp içerisindeki alanları doldurup testler yapmak zorunda kalırsınız. Halbuki Selenium ile bir kez doldurduğunuz formu kaydederseniz sonraki testleri hızlıca yapıp önemli zaman kazanabilirsiniz. Artık geriye kalan sürede başka işlere bakabilir veya bir çay-kahve molası verebilirsiniz
2 Comments
oguz
20 Ekim 2016 at 10:57Merhaba Recep Bey,
Selenium hakkında sormak istediğim bazı şeyler var. Öncelikle;
Bizim yaptıgımız işlemleri kaydediyor. Daha sonra hızlı bir şekilde aynı işlemleri yapıyor. Ancak kriter kontollerini nasıl sağlıyor. Mesela bi field var type text olacak ama ben value kısmından text yerine number yazdım. Bunun hatalı olduğunu bana nasıl belirtecek yada bu iş kuralını selenium nasıl tanıyacak.
Recep
21 Ekim 2016 at 14:41Oğuz bey merhaba,
İlk olarak Selenium u ne şekilde kullandığınız önemli, Selenium Client API’ yi mi kullanıyorsunuz. Yoksa Selenium Web Driver’ ımı kullanıyorsunuz? Client API’ yi kullanıyorsanız ilk olarak http://docs.seleniumhq.org/download/ Selenium Client’ı indirmeniz gerekiyor ardından projenize referanceları http://docs.seleniumhq.org/docs/appendix_installing_dotnet_driver_client.jsp sitesinden indirerek uygulamanızda kullanabilirsiniz. Web Driver kullanıyor iseniz inputları selenium tarafında girip çalıştırdıktan sonra uygulamanızı test ederken eğer ki number alanına string veya string alanına number yazılmışsa uygulamanızın uyarı vermesi lazım. Burdaki amaç aynı işlemi tekrar tekrar yapmaktansa sadece küçük değişikliklerle birbirinden farklı testler yapmaktır.
Saygılarımla,