Selenium - All about testNG frameowrk


testNG is a testing framework helps to run our tests(methods) in a guided manner. 

testNG stands for 'test Next Generation' - as this offers more flexibility over JUnit (another testing framework to run the methods).



What testNG offers:
  • Need not to have test names in sorting order
  • User friendly annotations.
  • Support for data-driven testing(@DataProvider)
  • Support for parameters
  • Group wise test run
  • Parallel test run
  • Allow dependency of one test on another
  • Support to enable or disable the test run 
We will discuss the above one by one.

Note:
testNG starts with assigning the annotations for the methods in a class, which determines the sequence of running the tests.

Annotations
                                           Description                                       
@BeforeSuite
The annotated method will be run before all tests in this suite have run.
@AfterSuite
The annotated method will be run after all tests in this suite have run.
@BeforeTest
The annotated method will be run before any test method belonging to the classes inside the tag is run (from testng.xml)
@AfterTest
The annotated method will be run after all the test methods belonging to the classes inside the is run (from testng.xml)
@BeforeGroups
The list of groups that this configuration method will run before. This method is guaranteed to run shortly before the first test method that belongs to any of these groups is invoked.
@AfterGroups
The list of groups that this configuration method will run after. This method is guaranteed to run shortly after the last test method that belongs to any of these groups is invoked.
@BeforeClass
The annotated method will be run before the first test method in the current class is invoked.
@AfterClass
The annotated method will be run after all the test methods in the current class have been run.
@BeforeMethod
The annotated method will be run before each test method. before each @Test
@AfterMethod
The annotated method will be run after each test method. after each @Test
@Test
A method as part of the test.

2 more annotations we use with the above mentioned annotations:
@Parameters and @dataProvider. will be discussing in the Demo section below.

Each annotation as mentioned above have some common attributes:
dependsOnGroups: The list of groups this method depends on.
dependsOnMethods: The list of methods this method depends on.
enabled: Whether methods on this class/method are enabled.
groups: The list of groups this class/method belongs to.

Each test method (as annoted @Test) have some attributes:
description: The description for this method.
priority: The priority for this test method. Lower priorities will be scheduled first.
alwaysRun: If set to true, this test method will always be run even if it depends on a method that failed.
dataProvider: name of the dataprovider for this test method.

To run the above mentioned annoted tests, we need to create testng.xml file.
Ways to create testng.xml:
  • In Eclipse,  Right click on the project, Select "TestNG" and click on the "Convert to TestNG" which will create an xml file (can give any name, mostly we give testng.xml).
  • Create new xml file and enter the details (see below, and place the file under current project folder)
Sample testng.xml file:
xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="MySuite" parallel="none">
<test name="MyTest">
    <classes>
      <class name="tcPkg.test1"/>
      <class name="tcPkg.test2"/>
      <class name="tcPkg.test3"/>
    </classes>
</test>

In the above xml file, we can provide any name for the suite and test name, but the class name should be exactly same as the 

Note: TestNG classes do not have main() method.

Ways to run the testng.xml file: [Make sure testng.xml is under current project folder]
  • Using Eclipse
          In Eclipse, right click on the project, select Run As -> TestNG Test
  • Using command line
          Make sure you have created one folder (name as lib) under your project folder and place all your required jar  files (selenium and testng related).
          Then go to your project folder (Explorer window), SHIFT and right click on the explorer window, click on "Open command window here", command prompt will open with the current project directory, type the following command to run your testng.xml
          [Let's say my project is under, c:\selenium\workspace\testng]
          C:\selenium\workspace\testng> java -cp .\lib\*;.\bin org.testng.TestNG testng.xml

  • Using ANT build 
                 (Refer Selenium testNG ANT reporting)

Let's get into more details about testNG.xml, refer testNG.xml


12 comments:

  1. đồng tâm
    game mu
    cho thuê nhà trọ
    cho thuê phòng trọ
    nhac san cuc manh
    số điện thoại tư vấn pháp luật miễn phí
    văn phòng luật
    tổng đài tư vấn pháp luật
    dịch vụ thành lập công ty trọn gói
    64 nước cờ trên bàn thương lượng ebook
    mbp là gì
    thuyết erg
    các nghịch lý nổi tiếng
    chi square test là gì
    nghệ thuật nói chuyện trước công chúng dale carnegie
    định lý coase
    học thuyết kỳ vọng của victor vroom
    chiến thắng con quỷ trong bạn audio
    điểm cân bằng nash

    Kiếm tiền mặc dù quan trọng nhưng làm Triệu Quốc Đống vui mừng đó là Trường Xuyên không còn là thằng vô tích sự như trước. Thậm chí còn làm Triệu Quốc Đống vui hơn kiếm được vài triệu.

    Lỗ có thể kiếm lại nhưng một người có thể thay đổi hẳn so với trong mơ, điều này nói rõ hắn có năng lực thay đổi thế giới xung quanh.

    - Chính quyền địa phương có đề nghị gì không?

    Triệu Quốc Đống biết bây giờ khắp nơi trong cả nước đều đang thu hút đầu tư, Huyện Thương Lãng là nơi xa xôi cũng càng thêm cấp bách. Tâm trạng này của chính quyền địa phương thì cần lợi dụng cho tốt, làm như thế nào để chính quyền địa phương nhường bước lớn nhất, cho nhà đầu tư càng nhiều lợi ích.

    - Bọn họ đáp ứng có thể sửa đường đi khu nước suối. Nhưng đường đi quanh khu suối thì hy vọng do chúng ta phụ trách, bọn họ có thể giúp chúng ta thỏa thuận điều chỉnh đất đai với hai cấp xã, thôn.
    Trường Xuyên do dự một chút rồi nói:
    - Em thấy Huyện Thương Lãng cũng rất có thành ý, nhưng tài chính của huyện bọn họ lại rất khó khăn, hy vọng bọn họ xây dựng cho là khá khó. Dù là cải tạo đoạn đường kia thì bọn họ cũng cần chúng ta trả tiền thuê mới có thể làm.

    Triệu Quốc Đống cũng biết Huyện Thương Lãng trước khi phát triển thì nghèo như thế nào. Trụ sở Huyện ủy và Ủy ban hơn mười năm không sửa, tòa nhà bốn tầng nếu anh cẩn thận tìm sẽ thấy một loạt các từ như “Đại học công nghiệp, Đại học nông nghiệp” …

    - Em tự tính toán, công ty có cần nhất định phải thành lập ở nguồn nước không, có thể thông qua con đường khác mà dẫn nước ra không? Nếu chúng ta có đủ tiền thì làm vài Km đường cũng không vấn đề gì, coi như cống hiến cho sự phát triển kinh tế của Huyện Thương Lãng. Nhưng bây giờ chúng ta chỉ có từng đó tiền, Trường Xuyên, em phải quy hoạch cho tốt. Tiền thuê đất, sử dụng tài nguyên, xây dựng nhà máy, mua thiết bị, tuyển công nhân cũng khá lớn.

    ReplyDelete