Bu makalede, iletişim kutusu testleri için pytest ve selenium kullanımını öğreneceksiniz Bu araçlar sayesinde kolaylıkla testler yapabilir ve sorunları tespit edebilirsiniz Okumaya devam edin ve testlerinizde başarıya ulaşın!
İletişim kutusu testleri, web uygulamalarında olmazsa olmaz bir özelliktir. Bu testler, kullanıcının iletişim kutusu aracılığıyla belirli bir işlemi gerçekleştirmesini sağlayacak şekilde tasarlanır ve bu işlemin doğru bir şekilde gerçekleşmesini test eder. Ancak bu testleri manuel olarak yapmak oldukça zahmetlidir ve zaman alıcıdır. Bu nedenle, otomasyon kullanarak bu testleri gerçekleştirmek hem zaman, hem de emek tasarrufu sağlar.
Bu makalede, pytest ve Selenium kullanarak iletişim kutusu testlerini nasıl yazabileceğinizi ve çalıştırabileceğinizi öğreneceksiniz. Selenium, web uygulamalarına otomasyon ekleyen açık kaynaklı bir araçtır. Pytest ise, Python'da yazılan bir test çerçevesidir. Bu iki araç bir araya geldiğinde, web uygulamalarında otomasyon kullanarak iletişim kutusu testleri yazmak oldukça kolay hale gelir.
Pytest Kurulumu
Pytest, Python dilinde bir test otomasyon çerçevesidir ve test yazımı, süreci ve raporlama işlemlerini basitleştirir. Pytest'i yüklemek ve yapılandırmak oldukça kolaydır. İşte kullanmanız gereken adımlar:
- Pytest'i yüklemek için pip kullanabilirsiniz. Komut istemcisine "pip install pytest" yazarak yükleyebilirsiniz.
- Pytest'i yapılandırmak için pytest.ini dosyasını kullanabilirsiniz. Bu, bazı yapılandırma ayarlarını içerir ve örneğin testlerin yerini ve benzersiz işaretleyicileri ayarlayabilirsiniz.
- Pytest ayrıca "conftest.py" dosyası adı verilen bir dosyayla yapılandırılabilir. Bu dosya, pytest yapılandırma dosyasıdır ve test koşullarını düzenler.
- Pytest ile testleri çalıştırmak için "pytest" komutunu kullanabilirsiniz. Bu komut, testlerinizi otomatik olarak bulacak ve çalıştıracaktır.
Pytest kurulumu ve yapılandırması oldukça basittir ve testlerinizi otomatize etmenizi sağlar. Bu şekilde, testlerinize daha az zaman ve emek harcayabilir ve verimliliğinizi artırabilirsiniz.
Selenium Kurulumu
Selenium, web uygulamalarını otomatik olarak test etmek için kullanılan bir araçtır ve Python ile kullanımda oldukça popülerdir. Selenium WebDriver'ı kullanarak iletişim kutusu testleri yazmanız için öncelikle yüklemeniz ve yapılandırmanız gerekir.
İlk önce, Selenium WebDriver'ı yüklemek için pip aracını kullanabilirsiniz. Aşağıdaki komutu kullanarak yükleme işlemini gerçekleştirebilirsiniz:
pip install selenium
WebDriver objesini oluşturmak için aşağıdaki kodu kullanabilirsiniz:
from selenium import webdriverdriver = webdriver.Firefox()
Kodda, Firefox kullanarak bir WebDriver objesi oluşturuldu. Ancak, farklı bir tarayıcı kullanmak isterseniz, sadece tarayıcı adını webdriver.Chrome() veya webdriver.Edge() gibi değiştirmeniz yeterlidir.
Ayrıca, WebDriver objesi oluştururken kullanabileceğiniz farklı yapılandırma seçenekleri de vardır. Örneğin, tarayıcı penceresi boyutunu ve yüksekliğini veya varsayılan indirme dizinini belirtebilirsiniz.
Bir sonraki adım, oluşturulan WebDriver objesini kullanarak sayfaları gezmeniz ve iletişim kutularını test etmenizdir. Pytest-fixtures veya POM gibi farklı araçları kullanarak testleri yazabilirsiniz. Aynı zamanda, testleri çalıştırmak ve sonuçlarını raporlamak için farklı araçları da kullanabilirsiniz.
Bağlanmak için WebDriver Olusturma
İletişim kutusu testleri için Selenium WebDriver’ın kullanımı oldukça yaygındır. Bu nedenle, testleri oluştururken bir WebDriver objesi oluşturmanız gerekebilir. Python dosyasında WebDriver objesini nasıl oluşturacağınızı öğrenmek birkaç adımda mümkündür.
WebDriver objesi oluşturmak için kullanacağınız ilk adım, test senaryosunu çalıştırmak için hangi tarayıcıya ihtiyacınız olduğuna karar vermektir. Birçok seçenek mevcut olsa da, önce başlıca iki browser seçeneği olan Firefox ve Chrome'un nasıl yapılandırılacağını inceleyebilirsiniz.
İlk adımda Firefox WebDriver'ı oluşturmanız için gereken adımlara bir göz atalım. Öncelikle, webdriver bağlanmak istediğiniz web sitesinin URL'si ile iletişim kurmalıdır. Sonrasında aşağıdaki kodu kullanarak Firefox tarayıcısı için webdriver objesini oluşturabilirsiniz:
from selenium import webdriver |
---|
driver = webdriver.Firefox() |
Bir sonraki adım, Chrome WebDriver'ı oluşturmaktır. İlk önce, anahtar kelime ‘Chrome’ kullanılarak webdriver objesi oluşturmanız gerekir. Ardından, webdriver’ı tıpkı Firefox tarayıcısı için olduğu gibi kullanabilirsiniz. Aşağıdaki kod, Chrome WebDriver'ı oluşturmak için kullanılabilir:
from selenium import webdriver |
---|
driver = webdriver.Chrome() |
WebDriver objesi oluşturma işlemi bu kadar basit! Ancak, test senaryolarınızda kullanmak için WebDriver objelerinizi değişiklik yapmanız gerekebilir. Tarayıcı yapılandırması gibi özelliklerle ilgili olarak Selenium Python dokümantasyonunu ziyaret edebilirsiniz.
Firefox WebDriver'ı Oluşturma
Firefox WebDriver'ı Oluşturma:
Firefox WebDriver, Firefox tarayıcısını kontrol etmek için kullanılan bir araçtır. Firefox WebDriver'ı oluşturmak için öncelikle Selenium WebDriver'ı kurmanız gerekir. Daha sonra, Python dosyanıza WebDriver objesini oluşturmak için aşağıdaki adımları izleyebilirsiniz:
Adım 1: İlk olarak, Selenium WebDriver'ını kurduğunuzdan emin olun. Ardından, aşağıdaki gibi WebDriver modülünü içe aktarın:
- from selenium import webdriver
Adım 2: Şimdi, Firefox tarayıcısında çalışan bir WebDriver oluşturmak için aşağıdaki komutu kullanın:
- driver = webdriver.Firefox()
Adım 3: WebDriver'ı oluştururken aşağıdaki yöntemlerle yapılandırma seçenekleri de mevcuttur:
Seçenek | Açıklama |
---|---|
executable_path | Geçerli bir yürütülebilir dosyanın yolunu belirtir. |
firefox_binary | Firefox uygulamasının yolunu belirtir. |
firefox_options | Firefox açılış seçeneklerini belirtir. |
Firefox WebDriver'ı oluşturduktan sonra, ilgili sayfadaki iletişim kutusu testlerini Selenium ve Pytest kullanarak yazabilir ve test edebilirsiniz.
Chrome WebDriver'ı Oluşturma
Chrome WebDriver'ı oluşturmak için aşağıdaki adımları takip edebilirsiniz:
- ChromeDriver resmi websitesine gidin ve indirin.
- İndirilen dosyayı açın ve içindeki chromedriver.exe dosyasını proje dosyalarınızın olduğu yere kopyalayın.
- Python dosyanızda aşağıdaki kodu kullanarak ChromeDriver'ı oluşturun:
from selenium import webdriver |
---|
driver = webdriver.Chrome() |
Yapılandırma seçenekleri arasında, "executable_path" parametresini kullanarak Chromedriver'ın yüklü olduğu dizini belirtebilirsiniz. Ayrıca, "desired_capabilities" parametresini kullanarak tarayıcının hangi versiyonunu kullanacağını belirleyebilirsiniz.
İletişim Kutusu Testleri Yazma
Pytest, iletişim kutusu testleri için çeşitli seçenekler sunar. Bu seçeneklerden bazıları aşağıdaki gibi sıralanabilir:
- Test Dosyaları Oluşturma: Pytest, testleri modüler hale getirmenizi sağlayan ayrı bir test dosyası oluşturmanıza olanak tanır.
- Parametrize Fonksiyonu: Bu özellik, farklı girdilerle testleri yürütmenizi sağlar. Böylece testleriniz daha kapsamlı ve ayrıntılı olur.
- Fixture Fonksiyonları: Pytest'in kendi 'fixture' fonksiyonları, testlerinizi yönetmenizi ve kod tekrarını en aza indirmenizi sağlar. Fixture'lar, testlerinizi otomatikleştirmenize ve yapılandırmanıza olanak tanırlar.
- Kod Düzeyinde Tanımlamalar: Testleri otomatikleştirmek için, Selenium WebDriver ile sayfaları açma ve işlemleri gerçekleştirme gibi kod düzeyinde tanımlamalar yapmanız gerekebilir. Bu kod düzeyinde tanımlamaların nasıl yapılacağına ilişkin örnekler hazırlanabilir.
- Page Object Model'i Kullanma: Testlerinizi daha modüler hale getirmek için Page Object Model (POM) kullanabilirsiniz. POM, testlerin okunabilirliğini artırır ve kod tekrarını önler. POM ayrıca, birden fazla sayfada kullanılan bileşenleri aynı anda yönetmenizi sağlar.
Pytest'in sunduğu bu seçenekler, iletişim kutusu testlerinizi daha etkili hale getirir ve testlerin otomatikleştirilmesine yardımcı olabilir.
Pytest-Fixture Kullanma
Pytest-Fixture, pytest ile iletişim kutusu testleri yazarken kullanabileceğiniz bir araçtır. Bu araç, test verilerinin oluşturulması, test koşullarının sağlanması ve tekrar kullanılabilir test kodlarının yazılmasını sağlar.
Pytest-Fixture kullanarak iletişim kutusu testlerini yazmak için öncelikle fixtures fonksiyonunu tanımlamanız gerekiyor. fixtures fonksiyonları, test koşulları için gerekli verileri oluşturmak ve hazırlamak için kullanılır.
Bir fixtures fonksiyonu, @pytest.fixture dekoratörü ile tanımlanır ve parametre olarak bir test fonksiyonu alır. fixtures fonksiyonları, parametre olarak alınan test fonksiyonlarının çalışmasından önce çalışır ve test verilerini hazırlar. Bu şekilde, test fonksiyonları fixtures fonksiyonunu kullanarak hazırlanan verileri kullanabilirler.
fixture fonksiyon adı | Açıklama |
---|---|
browser | Web tarayıcısını başlatır ve WebDriver objesi döndürür. |
login | Web sayfasına giriş yapar ve oturum açık tutar. |
logout | Oturumu kapatır ve tarayıcıyı kapatır. |
Bu tabloda, yaygın olarak kullanılan üç farklı fixtures fonksiyonu yer almaktadır. 'browser' fonksiyonu, tarayıcıyı başlatır ve WebDriver nesnesini döndürür. 'login' fonksiyonu, bir web sayfasına giriş yapar ve oturum açık tutar, 'logout' fonksiyonu ise oturumu kapatır ve tarayıcıyı kapatır.
Bir fixtures fonksiyonu tanımladıktan sonra, bunları pytest dosyasında kullanabilirsiniz. fixtures fonksiyonlarını kullanmak istediğiniz test fonksiyonlarına, hangi fixtures fonksiyonuna ihtiyaç duyduklarını belirtmek için parametre olarak verin. Pytest, test fonksiyonunu fixtures fonksiyonuna bağlar ve test koşullarını hazırlar.
Pytest-Fixtures ile iletişim kutusu testlerini yazmak, testlerinizi daha iyi organize etmenizi ve daha az kod yazmanızı sağlar. Bu özellik, testlerinizi daha kolay anlaşılır ve bakımı daha kolay hale getirir. Ayrıca, testlerinizin daha hızlı çalışmasını sağlayabilir ve testlerin otomatikleştirilmesi sürecini hızlandırabilir.
Page Object Model Kullanma
Pytest ve Selenium kullanarak iletişim kutusu testlerini otomatikleştirmenin bir başka yolu da Pate Object Model (POM) kullanmaktır. POM, bir web uygulamasının farklı bölümlerini ve pencerelerini temsil eden sayfa nesnelerinin bir modelidir. Bu yöntem, bir test senaryosunun belirli sayfalarına erişmek için kullanacağı nesnelerin bir koleksiyonunu sağlar ve böylece kodun daha bakımı kolay ve yeniden kullanılabilir hale gelmesini sağlar.
Bir POM tasarlamak için, her sayfanın nesnelerini tanımlamak ve bunları bir sayfa sınıfında yerleştirmek gereklidir. Bu nesneler, bir kullanıcı etkileşime girdiğinde kullanabileceği tüm öğeleri temsil eder. Örneğin bir iletişim kutusu, metin kutuları, düğmeler ve seçim kutuları gibi öğelerden oluşabilir. POM kullanarak bir bölümün işlevselliğini test etmek için önce sayfanın nesnelerine erişmek gerekir.
Adım | Kod | Açıklama |
---|---|---|
1 | from selenium.webdriver.common.by import By | By sınıfını içe aktarma |
2 | class ContactPage: | ContactPage adında bir sınıf oluşturun |
3 | name_field = (By.NAME, 'your-name') | name_field öğesini tanımlayın ve by.NAME öğesi kullanarak 'your-name' olarak adlandırın. |
4 | email_field = (By.NAME, 'your-email') | email_field öğesini tanımlayın ve by.NAME öğesi kullanarak 'your-email' olarak adlandırın. |
5 | subject_field = (By.NAME, 'your-subject') | subject_field öğesini tanımlayın ve by.NAME öğesi kullanarak 'your-subject' olarak adlandırın. |
6 | message_field = (By.NAME, 'your-message') | message_field söğesni tanımlayın ve by.NAME öğesi kullanarak 'your-message' olarak adlandırın. |
7 | submit_button = (By.CLASS_NAME, 'wpcf7-form-control wpcf7-submit') | submit_button öğesini tanımlayın ve CLASS_NAME öğesi kullanarak 'wpcf7-form-control wpcf7-submit' olarak adlandırın. |
Görüldüğü gibi, her öğe By sınıfını kullanarak tanımlanır. İletişim kutusu sınıfının, 'name_field', 'email_field', 'subject_field', 'message_field' ve 'submit_button' adında beş öğesi vardır. Bu öğeler bir test senaryosunda kullanıldıklarında, koşullara göre belirli işlemler gerçekleştirilebilir.
POM kullanımı, iletişim kutusu senaryosuna veya herhangi bir test senaryosuna uygulandığında, sayfaların etkileşimlerini ve özelliklerini ayrı olarak tanımlar, böylece kodda daha az yinelenen kod yazma ihtiyacı vardır. Bu, uzun dönemde önemli ölçüde daha az zaman ve çaba gerektirir ve test senaryolarının daha kolay bakımını sağlar.
Test Çalıştırma
Pytest ve Selenium'u kullanarak oluşturduğunuz iletişim kutusu testlerini çalıştırmanız ve sonuçları görüntülemeniz gerekiyor. İşte kullanabileceğiniz bazı araçlar:
- Pytest: Pytest, testlerinizi çalıştırmak ve sonuçlarını göstermek için kullanabileceğiniz kolay bir araçtır. Basit bir komut kullanarak tüm testleri çalıştırabilir ve sonuçları raporlayabilirsiniz.
- Selenium Grid: Birden fazla tarayıcı ve işletim sistemi üzerinde testleri çalıştırmak için Selenium Grid'i kullanabilirsiniz. Bu, testlerinizi daha geniş bir kapsamda ve daha hızlı bir şekilde yapmanıza olanak tanır.
- Sauce Labs: Sauce Labs, tarayıcıları ve cihazları buluta yükleme seçeneği sunar. Bu, testlerinizi birçok farklı cihazda çalıştırmanıza ve sonuçları online olarak görüntülemenize olanak tanır.
- ReportPortal: ReportPortal, tüm test sonuçlarınızı merkezi bir konumda yönetmenize olanak tanıyan açık kaynaklı bir raporlama aracıdır. Bu, test çalıştırmalarınızın sonuçlarını daha iyi takip etmenize yardımcı olur.
Bu araçlar, iletişim kutusu testlerinizin sonuçlarını daha iyi takip etmenize, raporlamanıza ve yürütmenize yardımcı olan bir dizi seçenek sunar.
Özet
İletişim kutusu testleri, web uygulamaları için oldukça önemlidir. Bu testleri otomatikleştirmeyi sağlamak, testlerin tekrarlanabilirliğini artırır ve insan hatalarını en aza indirir. Bu noktada, Selenium ve pytest kullanarak iletişim kutusu testleri yazmak oldukça etkili bir yöntemdir.
Pytest, basit ve kullanımı kolay bir test çerçevesidir. Web sürücüsü olarak Selenium'u kullanarak iletişim kutusu testleri yazmak için ise Python öğrenmek gereklidir. Selenium kurulumu, WebDriver nesnesinin yaratılması ve testlerin çalıştırılması dahil olmak üzere birkaç adımdan oluşur. Pytest-fixtures ve Sayfa Nesnesi Modeli (POM), Selenium kullanarak iletişim kutusu testleri yazmaya yardımcı olmak için kullanılan farklı yöntemlerdir. Bu tekniklerle, iletişim kutusu testlerinin yanı sıra birçok başka test de otomatikleştirilebilir.
En önemlisi, Selenium ve pytest kullanarak iletişim kutusu testleri yazmak, testleri otomatikleştirerek zaman kazandırır ve verimliliği artırır. Bu teknikler sayesinde daha fazla test daha kısa bir sürede yazılabilir ve hatalar daha hızlı tespit edilerek düzeltilebilir.