Python ile test otomasyonu yapmanın avantajlarından biri de form doldurma ve gönderme işlemlerini kolaylıkla yapabilmektir Bu, web uygulamalarının testlerinin otomatik hale getirilmesinde büyük bir kullanım kolaylığı sağlar
Form doldurma işlemi için, öncelikle form elementleri belirlenir ve bu elementlere değerler atanır Ardından, formun gönderilmesi işlemi gerçekleştirilir Selenium ile bu işlemler oldukça basittir
Aşağıdaki örnekte, Selenium ve Python kullanarak bir form doldurma işlemi gerçekleştirilmiştir:
from selenium import webdriver
driver = webdriverChrome,drivergethttps://wwwexamplecom
# Form elementlerine değerler atanır,name_element = driverfind_element_by_namename,name_elementsend_keysJohn Doe
email_element = driverfind_element_by_nameemail,email_elementsend_keysjohndoe@examplecom
message_element = driverfind_element_by_namemessage,message_elementsend_keysThis is a test message
# Form gönderme işlemi yapılır,submit_element = driverfind_element_by_xpath//input[@type='submit'],submit_element![]()
Python, test otomasyonu için birçok avantaj sunar. Dil olarak oldukça basit ve anlaşılır bir yapıya sahip olduğu için test otomasyonu için tercih edilen diller arasında yer almaktadır. Ayrıca geniş kütüphane desteği sayesinde test otomasyonu için birçok araç ve kütüphane sunar. Bu özellikler Python'u, test otomasyonu için ideal bir dil haline getirir.
Python'un Test Otomasyonu İçin Avantajları
Python, test otomasyonu için birçok avantaj sunar. Bunların başında dilin kolay anlaşılabilir yapısı gelmektedir. Kolay ve anlaşılır dil yapısı sayesinde, Python'u öğrenmek ve kullanmak için saatlerce ders almak veya öğrenmek zorunda kalmazsınız. Python kodları anlaşılır ve okunaklıdır, bu nedenle yeni başlayanlar için bile anlaşılması oldukça kolaydır.
Bunun yanı sıra, Python'un test otomasyonu için sağladığı diğer bir avantaj ise geniş kütüphane desteğidir. Python ile birlikte birçok hazır araç ve kütüphane kullanarak test otomasyonu gerçekleştirmek oldukça kolaydır. Bu da zaman tasarrufu sağlar ve işinizi daha pratik hale getirir.
Ayrıca, Python ile birlikte Selenium gibi popüler araçlar da kullanılabiliyor. Bu araçlar sayesinde web uygulama testleri kolaylıkla yapılabilir. Bunun yanı sıra, API testleri için de oldukça başarılı bir dil olan Python, bu alanda da birçok araç sunmaktadır. Tüm bu avantajlar, test otomasyonunu Python ile gerçekleştirmenin neden önerildiğini göstermektedir.
Kullanımı Kolay ve Anlaşılır
Python, test otomasyonu için tercih edilen diller arasında önemli bir yere sahiptir. Bunun nedeni, dilin kullanımının oldukça kolay ve anlaşılır olmasıdır. Python dilinin basit yapısı, özellikle test otomasyonu gibi karmaşık bir süreçte çalışmak isteyen kullanıcılar için büyük bir avantaj sağlarken, programlama bilgisi sınırlı olanlar için de kolay bir öğrenme süreci sunar.
Geniş Kütüphane Desteği
Python, test otomasyonu yapılabilecek birçok kütüphane desteği sunmaktadır. Bu kütüphaneler sayesinde, test otomasyonu sırasında birçok işlemi kolaylıkla gerçekleştirebilirsiniz. Örneğin, test senaryolarınızda verileri yönetmek için Pandas kütüphanesini veya testlerinizde zamanlayıcılar kullanarak performans testleri yapmak için Timeit kütüphanesini kullanabilirsiniz.
Bunların yanı sıra, test otomasyonu için sıklıkla kullanılan Selenium web sürücüsü gibi birçok üçüncü taraf kütüphanesi de Python tarafından desteklenmektedir. Bu kütüphanelerin kullanımıyla, web otomasyon testlerinizdeki test senaryolarınızı otomatikleştirebilirsiniz.
Ayrıca, Python'un test otomasyonu için sunabileceği kütüphane desteği, test senaryolarınızı yönetmek, senaryolarınızı yapılandırmak, test durumlarınızı yönetmek, olağan dışı durumlarla başa çıkmak ve hata ayıklama yapmak için de oldukça faydalıdır.
Python ile Selenium Kullanımı
Python ve Selenium kullanarak web sayfası açma ve sayfa içerisindeki elementleri kontrol etmek oldukça kolaydır. Örneğin, aşağıdaki kod ile Google'ın anasayfasını açabiliriz:
from selenium import webdriverbrowser = webdriver.Chrome()browser.get('https://www.google.com')
Bu kod, Selenium ile tarayıcımızı açıp Google'ın anasayfasını yükler. Daha sonra, sayfa içerisindeki elementlere erişebilir ve kontrol edebiliriz. Örneğin, aşağıdaki kod ile Google'ın arama kutusuna "Selenium" yazdırabiliriz:
search_box = browser.find_element_by_name('q')search_box.send_keys('Selenium')search_box.submit()Bu kod, Google'ın arama kutusunu bulur ve içerisine "Selenium" yazdırır. Daha sonra, arama butonuna tıklar ve sonuçları gösterir.
Selenium ile sayfalar arası geçiş yapmak da oldukça kolaydır. Örneğin, aşağıdaki kod ile Google'ın arama sonuçları sayfasına geçiş yapabiliriz:
link = browser.find_element_by_partial_link_text('Selenium - Web Browser Automation')link.click()Bu kod, sayfada "Selenium - Web Browser Automation" başlığına sahip olan bir link bulur ve tıklar. Böylece, Google'ın arama sonuçları sayfasından Selenium'un resmi sitesine geçiş yapmış oluruz.
Yukarıdaki örneklerde de gördüğünüz gibi, Python ve Selenium kullanarak web sayfalarını açmak ve kontrol etmek oldukça kolay ve kullanışlıdır. Bu nedenle, test otomasyonu dünyasında Python ve Selenium kullanımı oldukça yaygındır.
Web Sayfası Açma ve Kontrol Etme
Python ve Selenium kullanarak web sayfası açmak ve sayfa içerisindeki elementleri kontrol etmek oldukça kolaydır. Web sayfası açmak için, selenium.webdriver modülü kullanılır. Öncelikle, web driver'ının indirilmesi gereklidir. Ardından driver'ın path'ı belirtilir. Web driver ile açılan sayfaları yönetmek için browser objesi oluşturulur. Sayfaları yönetmek için kullanılacak işlemler için browser.find_element_by_*(arg) kullanımı yapılır. Burada * yerine kullanılabilecek argümanlar elementlerin id, name, class ve xpath gibi özellikleridir.
- Örnek:
from selenium import webdriverdriver = webdriver.Chrome('PathToChromeDriver') # chrome driver'ın path'i belirtilirbrowser = webdriver.Chrome()# Sayfayı açmak için get() kullanılırbrowser.get("https://www.google.com")# Sayfada arama kutusuna 'selenium' yazılırelem = browser.find_element_by_name("q") # elementin name özelliği kullanılarak aranırelem.send_keys("selenium")# Sayfada arama butonuna tıklanırelem = browser.find_element_by_name("btnK") # elementin name özelliği kullanılarak aranırelem.click()
Form Doldurma ve Gönderme
Python ve Selenium kullanarak web uygulamalarındaki formları otomatik olarak doldurmak oldukça kolaydır. Form elementlerini tanımlayıp, sağlanan alanlara verileri girerek formu doldurabilir ve gönderebilirsiniz. Örneğin, bir kayıt formunu doldurmak istediğinizi varsayalım. Form alanlarını tanımlamak için "find_element_by_name()" veya "find_element_by_id()" gibi Selenium işlevlerini kullanabilirsiniz. Sonrasında bu alanlara veri atayabilirsiniz. Örneğin, bir ad, soyad ve e-posta alanı içeren bir formu doldurmak için, şu kodları kullanabilirsiniz:
first_name = driver.find_element_by_name("first_name")last_name = driver.find_element_by_name("last_name")email = driver.find_element_by_name("email")first_name.send_keys("John")last_name.send_keys("Doe")email.send_keys("johndoe@example.com")
Bu kodda, "driver" değişkeni, üzerinde çalıştığınız web sayfasının WebDriver örneğidir. Bu kod, formun alanlarını "first_name", "last_name" ve "email" olarak tanımlar ve bu alanlara "send_keys()" işlevi ile verileri atar. Formu göndermek için "submit()" işlevini kullanabilirsiniz. Örneğin, yukarıdaki kodun ardından "submit()" işlevini kullanarak formu gönderebilirsiniz:
submit_button = driver.find_element_by_xpath("//button[@type='submit']")submit_button.click()
Bu kodda, "find_element_by_xpath()" işlevi, XPath ifadesi kullanarak sayfadaki bir elementi bulmanızı sağlar. Bu kod ayrıca "click()" işlevini kullanarak formu gönderir.
Python ile API Testleri Yapma
API testleri yapmak için ilk adım, API istekleri göndermektir. Python, requests kütüphanesi ile bu işlemi oldukça kolay hale getirmiştir. requests kütüphanesi, HTTP istekleri yapmak için kullanılan bir kütüphanedir ve birçok özellikle birlikte gelir.
Bir GET isteği göndermek için, requests.get() fonksiyonunu kullanabilirsiniz. Örneğin;
import requestsresponse = requests.get('https://jsonplaceholder.typicode.com/todos/1')print(response.status_code)print(response.json())
Bir POST isteği göndermek için ise, requests.post() fonksiyonunu kullanabilirsiniz. Örneğin;
import requestsdata = {'title': 'foo', 'body': 'bar', 'userId': 1}response = requests.post('https://jsonplaceholder.typicode.com/posts', data=data)print(response.status_code)print(response.json())
Bu örneklerde, requests kütüphanesi kullanılarak bir GET ve bir POST isteği gönderilmiştir. İsteğin gönderildiği adresler, örnek olarak JSONPlaceholder API adresleri kullanılmıştır.
API İstekleri Gönderme
Python ile API istekleri göndermek oldukça basittir. Requests kütüphanesi, bu amaçla kullanabileceğiniz en popüler araçlardan biridir. Requests kütüphanesi, HTTP istekleri göndermek ve yanıtları almak için kullanılır.
İlk olarak, requests kütüphanesini yüklememiz gerekir. Bu, pip (Python paket yöneticisi) kullanarak kolayca yapılabilir:
pip install requests
Bu yapıldıktan sonra, requests kütüphanesini kullanmaya başlayabiliriz. Aşağıdaki örnek, www.example.com adresine bir HTTP GET isteği gönderir ve yanıtın içeriğini yazdırır:
import requestsresponse = requests.get("http://www.example.com")print(response.content)
Bir diğer HTTP yöntemi de POST'tur. Aşağıdaki örnek, www.example.com adresine bir HTTP POST isteği gönderir ve yanıtın içeriğini yazdırır:
import requestsdata = {"param1": "value1", "param2": "value2"}response = requests.post("http://www.example.com", data=data)print(response.content)
Bazı API'lar, kullanıcı adı ve şifre gibi kimlik doğrulama bilgilerini gerektirir. Bu bilgileri, requests kütüphanesinin auth parametresi ile gönderebilirsiniz. Aşağıdaki örnek, bir API'ye kimlik doğrulama bilgileri ile bir HTTP GET isteği gönderir:
import requestsauth = ("username", "password")response = requests.get("http://api.example.com", auth=auth)print(response.content)
Requests kütüphanesi, daha da gelişmiş özellikler sunar. Bunlar, bağlantı zaman aşımı, başlık ve parametreler gibi özellikleri içerir. Daha fazla bilgi için, requests kütüphanesi belgelerine göz atabilirsiniz.
API Yanıtlarını Kontrol Etme
API testleri sırasında, API yanıtlarının doğru şekilde dönmesini kontrol etmek oldukça önemlidir. Bu kontrol işlemi için Python, oldukça güçlü bir dil ve hızlı bir şekilde yanıtları kontrol etmenize olanak tanır. Python ile API yanıtlarını kontrol etmek için birçok kütüphane ve araç mevcuttur. Örneğin, requests kütüphanesi API isteklerini göndermek ve yanıtlarını almak için kullanılır. Ayrıca, unittest kütüphanesi API testleri yazmak için oldukça yaygın olarak kullanılır.
Bir diğer önemli nokta ise, API yanıtlarının doğruluğunu kontrol etmek için Test Senaryoları oluşturmanızdır. Test senaryoları, API yanıtı için beklenen sonuçları tanımlamanıza ve yanıtın veri türü, değeri ve yapısal bütünlüğünü kontrol etmenize olanak tanır. Test senaryoları, API yanıtlarının doğru dönmesini garantiye alır ve ayrıca yanıtların değişikliklerle birlikte çalışıp çalışmadığını kontrol etmek için kullanılabilir.
Özetle, Python ile API yanıtlarını kontrol etmek oldukça kolaydır ve doğru yanıtların dönmesini garantiye almak için test senaryoları kullanmanız önerilir.