PHP ile Selenium kullanarak UI testleri nasıl yazılır? Bu makalede, Selenium ve PHP'yi kullanarak UI testleri yazmanın temellerini öğreneceksiniz İleri düzey testleri otomatik hale getirmek artık daha kolay!
Web uygulamalarının kullanıcı arayüzü (UI) testleri, uygulamanın doğru çalıştığını, performansının iyi olduğunu ve kullanılabilirliğinin yeterli seviyede olduğunu kontrol etmek için büyük önem taşır. Bu nedenle, bu testlerin doğru bir şekilde yapılması oldukça önemlidir. Bu makalede, PHP ve Selenium kullanarak web uygulama arayüzü testlerinin nasıl yazılacağı ele alınacaktır.
PHP, web uygulamaları yazmak için popüler bir programlama dili olarak yaygın bir şekilde kullanılmaktadır. Selenium ise web uygulamalarının otomatik testlerini yapmak için kullanılan açık kaynaklı bir araçtır. Bu iki araç birleştirildiğinde, web uygulamalarının UI testleri yazmak son derece kolay bir hale gelir.
Bu makalede, öncelikle Selenium ve PHP'nin nasıl kurulacağı anlatılacak, daha sonra Selenium WebDriver kullanarak bir web uygulamasının UI testlerinin nasıl yazılacağı örneklerle gösterilecektir. Son olarak, test çıktılarının analiz edilmesinde kullanılabilecek araçlar incelenecektir.
Selenium Nedir?
Selenium, web uygulamalarının otomatik testlerini yapmak için kullanılan açık kaynaklı bir araçtır. Selenium, test otomasyonunun en popüler aracıdır ve büyük bir topluluk tarafından desteklenmektedir. Selenium, web tarayıcısı otomasyonu yapabilen bir araçtır ve birden fazla tarayıcıda çalışabilir.
Selenium, sahte web tarayıcılarının yanı sıra scriptleri ve programları çalıştırmak için kullanılabilen güçlü bir araçtır. Bununla birlikte, Selenium, yalnızca kullanıcı arabirimi üzerinde otomatik testler yapmakla kalmaz, aynı zamanda performans testleri, güvenlik testleri vb. yapmak için de kullanılabilir. Açık kaynak kodlu olması, kodu değiştirme ve özelleştirme seçeneği sunar.
PHP İle Selenium Kurulumu
Web uygulamalarını test etmek için Selenium'ı kullanmak için öncelikle PHP'de kurulum yapmanız ve WebDriver'ı yüklemeniz gerekir. Selenium'ın en önemli bileşenlerinden biri olan WebDriver, web tarayıcısını otomatik olarak kontrol etmek için kullanılır. PHP ve Selenium'ı kullanarak otomatik testler yazarken, tarayıcı işlemlerini anlamak oldukça önemlidir. Bu nedenle WebDriver, tarayıcı işlemlerini otomatikleştirmek için kullanılır.
WebDriver'ı yüklemek için, PHP kütüphanesi ile birleştiren birkaç dosyayı indirmeniz gerekir. Daha sonra, indirdiğiniz dosyaları dosya yolunuza eklemeniz gerekir. Selenium'un web sayfasında tam olarak hangi dosyaları nereye koymak gerektiği açıklanmaktadır.
Ayrıca, testleri yapmak için birden çok web tarayıcısı kullanmak gerekebilir. Selenium Grid, testlerinizi farklı tarayıcılarda ve platformlarda çalıştırmak için kullanabileceğiniz bir araçtır. Selenium Grid'in kurulumunu yapmak için, ayrıca birkaç dosyayı indirmeniz ve belirli bir şekilde yapılandırmanız gerekebilir. Bu işlemi gerçekleştirmek için Selenium web sayfasını ziyaret edebilirsiniz.
Selenium WebDriver Kurulumu
Selenium'un web uygulama arayüzlerinin otomatik testlerini yapabilmesi için WebDriver kullanılır. WebDriver, Selenium'un temel bileşenidir ve PHP kütüphanesi ile uyumlu şekilde kullanılabilir. WebDriver'ın yüklenmesi için Composer aracı kullanılabilir. Composer, PHP uygulamalarındaki bağımlılıkları yönetmek için kullanılan bir araçtır.
WebDriver'ın PHP kütüphanesi, SeleniumHQ'un resmi GitHub sayfasından indirilebilir. Kurulum yapılacak dizine giderek, konsol veya komut satırı kullanılarak aşağıdaki komut çalıştırılabilir:
composer require facebook/webdriver
Komutu çalıştırdıktan sonra WebDriver PHP kütüphanesi, proje için kurulacaktır.
WebDriver'ın yüklendiğinden emin olmak için aşağıdaki kod satırı yazılabilir:
use Facebook\WebDriver\WebDriver;
Eğer hata vermiyorsa, WebDriver başarılı bir şekilde yüklenmiş demektir. ChromeDriver da yüklendiği zaman, tam uyumlu WebDriver yüklemesi yapmış olursunuz ve otomatik testleri yazmaya hazırsınız.
Kurulum örnekleri
PHP ile Selenium kullanarak web uygulama arayüzü testleri oluşturmadan önce öncelikle uygun bir kurulum yapılması gereklidir. Selenium ana hatları itibariyle PEAR paketi şeklinde bulunmakla birlikte üçüncü parti araçların kullanılması durumunda doğru ve yapıcı bir kurulum adımı atılmış olacaktır.
Kurulumu başlatmak için aşağıdaki composer.json
dosyası gibi araçları kullanabilirsiniz:
{ "require": { "php-webdriver/php-webdriver": "*" }}
Daha sonra Selenium PHP web sürücüsünü kullanabilmek için yapmanız gerekenleri aşağıdaki şekilde gösteriyoruz:
- WebDriver'ın doğru bir şekilde kurulduğundan emin olun.
- Selenium Server'ı başlatın.
- Selenium'in doğru bir şekilde configure kullanarak bir Uzak Selenium sunucusu adı ve bağlantı noktası belirtin.
- Ardından PHP örneğini çalıştırın ve Selenium sunucusu ile testlerin bağlantısını gerçekleştirin.
Bu adımların yerine getirilmesi ile birlikte Selenium kullanarak web uygulama arayüzü testleri üretebilirsiniz.
ChromeDriver Kurulumu
ChromeDriver, web tarayıcısı üzerinden yapılan testlerde kullanılan bir otomasyon aracıdır ve Selenium WebDriver ile birlikte kullanılabilmektedir. Bu nedenle, ChromeDriver'ın kurulumu öncelikle WebDriver'ın kurulumunu gerektirmektedir.
ChromeDriver'ı sadece indirmek yeterli değildir, ayrıca kurulum adımları doğru bir şekilde tamamlanmalıdır.
- Öncelikle, ChromeDriver resmi web sitesine gidilmeli ve sürüm numarasına uygun olan dosya indirilmelidir.
- Ardından, indirilen dosya çıkarılmalı ve seçilen klasöre yerleştirilmelidir.
- Son olarak, ChromeDriver'ın çalışabilmesi için PATH değişkenine eklenmelidir.
ChromeDriver'ın kurulumu, farklı işletim sistemleri için farklı adımlar gerektirebilir. Bu nedenle, kullanılan işletim sistemine uygun olan kurulum adımlarıyla ilgili detaylı dokümantasyon incelenmelidir.
ChromeDriver kurulumunun doğru bir şekilde yapıldığından emin olmak için,
chromedriver --versionkomutu kullanılabilir. Bu komut, ChromeDriver'ın sürüm numarasını gösterir ve kurulumun başarılı olup olmadığını kontrol etmek için kullanılabilir.
Selenium İle UI Testleri Yazmak
Selenium, web uygulamarının otomatik testleri yapmak için kullanılan açık kaynaklı bir araçtır. UI testleri, kullanıcı deneyimini kontrol etmek için oldukça önemlidir ve Selenium WebDriver bu testlerin yazılması için kullanılır. Kullanıcı arayüzü testleri, web uygulama sayfalarında kullanıcı etkileşimlerinin kontrolünü sağlar ve uygulamanın doğru şekilde çalıştığından emin olmak için kullanılır.
Örneğin, giriş sayfası otomasyon testi, kullanıcıların bir hesap açması ve oturum açması için gereken işlemleri kontrol eder. Bu testte, kullanıcının giriş sayfasına erişeceği, bir hesap açacağı ve ardından oturum açacağı senaryoyu yazarız. Form otomasyon testi ise, bir formda kullanıcının veri girme işlemleri ve kaydetme işlemlerinin kontrolünü sağlar. Bu testte, kullanıcının formu dolduracağı ve verileri kaydedeceği bir senaryo yazarız.
Selenium WebDriver ile testler yazmak oldukça kolaydır. WebDriver, web sayfalarında gezinmek ve etkileşimlerde bulunmak için bir takım yöntemler sağlar. Örneğin, "findElement" yöntemi kullanarak sayfadaki bir ögeleri bulabiliriz. Bu öğeler, ID veya sınıflarının yanı sıra xpath gibi seçicilere de sahiptir.
Örnek Test Senaryosu | |
---|---|
Adım | Eylem |
1 | Web sayfasına git |
2 | Kullanıcı adı ve şifre gir |
3 | Giriş yap butonuna tıkla |
4 | Giriş sayfasına yönlendirildiğini doğrula |
5 | Hesap ayarlarını aç |
6 | Parola değiştirme formuna git |
7 | Parola değiştir ve kaydet |
8 | Parola değiştirildiğini doğrula |
UI testleri otomatikleştirmek, uygulamanın kalitesini artırmak için önemlidir. Bütün senaryolara uygun şekilde otomatik test senaryoları oluşturulduğunda, testler istendiğinde otomatik olarak tekrarlanabilir ve uygulamanın güncellenmesi veya değiştirilmesi gerektiğinde testleri güncellemek de kolay olur.
Giriş sayfası otomasyon testi
Giriş sayfası otomasyon testi, bir web uygulamasının en önemli testlerinden biridir. Bu test, kullanıcıların bir hesap açması ve oturum açması için gereken işlemleri kontrol eder. Bu işlemler, sırasıyla, kayıt olma sayfasına gitmek, kişisel bilgileri doldurmak, e-posta adresi ve şifre belirlemek, kaydetmek ve ardından açılan e-posta kutusundaki aktivasyon linkine tıklamak gibi işlemleri kapsar.
Test, tarayıcıya girilen URL ile başlar ve siteye giriş yapar. Ardından kayıt olma sayfasına yönlendirilir. Kullanıcı, kişisel bilgileri doldurduktan sonra e-posta adresi ve şifre belirler. E-posta aktivasyonu, testin bir sonraki adımıdır. Kullanıcı, e-posta kutusundaki aktivasyon linkine tıklar ve hesap onaylama sayfasına yönlendirilir. Son olarak, kullanıcı, giriş sayfasına yönlendirilir ve oturum açar. Bu adımların her biri, test senaryosunda karşılaşılabilecek olası hataları tespit etmek için kontrol edilir.
Giriş sayfası otomasyon testi, ayrıntılı olduğu kadar karmaşık bir test senaryosudur. Bu nedenle, testin doğru bir şekilde yürütülmesi için gerekenlerin planlanması ve detaylı senaryoların yazılması önemlidir. Bu senaryolar, dikkatli bir şekilde tasarlanmalı ve uygulamaların hangi durumlarda hangi hatalarla karşılaşabileceği dikkate alınarak hazırlanmalıdır.
Form Otomasyon Testi
Form otomasyon testi, kullanıcının bir web formu üzerinde farklı verileri girerek kaydedebilmesini kontrol eder. Test senaryosu, formun doğru bir şekilde yüklendiğini ve kullanıcının formdaki alanları istenilen şekilde doldurarak kaydetme işlemi yapabildiğini içermelidir.
Bu testin amacı, formun çalışma durumunun ve veri kaydetme işleminin başarısını doğrulamaktır. Test senaryosu, formda bulunan tüm alanları el ile ve otomatik olarak doldurmalı, bölümleri ve öğeleri kontrol ederek verilerin doğru bir şekilde kaydedildiğinden emin olmalıdır.
Test adı | Açıklama | Beklenen sonuç | Gerçek sonuç | Durum |
---|---|---|---|---|
Form sayfası açılır | Form sayfası başarılı bir şekilde yükleniyor mu? | Form sayfası yüklenir. | Form sayfası yüklendi. | Başarılı |
Ad alanı doldurulur | Kullanıcının adı alanı doğru bir şekilde doldurabiliyor mu? | Ad alanı doğru bir şekilde doldurulur. | Ad alanı doğru bir şekilde dolduruldu. | Başarılı |
Soyad alanı doldurulur | Kullanıcının soyadı alanı doğru bir şekilde doldurabiliyor mu? | Soyad alanı doğru bir şekilde doldurulur. | Soyad alanı doğru bir şekilde dolduruldu. | Başarılı |
Email alanı doldurulur | Kullanıcının email alanı doğru bir şekilde doldurabiliyor mu? | Email alanı doğru bir şekilde doldurulur. | Email alanı doğru bir şekilde dolduruldu. | Başarılı |
Mesaj alanı doldurulur | Kullanıcının mesaj alanı doğru bir şekilde doldurabiliyor mu? | Mesaj alanı doğru bir şekilde doldurulur. | Mesaj alanı doğru bir şekilde dolduruldu. | Başarılı |
Kaydet butonuna basılır | Kullanıcı verileri kaydedebiliyor mu? | Veriler başarıyla kaydedilir. | Veriler başarıyla kaydedildi. | Başarılı |
Form otomasyon testini yaparken, verileri doğru bir şekilde doldurmak için farklı test senaryoları oluşturabilirsiniz. Örneğin, kullanıcının bütün alanları doldurmadan kaydetme butonuna tıklaması halinde sistem tarafından uyarılma durumu test edilebilir. Bu testler, web uygulamanızın kitlesel kullanımına hazır olup olmadığını doğrulayan önemli bir adımdır.
Test Çıktılarının Analizi
UI testlerinin yazılmasından sonra, test sonuçlarının analiz edilmesi önemlidir. Testlerin çıktılarının nasıl analiz edileceği ve hangi araçların kullanılabileceği hakkında bu bölümde daha fazla bilgi verilecektir.
PHPUnit, web uygulamalarının testleri için PHP'de kullanılan popüler bir çerçevedir. PHPUnit, web uygulamasındaki testlerin sonuçlarını raporlar ve hatayı bulmanıza yardımcı olur. Ayrıca, Selenium Grid, dağıtık bir test çözümü sunar ve testleri farklı tarayıcılarda ve platformlarda çalıştırmaya olanak tanır. Bu özellik, uygulamanın farklı platformlarda ve tarayıcılarda nasıl performans gösterdiğini görmenize imkan tanır.
Test sonuçlarının analizi ayrıca, hızlı ve doğru sonuçlar için veri analizi araçları kullanarak yapılmaktadır. Analitik araçlar ve grafikler, test raporlarını daha yararlı hale getirebilir ve daha doğru kararlar almanızı sağlar. Bu nedenle, test sonuçlarının analizi, web uygulamasının hatalarının tespit edilmesi ve sorunların giderilmesine yardımcı olan önemli bir adımdır.
PHPUnit
PHPUnit, PHP'de birim testi yazmak ve çalıştırmak için kullanılan popüler bir test çerçevesidir. PHPUnit, testlerin sonuçlarını sunar ve test yapısına sahip örnekler oluşturmamıza olanak tanır. PHPUnit, testlerin doğru bir şekilde çalıştığını onaylamak için bütünleştirme testleri için de kullanılabilir.
PHPUnit, mümkün olan en az sürede en yüksek test örtüsünü sağlamak için yönergeler sunar. Böylece, yazdığımız kodun daha az hataya sahip olduğundan emin olabiliriz. PHPUnit'in bir diğer faydası ise, PHP 7.2 ve sonrasını desteklemesidir. Bu nedenle, sürüm uyumluluğu sorunları genellikle oluşmaz.
PHPUnit'in kullanımı oldukça kolaydır ve HTML çıktısı oluşturmamıza olanak tanır. Ayrıca, testlerin hızlı ve otomatik olarak çalışmasını sağlar. PHPUnit'in kullanımı için, örneklerle birlikte PHPUnit kütüphanesi kurulmalı ve oluşturulan testler kendiliğinden çalışacak şekilde yapılandırılmalıdır.
Selenium Grid
Selenium Grid, büyük ölçekli web uygulamaları için tasarlanmış dağıtık bir test çözümüdür. Bir Selenium Grid kümesi, testleri aynı zamanda birçok farklı tarayıcıda ve işletim sisteminde çalıştırmaya olanak tanır. Bu yolla, uygulamanın etkileşimli kullanıcı arayüzünü farklı platformlar ve tarayıcılar üzerinde test edebilirsiniz.
Genellikle, Selenium Grid, farklı işletim sistemleri veya tarayıcılar kullanarak testleri paralel olarak yürütmek için kullanılır. Örneğin, bir testün farklı tarayıcılarda test edilmesi gerekiyorsa, birden fazla bilgisayar belirli bir ağ üzerinde bir Selenium Grid kümesi şeklinde örgütlenebilir.
- Selenium Grid, farklı tarayıcılarda ve işletim sistemlerinde testleri otomatik olarak yürütmeye olanak tanır.
- Büyük ölçekli web uygulamaları için tasarlanmış dağıtık bir test çözümüdür.
- Selenium Grid kümesi, testleri paralel olarak yürütmeyi sağlar.
Selenium Grid, aynı zamanda, farklı test senaryolarının yürütüldüğü çoklu ağ konfigürasyonlarını veya sanal makineleri barındırmak için de kullanılabilir.
Selenium Grid, getirdiği dağıtık test çözümü sayesinde, zaman ve kaynaklar üzerinde önemli bir tasarruf sağlar. Bu nedenle, büyük web uygulamalarının yazılım test süreçleri için önemli bir araçtır.