Ana içeriğe atla

Kayıtlar

Şubat, 2020 tarihine ait yayınlar gösteriliyor

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