
Testng nedir? Testng intellij idea kurulum ve testng örnek uygulama
- Select a language for the TTS:
- Turkish Female
- Turkish Male
- Language selected: (auto detect) - TR
Play all audios:

TESTNG NEDIR ? İsmi _NEXT GENERATION TEST_ kelimelerinden türetilmiş , Cédric Beust tarafından oluşturulmuştur. TestNG , JUnit ve NUnit hatlarında geliştirilen bir test çerçevesidir. JUnit
ve NUnit’e göre kullanımını daha güçlü ve daha kolay hale getiren bazı yeni işlevler sunar. Başlıca özellikleri ; * Notasyonlar * Testlerin kendine has Thread’lerde koşabilmesi * Multithread
Safe Test Kodları / Multi thread (Çoklu Akış) test desteği * Esnek test konfigürasyonu * @DataProvider notasyonu sayesinde Data Driven Test * Parametrik yönteme destek * IDE’ler için Plugin
desteği * Daha ileri esneklik için BeanShell desteği * Kendi içerisinde loglama desteği * Annotation (ek açıklama) desteği. * Daha fazla nesne yönelimli geliştirme. * Entegre sınıfları test
etmeyi destekler. * Esnek çalışma zamanı yapılandırması sağlar. * Bağımlılık testi desteği. TestNG tüm test kategorilerini kapsayacak şekilde tasarlanmıştır: ünite, işlevsel, uçtan uca,
entegrasyon, vb., Ve JDK 5 veya daha üstünü gerektirir. Java’da en bilindik test koşturma aracı denince aklımıza JUnit gelir. TestNG ise Multi thread (Çoklu Akış) test desteği, Notasyonlar
ve hata mesajlarının daha detaylı bir şekilde gösterilmesi gibi özellikleri ile JUnit’e sağlam bir rakip olma yolunda ilerlemektedir. TESTNG KURULUM Öncelikle https://mvnrepository.com/
adresini tıklayınız. Arama kısımına TestNG yazıp, SEARCH butonuna basalım. Altta çıkan TestNG’ ye baktıktan sonra Karşımıza çıkan Son sürüm TestNG’ yi tıklayalım. Karşımıza gelen ekrandaki
jar dosyasını indirelim. Dependency kısımını da kopyalayıp , pom.xml dosyamızın içine yapıştırmamız gerekecektir. > <dependency> > <groupId>org.testng</groupId> >
<artifactId>testng</artifactId> > <version>7.0.0</version> > <scope>test</scope> > </dependency> Aşağıdaki gibi pom.xml dosyamızı açıp,
<dependencies> </dependencies> aralığında yukarıda gördüğünüz kodu yapıştırabiliriz. Bu işlemden sonra File >> Project Structure seçeneğine basalım. Java version seçtikten
sonra alttaki JARS OR DIRECTORIES seçeneğine basalım. Buradan az önce indirmiş olduğumuz jar dosyası bilgisayarımızda nereye kayıt ettiysek oradan seçelim ve OPEN butonuna basalım. Apply
>> OK butonlarına basalım. Ana ekranımızda sol taraftaki External Libraries içinde eklediğimiz testng.jar dosyamızın görünmesi gerekir. Kod içerisinde test koşturumu için kullanılan
notasyonlar JUnit ‘den farklı olacaktır bu notasyonları İmport etmemiz gerekir; Kurulum işlemleri bu kadar artık testlerinizi TestNG çerçevesi ile koşturabilirsiniz. TESTNG ÖRNEK TEST TestNG
çerçevesi ile bir örnek yazalım. Instagram Login örneğini birlikte oluşturalım. Öncelikle Java class oluşturalım. Kodları aşağıda bırakıyorum. package TestNG.test; import
org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.remote.DesiredCapabilities; import org.testng.annotations.AfterTest; import
org.testng.annotations.BeforeTest; import org.testng.annotations.Test; import java.util.concurrent.TimeUnit; import static org.openqa.selenium.By._name_; import static
org.openqa.selenium.By._xpath_; public class TestNG { protected WebDriver driver; public static String _loginUrl _=
"https://www.instagram.com/accounts/login/?source=auth_switcher"; @BeforeTest public void setUp() { try { DesiredCapabilities capabilities = DesiredCapabilities._chrome_();
System._setProperty_("webdriver.chrome.driver", "/Users/nesli/Example/Driver/chromedriver"); driver = new ChromeDriver(capabilities);
driver.manage().window().maximize(); driver.manage().deleteAllCookies(); //dynamic wait driver.manage().timeouts().pageLoadTimeout(30,
TimeUnit._SECONDS_); driver.manage().timeouts().setScriptTimeout(30, TimeUnit._SECONDS_); driver.manage().timeouts().implicitlyWait(30, TimeUnit._SECONDS_); } catch
(Exception e) { e.printStackTrace(); } } @Test public void Instagram() { try { driver.get(_loginUrl_);
driver.findElement(_name_("username")).sendKeys("[email protected]"); Thread._sleep_(1000);
driver.findElement(_name_("password")).sendKeys("123456"); Thread._sleep_(1000);
driver.findElement(_xpath_("/html[1]/body[1]/span[1]/section[1]/main[1]/div[1]/article[1]/div[1]/div[1]/div[1]/form[1]/div[4]")).click(); Thread._sleep_(1000); }
catch(InterruptedException e){ e.printStackTrace(); } } @AfterTest public void tearDown() throws Exception { } } pom.xml dosyası kodları ; <?xml
version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion>
<groupId>TestNG.test</groupId> <artifactId>Example</artifactId> <version>1.0-SNAPSHOT</version> <name>Example</name> <!-- _FIXME
change it to the project's website _--> <url>http://www.example.com</url> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>org.testng</groupId>
<artifactId>testng</artifactId> <version>7.0.0</version> <scope>test</scope> </dependency> <dependency>
<groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency>
<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>2.48.2</version>
</dependency> </dependencies> <build> <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins> <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle --> <plugin>
<artifactId>maven-clean-plugin</artifactId> <version>3.1.0</version> </plugin> <!-- default lifecycle, jar packaging: see
https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging --> <plugin>
<artifactId>maven-resources-plugin</artifactId> <version>3.0.2</version> </plugin> <plugin>
<artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> </plugin> <plugin>
<artifactId>maven-surefire-plugin</artifactId> <version>2.22.1</version> </plugin> <plugin>
<artifactId>maven-jar-plugin</artifactId> <version>3.0.2</version> </plugin> <plugin>
<artifactId>maven-install-plugin</artifactId> <version>2.5.2</version> </plugin> <plugin>
<artifactId>maven-deploy-plugin</artifactId> <version>2.8.2</version> </plugin> <!-- site lifecycle, see
https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle --> <plugin> <artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version> </plugin> <plugin> <artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.0.0</version> </plugin> </plugins> </pluginManagement> </build> </project> Yukarıda göründüğü gibi testimizi
koşturduğumuz zaman başarı ile ilk örneğimiz TestNG çerçevesi ile çalışacaktır. Bir sonraki yazımda görüşmek üzere..