Ana içeriğe atla

Kayıtlar

Cypress Notlar-1

 Notlar npm (node package manager), javascript betik dili için geliştirilmiş olan ve Node.js'in standart olarak kabul ettiği bir paket yönetim sistemidir. npm komut satırından çalıştırılır ve uygulamalar için bağımlılık yönetimi sağlar.   npm'yi yükleyip cypress'i yüklemeyi tavsiye ediyorlar. Cypress'i yazdığınız kodun içine yükleyin. npm install -D cypress   Yüklendikten sonra cypress npx cypress open, cypress in test runner ını açıyor.    Cypress için hangi IDE'yi kullandığınız önemli değil ama genelde Visual Studio Code kullanılıyor.   Cypress la test yaparken güvenlikle alakalı hata alırsan cypress.json dosyasına aşağıdaki yazılır. { "chromeWebSecurity" = false }    Buraya hep aynı url ye gideceksen baseURL olarak tanımlama yapabilirsin. Açılacak tarayıcının boyutunu buradan ayarlayabilirsin.    Fixtures klasörüne kodunda kullanacağın sabit veriyi yazabilirsin. Yeni bir json dosyası oluşturup aşağıdaki gibi ekleyebilirsin. (swagla...

TestNG - Listeners

TestNG raporlarını ya da çıktılarını özelliştirmek için kullanılan bir interface. 12 tane listener bulunmakta. IAnnotationTransformer , IAnnotationTransformer2 , IConfigurable , IConfigurationListener , IExecutionListener, IHookable , IInvokedMethodListener , IInvokedMethodListener2 , IMethodInterceptor , IReporter, ISuiteListener, ITestListener Herhangi bir listener kullanılmak istenildiğinde, bunu yapmanın çoğunlukla kullanılan iki yolu vardır.  İlki; ilgili listener'ı implement edecek class'ı oluşturmak gerekir. Class'ın içine kullandığınız IDE ilgili listener'ın fonksiyonları getirir. Kullanmak istediklerinize kodunuzu eklersiniz. Daha sonra ise asıl test kodunuzun olduğu class koduna, class kısmından önce @Listeners(paketIsmi.listenerSınıfınınAdi.class) eklemesi yapmanız gerekir.   Diğeri ise, eğer bu listener'i birden fazla sınıf için kullanacaksanız bu yolu kullanmanız gerekir karışıklığı önlemek için, o da testng.xml'de önceki ma...

TestNG - Bağımlılık (Dependency)

Bazı durumlarda yazdığınız test kodunda birbirine bağımlı test metotları olabilir. TestNG, bu bağımlılıkları xml dosyanızda ya da kodunuzda belirtmenize (annotation ile) olanak sağlar. TestNG'de iki çeşit bağımlılık vardır: Hard dependency 'de testinizin bağımlı olduğu diğer testlerin hepsinin başarılı olması gerekir. Eğer bir tanesi bile başarısız olduysa bağımlı olan testler çalışmaz, atlanır.  Soft dependency 'de ise bağımlı olunan testlerden başarısız olan olsa bile diğer testler çalışır. Bu bağımlılık çeşidini kullanmak için @Test (alwaysRun=true) ifadesini eklemek gerekir. Aşağıda, Hard dependency'nin kodda belirtilmesine örnek kod bulunmaktadır. Hem metota bağımlılık hem gruba bağımlılık belirtilebilir. @Test public void serverStartedOk() {} @Test( dependsOnMethods = { "serverStartedOk" }) public void method1() {} Bu örnekte, method1() ,serverStartedOk() metoduna bağımlı olarak belirtilmiştir, bu durumda ilk serverStartedOk()...

Selenium - Paralel Execution

Paralel testte, farklı modülleri ya da uygulamaları aynı anda farklı tarayıcılarda çalıştırabiliriz. Seri çalıştırmaya göre testiniz daha kısa sürede koşacaktır. Testng.xml dosyasına paralel olarak çalıştıracağınız kısmı aşağıdaki örnekler gibi yazmalısınız. Thread-count ile test koşturumu için kaç tane thread'in çalışacağını belirtebilirsiniz. <suite name="..." parallel="methods" thread-count="5"> <suite name="..." parallel="tests" thread-count="5"> <suite name="..." parallel="classes" thread-count="5"> <suite name="..." parallel="instances" thread-count="5"> "methods": TestNG farklı thread'lerde bütün test metotlarını çalıştırır. Birbirine bağımlı testler ayrıca farklı threadlerde sıraya uygun olarak çalışır.  "tests": TestNG, xml de belirttiğiniz  <test> etiketindeki bütün metotları aynı threa...

TestNG - Gruplar

TestNG'deki grup özelliği istediğiniz fonksiyonları istediğiniz gruba ayırmanızı ya da toplamanızı sağlar. Bu özellik JUnit'de bulunmamaktadır.  Grup özelliğiyle istediğiniz gruptaki fonksiyonları çalıştırabilirsiniz. Grup içinde grup da tanımlayabilirsiniz.  Bu özelliği kullanabilmek için kendiniz aşağıdaki gibi bir xml dosyası oluşturmalısınız.  Kodu çalıştırırken de bu xml dosyasını koşturmanız gerekmektedir. <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">         <suite name="Suite">                     <test name="Demo">                              <groups>                                         <run>       ...

TestNG Groups - NullPointerException

Eğer TestNG grup özelliğini kullanırken xml'i çalıştırdığınızda NullPointerException alıyorsanız; setUp metodunuzdan önce kullandığınız grupları @BeforeGroups annotation ı ile tanımlayabilirsiniz. @BeforeGroups (groups ={"giris","dogrulama"}) gibi.

TestNG - Öncellikler

TestNG'de çalıştıracağınız kodda birbirine bağımlı @Test ler varsa öncelik kullanarak çalışacak testin sırasına karar verebilirsiniz. TestNG'de herhangi bir öncelik kullanmazsanız alfabetik sıraya göre testleri çalıştırır. @Test (priority=2) gibi bir öncelik ifadesi kullanırsanız, öncelik değeri düşük olandan koşturmaya başlar. Aynı öncelik değerine sahip iki test varsa, alfabetik olarak sıralamaya koyar ve testi koşturur. Koşturacağınız testte hem öncelik değeri olan hem de olmayan testler varsa; önce öncelik değeri olmayan testleri alfabetik sıraya göre daha sonra öncelik değeri düşük olandan başlayarak koşturur. Yine aynı öncelik değeri olan testleri alfabetik sırayla koşturur. TestNG'de büyük/küçük harf duyarlılığı olduğu için "priority" 'nin küçük yazılması gerekir yoksa hata verir. Örnek: Koşturacağımız testte iki grup olduğunu varsayalım. Testleri hem gruplara ayıralım hem öncelik verelim. TestNG'nin bu testleri çalıştırma sırası aşağıda...