Başa Dönün

En İyi 5 Python Framework’ü


Optimist Hub Team 03/06/2019


2019'da Test Otomasyonu İçin En İyi 5 Python Framework'ü

2018 yılında en iyi programlama dili olarak seçildikten sonra Python hala istatistikleri yükselmeye devam ediyor. Şu anda Tiobe tarafından yayınlanan endekse göre, Java ve C'den hemen sonra en iyi 3. programlama dili olarak yer alıyor. Bu dilin kullanımı arttıkça Python'a dayanan test otomasyon frameworklerinin popülaritesi de artmaktadır. Açıkçası, geliştiriciler ve test uzmanları, projeleri için en iyi frameworkü seçme konusunda biraz kafa karışıklığı yaşayacaklar.

Birini seçerken, pek çok şeyi, frameworkün senaryo kalitesini, test durumunun sadeliğini, modülleri çalıştırma ve zayıflıklarını bulma tekniğini yargılamanız gerekir.  Bu, 2019’da test otomasyonu için en iyi beş Python frameworkünü ve bunların dezavantajlarının yanı sıra avantajlarını karşılaştırmanıza yardımcı olma girişimidir. Böylece ihtiyaçlarınıza göre test otomasyonu için ideal Python frameworkünü seçebilirsiniz.

 

Robot Framework'ü

Çoğunlukla kabul testine dayalı geliştirme ve kabul testlerine yönelik geliştirme için kullanılan Robot Framework, en iyi Python frameworklerinden biridir. Python kullanılarak geliştirilmiş olmasına rağmen .net tabanlı IronPython ve Java tabanlı Jython ile de çalışabilir. Python frameworkü olarak Robot, tüm platformlarda uyumludur. Windows, MacOS veya Linux.

 

Ön Koşullar Nelerdir?

Her şeyden önce, Robot frameworkü(RF) yalnızca Python 2.7.14 veya yüklü herhangi bir sürümü olduğunda kullanabilirsiniz. Günümüzde Python 3.6.4 kullanılmasına rağmen, RF'nin resmi blogunda sunulan kod parçacıkları, gerekli tüm değişikliklerden oluşan uygun notların eklendiğinden emin olacaktır.

Ayrıca "pip" veya python paket yöneticisi kurmanız gerekir.

Geliştiriciler arasında popüler olan framework PyCharm Community Edition'dır. Kod parçacıkları IDE'ye bağlı olmadığından, daha önce üzerinde çalıştığınız herhangi bir IDE'yi kullanabilirsiniz.

 

Robotun Avantajları ve Dezavantajları Nelerdir?

Robotun diğer Python frameworkleri üzerinde bir test otomasyon frameworkü olarak avantajlarının ve dezavantajlarının neler olduğuna bir bakalım.

 

Artılarını şöyle sıralayabiliriz:

  • Anahtar kelime odaklı test yaklaşımı kullanarak, test edicilerin kolayca okunabilir test durumları oluşturmasına yardımcı olarak otomasyon sürecini kolaylaştırır.
  • Test veri sözdizimi kolayca kullanılabilir.
  • Genel araçlardan ve test kitaplıklarından oluşan, tek tek öğelerin ayrı projelerde kullanılabileceği geniş bir ekosisteme sahiptir.
  • Framework, birçok API'ye sahip olduğu için oldukça genişletilebilir.

Robot Framework'ü, bir Selenyum Izgarası aracılığıyla paralel testler yapmanıza yardımcı olur. Ancak, bu özellik yerleşik değildir.

 

Eksileri

  • Robot Framework çok uygun sesler veriyor ancak kişiselleştirilmiş HTML raporları oluşturmak söz konusu olduğunda zor. Ancak, Robot Frameworkü kullanarak hala xUnit formatlı kısa raporlar sunabilirsiniz.
  • Robot çerçevesinin bir diğer kusuru da paralel testlerin yetersizliğidir.

 

Robot Sizin İçin En İyi Python Test Frameworkü mü?

Eğer otomasyon alanında acemiyseniz ve geliştirme konusunda daha az deneyime sahipseniz, Robotu en iyi Python frameworkü olarak kullanmak, yerleşik kütüphanelerden zengin olduğu ve test odaklı bir DSL kullanmasını gerektirdiği için kullanımı en kolay olan pytest veya pyunit'ten daha kolaydır. Bununla birlikte, karmaşık bir otomasyon frameworkü geliştirmek istiyorsanız, pytest veya Python kodunu içeren herhangi bir başka frameworke geçmek daha iyidir.

Robot frameworkünde yeniyseniz, Robot frameworkünü kullanarak ilk otomasyon komut dosyanızı çalıştırmanız için atın değerinde bir kaynak paylaşıyoruz:

https://www.lambdatest.com/support/docs/display/TD/Robot+with+Selenium+-+Running+Robot+Automation+Scripts+on+LambdaTest+Selenium+Grid

 

Pytest

Her türlü yazılım testi için kullanılan pytest, test otomasyonu için bir başka Python frameworküdür. Açık kaynaklı ve öğrenmesi kolay olan araç, KG ekipleri, geliştirme ekipleri, bireysel uygulama grupları ve açık kaynak projelerinde kullanılabilir. “Assert yeniden yazma” gibi faydalı özelliklerinden dolayı, Dropbox ve Mozilla gibi büyük çekimler de dahil olmak üzere internetteki çoğu proje en küçüğünden (Pyunit) en pytest'e geçti. Derin bir dalış yapalım ve bu Python Framework'ü hakkında neyin özel olduğunu bulalım.

 

Ön Koşullar Nelerdir?

Python'daki çalışma bilgilerinden başka, pytest'in karmaşık bir şeye ihtiyacı yoktur. Tek ihtiyacınız olan bir komut satırı arayüzü, python paket yöneticisi ve geliştirme için bir IDE olan çalışan bir masaüstü.

 

Pytest'in Avantajları ve Dezavantajları Nelerdir?

Python test topluluğunda, pytest'in gelmesinden önce, geliştiriciler testlerini büyük sınıflara dahil etti. Bununla birlikte, test süitlerini daha önce olduğundan çok daha kompakt bir şekilde yazmayı mümkün kıldığından pytest tarafından bir devrim yaratıldı.

Diğer test araçları, geliştiricinin veya test cihazının bir hata ayıklayıcı kullanmasını veya günlükleri kontrol etmesini ve belirli bir değerin nereden geldiğini algılamasını gerektirir. Pytest, test senaryolarını ve içindeki tüm değerleri saklayabilmenizi sağlar. Son olarak hangi değerin başarısız olduğunu ve hangi değerin iddia edildiğini size bildirecek şekilde yazmanıza yardımcı olur.

Genelge koduna bu kadar ihtiyaç duyulmadığından testlerin yazılması ve anlaşılması daha kolaydır.

Fikstür, test fonksiyonunuza bir argüman ekleyerek kullanabileceğiniz fonksiyonlardır. Görevleri değerleri döndürmektir. Pytest'te, diğerlerinden bir armatür kullanarak modüler yapabilirsiniz. Birden fazla armatür kullanmak, test parametrelerini yeniden yazmadan tüm parametre kombinasyonlarını kapatmanıza yardımcı olur.

Pytest geliştiricileri, frameworkü genişletilebilir kılan bazı yararlı eklentiler yayınladı. Örneğin, pytest-xdist, farklı bir test çalıştırıcısı kullanmadan paralel test yapmak için kullanılabilir. Ünite testleri ayrıca herhangi bir kod kopyalanmadan da parametrelendirilebilir.

Geliştiricilere, test senaryosunu yazmayı daha basit ve hatalara daha az eğilimli kılan bazı özel rutinler sunar. Kod ayrıca kısalır ve kolayca anlaşılabilir hale gelir.

 

Eksilerini toparlamak gerekirse;

Özel rutinlerin pytest tarafından kullanılması, uyumluluktan ödün vermeniz gerektiği anlamına gelir. Test senaryolarını rahatça yazabileceksiniz, ancak bu test senaryolarını başka bir test frameworküyle kullanamazsınız.

 

Pytest Sizin İçin En İyi Python Framework'ü Mü?

Öncelikle, tam teşekküllü bir dil öğrenerek başlamalısınız, ancak bir kez onu kullanmaya başladığınızda, statik kod analizi, çoklu IDE desteği ve en önemlisi etkili test senaryoları yazmak gibi tüm özellikleri alacaksınız. İşlevsel test senaryoları yazmak ve karmaşık bir framework geliştirmek için, UnitTest'ten daha iyidir, ancak amacınız basit bir framework geliştirmekse, faydaları Robot framework ile biraz benzerdir.

Pytest'i sizin için en iyi Python frameworkü olarak görüyorsanız, pytest ve Selenium WebDriver kullanarak otomasyon test etmek için bir rehber: https://www.lambdatest.com/blog/test-automation-using-pytest-and-selenium-webdriver/

 

UnitTest, PyUnit olarak da bilinir.

Unittest veya PyUnit, Python ile birlikte gelen ünite testi için standart test otomasyon frameworküdür. JUnit'ten oldukça ilham aldı. İddia yöntemleri ve tüm temizleme ve kurulum rutinleri TestCase temel sınıfı tarafından sağlanır. TestCase alt sınıfındaki her bir yöntemin adı “test” ile başlar. Bu, test durumları olarak çalıştırmalarına izin verir. Yükleme yöntemlerini ve TestSuite sınıfını gruba kullanabilir ve testleri yükleyebilirsiniz. Birlikte, özelleştirilmiş test koşucuları oluşturmak için bunları kullanabilirsiniz. JUnit ile yapılan Selenyum testi gibi unittest, en küçük sml raporlamayı kullanma ve XML raporları oluşturma özelliğine de sahiptir.

 

Ön Koşullar Nelerdir?

UnitTest varsayılan olarak Python ile birlikte geldiğinden bu tür bir önkoşul bulunmamaktadır. Bunu kullanmak için, Python çerçevesi hakkında standart bilgiye ihtiyacınız olacak ve ek modüller kurmak istiyorsanız, geliştirme için bir IDE ile birlikte pip kurulumu yapmanız gerekecektir.

 

Avantajları Nelerdir?

Standart Python kütüphanesinin bir parçası olarak Unittest'i kullanmanın birkaç avantajı vardır.

  • Geliştiriciler, içerik ile birlikte geldiği için herhangi bir ek modül kurmaları gerekmez.
  • Unittest, xUnit'in türevidir ve çalışma prensibi diğer xUnit frameworklerinde benzer.
  • Bireysel test durumlarını daha basit bir şekilde çalıştırabilirsiniz. Tek yapmanız gereken terminaldeki isimleri belirtmektir. Verimlidir ve test senaryolarının yürütülmesi konusunda frameworkü esnek kılar.
  • Test raporları milisaniye içinde üretilir.

 

Dezavantajları Nelerdir?

  • Genellikle, snake_case python kodlarını adlandırmak için kullanılır. Ancak bu framework Junit'ten çok esinlendiğinden, geleneksel camelCase adlandırma yöntemi devam etmektedir. Bu oldukça kafa karıştırıcı olabilir.
  • Test kodunun amacı bazen belirsizleşir çünkü soyutlamayı çok fazla destekler.
  • Çok miktarda bir genelge kodu gereklidir.

 

PyUnit Sizin İçin En İyi Python Frameworkü Mü?

Pytest, kişisel görüşüme ve diğer Python geliştiricilerinin görüşlerine göre, test edicilerin çok daha kompakt bir şekilde daha iyi otomasyon kodu yazmalarını sağlayan bazı deyimler getirdi. Her ne kadar sonuncusu varsayılan bir test otomasyon frameworkü olarak gelse de, çalışma prensibi ve adlandırma kurallarının standart Python kodlarından biraz farklı olması ve çok fazla kazan plakası gerekliliği olması, Python testi otomasyon frameworkünü tercih etmemesini sağlamıştır.

PyUnit'i en iyi Python frameworkü olarak kullanmayı düşünüyorsanız, burada otomatik çapraz tarayıcı testi için PyUnit ve Selenium'un kullanımını gösteren bir eğitim verilmiştir.

 

Behave

Geliştiricileri, iş katılımcılarını ve kalite analistlerini aralarında işbirliği yapmaya teşvik eden en son Çevik (Agile) tabanlı yazılım geliştirme metodolojisi olan davranış odaklı gelişimin farkındayız. Bu konuda çalışan ekibin BDD testini herhangi bir komplikasyon olmadan yürütmesine izin veren en iyi Python frameworklerinden biridir. Test durumları basit bir okunaklı bir dilde yazılır ve daha sonra yürütme sırasında koda yapıştırılır. Behave, davranış özellikleri tarafından tasarlanır ve ardından adımlar diğer test senaryoları tarafından yeniden kullanılır.

 

Ön Koşullar Nelerdir?

  • Behave'i kurmadan önce, herhangi bir Python sürümünü 2.7.14'ün üstüne kurmalısınız.
  • Behave ile çalışmak için Python paket yöneticisi veya pip gereklidir.
  • Bir geliştirme ortamı, ihtiyacınız olan son ve en önemli şeydir. Pek çok geliştirici tarafından tercih edilen Pycharm'i veya seçtiğiniz herhangi bir IDE'yi kullanabilirsiniz.

 

“Behave” Avantajları ve Dezavantajları Nelerdir?

Diğer tüm davranışlar test frameworklerinde olduğu gibi, Behave’ın avantajına ilişkin görüş de kişiden kişiye değişir. Behave kullanmanın genel avantajlarına ve dezavantajlarına bir göz atalım.

 

Artıları Nedir?

  • Sistem davranışı, yarı-biçimsel bir dil ve davranışı organizasyonda istikrarlı tutan bir alan sözlüğü ile ifade edilir.
  • Benzer özelliklere sahip farklı modüller üzerinde çalışan ekipler uygun şekilde koordine edilmiştir.
  • Yapı taşları her zaman her türlü test çalışmasını yapmaya hazırdır.
  • Muhakeme ve düşünme, daha iyi ürün özellikleriyle sonuçlanan ayrıntılı olarak sunulur.
  • Menfaat sahiplerinin veya yöneticilerin, teknik özelliklerin benzer bir formatı nedeniyle KG ve Dev'lerin çıktısı konusunda daha iyi netlikleri vardır.

 

Eksileri Nedir?

Tek dezavantajı, sadece kara kutu testi için iyi çalışmasıdır.

 

Behave Sizin İçin En İyi Python Framework'ü Mü?

Dediğimiz gibi, Behave (Python framework) sadece kara kutu testi için en iyisidir. Web testleri, kullanım örnekleri sade bir dilde tanımlanabildiğinden harika bir örnektir. Bununla birlikte, entegrasyon testi veya birim testi için behave iyi bir seçim değildir, çünkü ayrıntı yalnızca karmaşık test senaryoları için komplikasyonlara neden olacaktır. Geliştiriciler, hem test ediciler, hem de pytest-bdd'yi önerir.

 

Lettuce

Lettuce ve Python dayalı bir basit ve kullanımı kolay davranış odaklı otomasyon aracıdır. Lettuce’un (Marul) temel amacı, davranışa dayalı gelişimin ortak görevlerine odaklanmak, süreci daha basit ve eğlenceli hale getirmektir.

 

Ön Koşullar Nelerdir?

Bir IDE ile birlikte minimum Python 2.7.14 kurmanız gerekecektir. Pycharm veya istediğiniz herhangi bir IDE kullanabilirsiniz. Ayrıca, testleri çalıştırmak için, python paket yöneticisini kurmanız gerekecektir.

Yukarıdaki makalede, farklı test prosedürlerine dayanarak 2019'da test otomasyonu için en iyi 5 Python frameworkü hakkında inceleme yaptık. Belirtilen özelliklerden, fonksiyonel testler için Pytest'in en iyisi olduğu sonucuna varabiliriz. Ancak Python tabanlı otomasyon testinde yeniyseniz, Robot Framework başlamak için harika bir araçtır. Her ne kadar özellikler sınırlı olsa da, kolay yoldan ilerlemenizi sağlayacaktır.

 

Avantaj ve Dezavantajları Nelerdir?

Öncelikler avantajlarından bahsedelim;

  • Diğer BDD test çerçeveleri gibi, Lettuce’da geliştiricilerin birden fazla senaryo oluşturmasını ve özellikleri basit bir dilde tanımlamasını sağlar.
  • Özellikler benzer formatta olduğundan, Dev ve QA ekipleri uygun şekilde koordine edilmiştir.
  • Kara kutu testi için, Lettuce davranış odaklı test vakalarını çalıştırmak için oldukça kullanışlıdır.

 

Peki eksileri nelerdir?

Lettuce'u Python çerçevesi olarak kullanmanın tek bir dezavantajı var. Davranış odaklı testlerin başarılı bir şekilde yürütülebilmesi için, dev ekipler, KG ve paydaşlar arasında iletişim gereklidir. Devamsızlık ya da iletişim boşluğu süreci belirsiz hale getirecek ve her takımdan sorular sorulabilir.

Umarız bu bilgiler ışığında en iyi test aşamalarını gerçekleştirirsiniz. Kolaylıklar dileriz.

367 Okunma   3 Beğeni
Bu makale faydalı mıydı?
Optimist Hub Team

Optimist Hub Team

Optimist Hub; yazılım, tasarım ve pazarlama yetenekleri ile işletmelere büyük dijital çözümler sunan, müşteri deneyimi odaklı 360 Dijital Ajans.

Görüşleriniz

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Önerilen Yazılar