TestNG vs Junit (ზოგადად და უხეშად )

TestNG არის JUnit–ზე ბაზირებული მატესტირებელი ფრეიმვორკი, რომელიც ახდენს JUnit ფრეიმვორკის ნაკლოვანებების აღმოფხვრას. მის დასახელებაში არსებული NG ნიშნავს “Next Generation”  Selenium მომხმარებლების უმრავლესობა უპირატესობას ანიჭებს TestNG-ს, ვიდრე JUnit-ს. TestNG-ის გააჩნია მრავალი პოპულარული მახასიათებელი. ჩვენ აქ მიმოვიხილავთ ყველაზე მნიშვნელოვანს მათ შორის, რომლებიც კავშირშია Selenium ტექნოლოგიასთან.

TestNG-ის JUnit-თან შედარებით გააჩნია 3 ძირითადი უპირატესობა:
1. ანოტაციები არის უფრო ადვილად გასაგები;
2. ტესტ-ქეისები შესაძლებელია დაჯგუფდეს უფრო ადვილად;
3. შესაძლებელია პარალელური ტესტირება.
ანოტაცია წარმოადგენს სტრიქონს პროგრამულ კოდში, რომელიც საზღვრავს მის ქვემოთ აღწერილი მეთოდის გაშვების პრინციპებს. ანოტაციას წინ უძღვის @ სიმბოლო.

მოცემულ მაგალითში მეთოდი goToHomepage() გაეშვება პირველი, ვიდრე logout(), რადგან მას აქვს უფრო დაბალი პრიორიტეტის მნიშვნელობა. მოცემული სურათიდან ჩანს რომ ანოტაციები TestNG–ში აღიწერება უფრო მარტივად და გასაგებია ვიდრე JUnit–ში.

TestNG–ის უპირატესობად უნდა აღინიშნოს ისიც, რომ მას შეუძლია აღუწერავი გამონაკლისი შემთხვევების მართვა, რაც თავიდან გვაციელბს ტესტის ნაადრევად დასრულების შესაძლებლობას. TestNG, გარდა ხისებური სტილით მოცემული და კონსოლში ჩაწერილი ტექსტური რეპორტისა, აგენერირებს აგრეთვე HTML ფორმატის რეპორტ ფაილს.
ასევე შესაძლებელია მრავალი @Test ანოტაციის გამოყენება ერთ TestNG ფაილში. @Test–ით ანოტირებული მეთოდები „გაჩუმების“ პრინციპით სრულდება ანბანური თანმიმდევრობით. მიუხედავად იმისა, რომ მოცემულ ნახაზზე მეთოდები c_test, a_test და b_test კოდში არ არის დალაგებული ანბანურად, ისინი გაეშვებიან ანბანური რიგის მიხედვით

 

აღნიშნულის სადემონსტრაციოდ გავუშვათ შესრულებაზე მოცემული კოდი და შევხედოთ საშედეგო ფაილს.  ტესტები გაეშვება ანბანის რიგის მიხედვით. იმისთვის რომ ანოტირებული მეთოდები გაეშვას სხვა მიმდევრობით და არა ანბანური რიგით, იყენებენ პარამეტრს “priority”. პარამეტრები საკვანძო სიტყვებია, რომლებიც ცვლის ანოტაციების ფუნქციებს პარამეტრი მოითხოვს რაღაც მნიშვნელობის მინიჭებას, რაც ხორციელდება ჩვეულებრივი “=” ნიშნით, რომლის შემდეგაც იწერება მნიშვნელობა.
პარამეტრი იწერება მრგვალ ფრჩხილებში, ანოტაციის დასახელების შემდეგ, მაგალითად:
@Test ანოტაციებს TestNG ასრულებს ყველაზე დაბალი პრიორიტეტიდან მაღლისკენ. ამასთანავე არ არის საჭირო პრიორიტეტების მნიშვნელობების თანამიმდევრობის დაცვა, მაგალითად განვიხილოთ შემდეგი კოდის ფრაგმენტი:

განვიხილოთ TestNG მატესტირებელი ფრეიმვორკის ძირითადი ანოტაციები, რომლებიც შეიძლება გამოვიყენოთ Selenium ტესტების განსზღვრისას. @BeforeTest – აღწერილი ანოტაციის ქვემოთ განსაზღვრული მეთოდი შესრულდება პირველი ტესტ–ქეისების გაშვებისას. @AfterTest – აღწერილი ანოტაციის ქვემოთ განსაზღვრული მეთოდი შესრულდება ყველა ტესტ–ქეისის გაშვების შემდეგ. მაგალითად განვიხილოთ შემდეგი პროგრამული კოდის ფრაგმენტი:
მოცემულ კოდში აღწერილი მეთოდები შესრულდება შემდეგი თანამიმდევრობით:
პირველი – launchBrowser()
მეორე – verifyHomepageTitle()
მესამე – terminateBrowser()
შევნიშნოთ, რომ კოდში აღწერილი მეთოდის ბლოკის გადაადგილებით შესრულების თანამიმდევრობა არ შეიცვლება.

@BeforeMethod – მოცემული ანოტაციის ქვემოთ აღწერილი მეთოდი გაეშვება ყველაზე პირველი, ნებისმიერი მეთოდის გაშვებამდე.
@AfterMethod – მოცემული ანოტაციის ქვემოთ აღწერილი მეთოდი გაეშვება ყველაზე ბოლოს, ყველა მეთოდის გაშვების შემდეგ. შევნიშნოთ რომ ერთიდაიმავე ტესტ-ფაილში აღწერილი @BeforeMethod და @BeforeTest ანოტაციებიდან პირველი გაეშვება

@BeforeTest, რადგან იგი სრულდება ტესტ-ქეისის გაშვებამდე პირველი. @BeforeSuite: მისი საშუალებით ანოტირებული მეთოდი გაეშვება პირველი მოცემულ ტესტ-სუიტში. @AfterSuite: მისი საშუალებით ანოტირებული მეთოდი გაეშვება ყველაზე ბოლოს მოცემულ ტესტ-სუიტში. @BeforeClass: მისი საშუალებით ანოტირებული მეთოდი გაეშვება პირველი მიმდინარე კლასში.

@AfterClass: მისი საშუალებით ანოტირებული მეთოდი გაეშვება ყველაზე ბოლოს მიმდინარე კლასში. @Test: მისი საშუალებით ანოტირებული მეთოდი არის ტესტ-ქეისის შემადგენელი ნაწილი. დასკვნის სახით შეგვიძლია ჩამოვაყალიბოთ TestNG ჯავა მატესტირებელი ფრეიმვორკის ძირითადი მახასიათებლები:
TestNG არის მატესტირებელი ფრეიმვორკი, რომელსაც შეუძლია Selenium ტესტების შექმნა და ადვილად გასაგები რეპორტის გენერირება;  TestNG-ის ძირითადი უპირატესობები JUnit–თან მიმართებაში:
ადვილად გასაგები ანოტაციები, ტესტების დაჯგუფების უფრო ადვილი შესაძლებლობა და პარალელური ტესტირების მხარდაჭერა;

კომენტარის დატოვება

თქვენი ელფოსტის მისამართი გამოქვეყნებული არ იყო. აუცილებელი ველები მონიშნულია *