43 pytania do wywiadu testowego: większość początkujących nie wie

W tym samouczku omówimy wyczerpujące zestawy Krytyczne pytania i odpowiedzi na rozmowę kwalifikacyjną TestNg i dystrybuowane w zależności od poziomu trudności, gdzie możesz lepiej szybko wyposażyć się w TestNg

Te zestawy pytań do rozmowy kwalifikacyjnej Testng są dystrybuowane w następujących modułach lub zestawach:

Pytania do wywiadu TestNg - Advance

Pytania do rozmowy kwalifikacyjnej TestNg - Pośredni

Pytania do rozmowy kwalifikacyjnej TestNg - podstawowe

Pytania i odpowiedzi do wywiadu testowego || Zestaw 1

Jak wykluczyć grupę z cyklu wykonywania testów?

Możesz użyć znacznika wykluczenia, aby wykluczyć grupę przypadków testowych z wykonywania w poniższy sposób w pliku Testng xml 

    

        

        

    

Jakie są typy raportów generowanych domyślnie w TestNG?

TestNG generuje 4 rodzaje raportów po wykonaniu, które są:

  • Raport HTML TestNG
  • Raport TestNG dostępny e-mailem
  • XML raportu TestNG
  • Raport XML TestNg nie powiódł się

Wspomnij o różnicy między zestawem testów TestNG a testem TestNG?

Zestaw testów TestNG to zbiór klas testowych i metod testowych, które można uruchamiać jednocześnie lub równolegle z pliku XML TestNG. 

Z drugiej strony metoda testowa TestNG to pojedynczy plik przypadku testowego lub metoda testowa.

Jaki jest pożytek z atrybutu threadPoolSize z adnotacją @Test 

Za pomocą atrybutu threadPoolSize możemy zdefiniować pulę wątków o określonym rozmiarze przez numer metody testowej, która ma być wykonana przez wiele dostępnych wątków.

Atrybut jest ignorowany, jeśli nie wspomniano o invocationCount.

@Test(ThreadPoolSize = 3)
publiczna nieważność testCaseOne(){
System.out.println("testCaseOne w toku");
}

W powyższej metodzie testowej testCaseOne zostanie wywołany z trzech różnych wątków.

Co robią atrybuty alwaysRun?

Ten atrybut adnotacji AlwaysRun jest używany za każdym razem, gdy chcesz wykonać metodę testową niezależnie od zależnych parametrów, od których zależy metoda testowa, ale kończy się to niepowodzeniem. Jeśli ustawisz wartość true, musisz ustawić atrybut na true.

Jacy różni słuchacze są dostępni?

  • Odbiornik ITtestów
  • IReporter 
  • ISuiteListener
  • IAdnotacja Transformator 
  • IAdnotacja Transformator2
  • I do gotowania 
  • IInvokedMethodListener 
  • ImethodInterceptor 

Jaka jest domyślna wartość priorytetu TestNG?

Priorytet TestNG ma domyślną wartość zero.

Jak ponownie uruchomić testy TestNg zakończone niepowodzeniem przy użyciu mechanizmu automatycznego ponawiania?

TestNg udostępnia jeden interfejs o nazwie as Analizator ponownych prób listener, do którego możesz zaimplementować interfejs, automatycznie uruchom ponownie skrypty zakończone niepowodzeniem testu, wymieniając klasę w pliku testNg.XML, oto poniższy kod do implementacji tego samego:

TestNg Spróbuj ponownie 1024x747 1
Testng pytania i odpowiedzi na rozmowę kwalifikacyjną - TestNg Retry Test Script

W powyższym obszarze możesz skonfigurować liczbę ponownych prób, maksymalne zliczenia, a także możesz wspomnieć, w których wyjątkach chcesz ponownie uruchomić skrypty testowe.

public class Retry implementuje IRetryAnalyzer { int retryCounter = 0; // Maksymalna liczba nieudanych wykonań int autoRetryLimit = 2; @Override public boolean retry(ITestResult iTestResult) { if (retryCounter < autoRetryLimit) { retryCounter++; zwróć prawdę; } zwróć fałsz; } }

Podejście drugie: jak ponownie uruchomić testy TestNg zakończone niepowodzeniem przy użyciu mechanizmu automatycznego ponawiania

W poniższym podejściu możesz zbudować 2 klasy, tj. Jedną jest Ponów zajęcia gdzie można zachować logikę kontrolowania liczby iteracji w przypadku niepowodzeń testów, które zaimplementują interfejs Testng Analizator ponownych prób.

Inną klasą jest w zasadzie implementacja innego odbiornika interfejsu IAnnotationTransformer i zaimplementowanie metody przekształcać który wewnętrznie współdziała z poprzednią klasą (tj Ponów zajęcia)

public class Retry implementuje IRetryAnalyzer { int retryCounter = 0; // Maksymalna liczba nieudanych wykonań int autoRetryLimit = 2; @Override public boolean retry(ITestResult iTestResult) { if (retryCounter < autoRetryLimit) { retryCounter++; zwróć prawdę; } zwróć fałsz; } }

i na koniec dodaj CognitiveRetry w detektorze pliku testng.xml.

<listeners>
    <listener class-name= "com.lambdageeks.cognitiveRetryUtils.CognitiveRetry"/>
</listeners>

Jak osiągnąć implementację itestlistenera TestNG?

ITestListener to interfejs w TestNg, który ma wiele metod (nie zaimplementowanych, ponieważ jest to interfejs), które mogą być implementowane przez klasę. Każda metoda reprezentuje określone funkcje lub scenariusze, dlatego w zależności od potrzeb możesz wdrożyć te metody.

Dla przykładu w przypadku niepowodzenia testu to metoda, którą możesz zaimplementować, w której chcesz wykonać dowolne operacje, podczas gdy jakakolwiek metoda testowa nie powiedzie się, powiedzmy, że chcesz przechwycić zrzut ekranu w przypadku awarii dowolnej metody testowej, więc możesz napisać metodę takecreenshot wewnątrz w przypadku niepowodzenia testu , a ponieważ ITestListener jest interfejsem, testNg będzie nadal nasłuchiwał zdarzeń (niepowodzenia testów) i za każdym razem, gdy wystąpią niepowodzenia testu, zrzut ekranu zostanie przechwycony.

Oto implementacja przechwytywania zrzutu ekranu za każdym razem, gdy testowy skrypt napotka awarię:

import org.apache.commons.io.FileUtils;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
importuj org.openqa.selenium.WebDriver;
import or.testng.ITestContext;
import org.testng.ITestListener;
import org.testng.ITestResult;
importuj plik java.io.;
importuj wyjątek java.io.IO;
importuj java.util.logging.Logger;
klasa publiczna CustomListerners implementuje ITestListener {
    Sterownik WebDriver=null;
    String filePath = "D:\\\\LambdaGeeks\\\\SCREENSHOTS";
    @Nadpisanie
    public void onTestFailure (wynik ITestResult) {
        String testMethodName=String.valueOf(result.getName()).trim();
        ITestContext testContext = wynik.getTestContext();
        Sterownik WebDriver = (WebDriver)testContext.getAttribute("sterownik");
        przechwyćTheScreenShot(nazwa metody testowej, sterownik);
    }
    public void przechwytywanieTheScreenShot(String nazwa metody, sterownik WebDriver) {
        Plik scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
        /*
        Każdy zrzut ekranu zostanie zapisany wraz z nazwą testu, aby zapewnić lepszą korelację
         */
        próbować {
            FileUtils.copyFile(scrFile, nowy plik(filePath+nazwametody+.jpg"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public void onFinish (kontekst ITestContext) {}
    public void onTestStart(wynik ITestResult) { }
    public void onTestSuccess(wynik ITestResult) { }
    public void onTestSkipped (wynik ITestResult) { }
    public void onTestFailedButWithinSuccessPercentage(wynik ITestResult) { }
    public void onStart (kontekst ITestContext) { }
}

Musisz także dodać tę klasę do tagu listenera w pliku testng.xml, tak jak zrobiliśmy to w poprzednim pytaniu.

Jak zaimplementować testng iAnnotationtransformer?

TestNg udostępnia interfejs o nazwie IAnnotationTransformer, który udostępnia metodę o nazwie „transform”, którą można zaimplementować i która byłaby wyzwalana w czasie wykonywania przez TestNG. Ta implementacja służy do modyfikowania zachowania adnotacji testowej klasy testowej i metod testowych

W poniższym segmencie zobaczylibyśmy, jak możemy to zrobić

public class TestClassAnnotations { @Test(alwaysRun = true,dependsOnMethods = "testMethodB") public void testMethodA() { System.out.println("--- Dostosowywanie zachowania środowiska wykonawczego za pomocą ITestAnnotation ---"); } @Test public void testMethodB() { System.out.println("--- Drugi testMethods ---"); Potwierdź.niepowodzenie(); } }

Domyślnie, jeśli uruchomimy powyższy kod, zostanie wykonana tylko jedna metoda, która jest testMethodA, a inna metoda testMethodB zakończy się niepowodzeniem, ponieważ celowo zawodzimy, używając metody Assert.fail ().

Ale jeśli zmienimy Alwaysrun = prawda adnotacja na false przy użyciu IAdnotacja Transformator wtedy ta metoda nie zostanie wykonana, poniżej znajduje się fragment kodu dotyczący sposobu implementacji IAdnotacja Transformator i użyj go w testing.xml, aby zmienić zachowanie adnotacji TestNG

Implementacja CustomAnnotationTransformers idzie tutaj:

public class CustomAnnotationTransformers implementuje IAnnotationTransformer { public boolean isTestRunning(ITestAnnotation iTestAnnotation) { if (iTestAnnotation.getAlwaysRun()) { return true; } zwróć fałsz; } public void transform(ITestAnnotation adnotations, Class testClasses, Constructor testConstructors, Method testMethods) { if (isTestRunning(adnotations)) { annotations.setEnabled(false); } } }

Oto odbiornik, który musimy dodać w pliku testing.xml

<listeners>
    <listener class-name= "com.lambdageeks.CustomAnnotationTransformers"/>
</listeners>

Jak zaimplementować testng iinvokedmethodlistener?

Jeśli chcesz zaimplementować funkcję, w której pewna metoda zostanie wykonana przed i po każdej metodzie testowej TestNg, ta funkcja może zostać zaimplementowana przez testng IInvokedMethodListener słuchacz.

 

Oto fragment kodu do implementacji funkcji:

pakiet com.lambdageeks; importuj org.testng.IInvokedMethod; importuj org.testng.IInvokedMethodListener; importuj org.testng.ITestResult; public class CustomAnnotationTransformers implementuje IInvokedMethodListener { public void beforeInvocation(IInvokedMethod method, ITestResult testResult) { System.out.println(" ::: zanim metoda z IInvokedMethodListener zostanie wyzwolona dla metody testowej o nazwie: " + method.getTestMethodName().getMethod ) + " ::: "); } public void afterInvocation(IInvokedMethod method, ITestResult testResult) { System.out.println(" :::: Po wyzwoleniu metody z IInvokedMethodListener dla metody testowej o nazwie : " + method.getTestMethod().getMethodName() + " : :: "); } }

Oto klasa testowa do testowania funkcji:

public class TestClassAnnotations { @Test(alwaysRun = true) public void testMethoddummy() { System.out.println("--- To jest metoda testowa , testująca funkcję IInvokedMethodListener Testng Listener ---"); } }

Musisz jak zawsze wspomnieć o TestNG iinvokedmethodlistener w tagu listener w pliku testng.xml

<listeners>
    <listener class-name="com.lambdageeks.CustomAnnotationTransformers"/>
</listeners>

Wynik wykonania powinien wyglądać następująco:

::: Przed metodą z IInvokedMethodListener wyzwalana jest metoda testowa o nazwie: testMethoddummy :::

- To jest metoda testowa, testująca funkcję Listenera IInvokedMethodListener Testng -

 :::: After Method z IInvokedMethodListener jest wyzwalane dla metody testowej o nazwie: testMethoddummy :::

Jak wdrożyć dostawców danych w TestNG?

Możemy zaimplementować DataProvider używając TestNg w poniższym podejściu:

public class DataProviderDemo { @DataProvider(name = "dpName") public Object[][] dataProvidersMethodName() { return new Object[][]{{"Lambda"}, {"Geeks"}}; } @Test(dataProvider = "dpName") public void dataproviderDummyTestMethod(String dataValues) { System.out.println("Parametry danych z przykładami dostawcy danych : : " + dataValues); } }

Jeśli nie ustawimy priorytetu metody testowej, w jakiej kolejności testy są wykonywane w TestNG?

Testy są wykonywane w kolejności alfabetycznej według TestmethodName.

 

Na przykład w poniższym fragmencie kodu:

public class SequenceTest { @Test() public void geeks() { System.out.println("Test sekwencji, metoda uruchomiona: geeks"); } @Test() public void lambda() { System.out.println("Test sekwencji , Metoda uruchomiona : lambda "); } @Test() public void abc() { System.out.println("Test sekwencji, metoda uruchomiona :abc"); } }

Wynik będzie wyglądał następująco:

Test sekwencji, metoda uruchomiona: abc

Test sekwencji, metoda uruchomiona: maniacy

Test sekwencji, metoda uruchomiona: lambda

 

Jak równolegle uruchamiać skrypty testowe?

Możesz uruchomić skrypty testowe przy użyciu pliku XML TestNg, wspominając o rozszerzeniu równolegle = „metody” liczba wątków = „2 ″, tutaj zostaną wykonane 2 równoległe przypadki, jeśli chcesz wykonać więcej wątków równolegle.

<suite name="DummyTest" parallel="methods" thread-count="2" >

<listeners>
<listener class-name="org.uncommons.reportng.HTMLReporter" />
<listener class-name="org.uncommons.reportng.JUnitXMLReporter" />
</listeners>
</suite>  

Jak zintegrować TestNg z GRADLE Build Tool?

Możesz uruchomić Testng Suite w gradle na różne sposoby:

Jak uruchomić grupy TestNg przy użyciu Gradle: Możesz utworzyć zadanie w pliku build.gradle, w którym można wymienić rozszerzenie useTestNG () i wspomnij o poniższych szczegółach podczas uruchamiania grup testowych.

Stopień testu
TestNg Pytania i odpowiedzi do wywiadu TestNg z Gradle

Jak uruchomić odbiornik Testng Default z Gradle, aby wygenerować raport przy użyciu biblioteki TestNg

TestNg Domyślne odbiorniki
TestNg Pytania i odpowiedzi do wywiadu - testowanie z domyślnymi słuchaczami Gradle

Jeśli chcesz użyć odbiornika niestandardowego, możesz wspomnieć o tym w następującym podejściu:

Testowanie stopniowego słuchacza niestandardowego 1024x497 1
TestNg Pytania i odpowiedzi do wywiadu TestNG Niestandardowi słuchacze z Gradle

Jak uruchomić plik Testng Runner xml za pomocą wiersza poleceń?

Możesz użyć lokalizacji TestNg Downloaded i wspomnieć org.testng.TestNg.testNgRunner.xml, aby uruchomić plik runner xml z wiersza polecenia.

java -cp "/opt/testng-7.1.jar:bin" org.testng.TestNG testngRunner.xml

Jak zintegrować TestNg XML z Maven?

Możesz zintegrować TestNg z Maven za pomocą wtyczki o nazwie wtyczka maven-surefire gdzie można skonfigurować uruchamianie pliku testNgrunner.xml przy użyciu konfiguracji:

Integracja TestNG Maven 1024x667 1
Pytania i odpowiedzi do wywiadu TestNg-TestNg-Maven-Surefire Integration

Jak określić parametr TestNg Test przy użyciu TestNg i Maven?

Możesz określić parametr Test za pomocą wtyczki Maven SureFire z plikiem TestNg.XML w następujący sposób

Parametr testowy Mavena 1024x543 1
TestNg Pytania i odpowiedzi do wywiadu - parametr testu

Pytania i odpowiedzi do wywiadu testowego || Zestaw 2

Co oznacza invocationCount w TestNG?

invocationCount to atrybut adnotacji testowej, za pomocą którego można zdefiniować liczbę iteracji, przez którą metoda testowa zostanie wykonana w jednym wykonaniu. 

 Powyższy test zostanie wykonany dwa razy, ponieważ invocationCount jest wymienione jako 2.

@Test(invocationCount = 2) public void testOfInvCount() { System.out.println("Test licznika wywołań w toku"); }

Kim są słuchacze w TestNG?

w TestNg słuchacze są w zasadzie interfejsem w Javie, który musisz zaimplementować w swojej klasie. Zaimplementowana klasa będzie nadal nasłuchiwała określonych zdarzeń i wykonywała określony blok kodu powiązany z tym zdarzeniem. Tutaj podczas implementacji interfejsu ostatecznie zaimplementujesz niezaimplementowane metody, a ten blok kodu lub metody zostaną wykonane jako i kiedy określone zdarzenie zostaje wyzwolony. 

Za pomocą detektorów TestNG możemy wykonać wiele działań w czasie wykonywania, nasłuchując różnych zdarzeń wyzwalanych przez wykonanie skryptu testowego i ich status, lub możemy wykonać raportowanie. Możemy również zmienić implementację adnotacji TestNg.

Czy wspomnieć o różnicach między adnotacjami @Factory i @Dataprovider w TestNg?

@Dataprovider: Jeśli chcesz wykonać ten sam test, ale z różnymi różnorodnymi zestawami danych w każdym przebiegu, możesz użyć adnotacji dostawcy danych, co pozwala osiągnąć podejście do testowania opartego na danych. W tym przypadku wykonanie metody testowej odbywa się przy użyciu tej samej instancji klasy, do której należy metoda testowa.

@Factory: Zostaną wykonane wszystkie metody testowe obecne w klasie testowej przy użyciu oddzielnych i wielu wystąpień klasy.

Jak używać TestNG Reporter Class do generowania dziennika?

Możesz rejestrować szczegóły i dane za pomocą klasy Reporter, a te dzienniki zostaną przechwycone przez raport wygenerowany przez TestNG

Reporter.log („Komunikat logowania”);

Jak zrobić obsługę wyjątków w TestNG?

Możesz wspomnieć o rodzaju oczekiwanego wyjątku w atrybucie o nazwie spodziewane Wyjątki z adnotacją @test; w takim przypadku TestNg oznaczy test jako zaliczony.

@Test (spodziewaneExceptions = numberFormatException.class)

Jak osiągnąć iniekcję zależności za pomocą TestNg XML?

TestNG pozwala nam wstrzykiwać zależności między różnymi grupami testów za pośrednictwem pliku TestNG XML. Dzięki któremu możemy mieć zależność jednej grupy od drugiej.

Jakie są różne podejścia do asercji w TestNG?

W TestNg możemy używać dwóch typów asercji. 

Miękkie aserty

Twarde asert 

Wymień niektóre z często używanych twierdzeń w TestNG 

Niektóre z szeroko stosowanych metod asercji w TestNG:

  • assertEquals (wartość logiczna rzeczywista, oczekiwana wartość logiczna)
  • assertEqual (ciąg rzeczywisty, oczekiwano ciągu znaków)
  • assertEqual (ciąg rzeczywisty wynik, oczekiwany wynik w postaci ciągu, komunikat w postaci ciągu)
  • assertTrue (warunek)
  • assertFalse (warunek)
  • assertFalse (warunek, wiadomość)
  • assertTrue (warunek, wiadomość)

Co rozumiesz przez potwierdzenia w TestNG?

Wykonywane jest stwierdzenie, aby zweryfikować rzeczywiste wyniki testu w odniesieniu do oczekiwanych wyników testu. W TestNg możemy użyć hard assert lub soft assert. 

Różnica między Hard Assert i Soft Assert w TestNg

Podczas pracy z asertem twardym, jeśli w przypadku wystąpienia błędu w warunku asercji kolejne kroki testowe nie zostaną wykonane i zostaną przerwane, a ostatecznie test zostanie oznaczony jako przypadek testowy zakończony niepowodzeniem. 

Z drugiej strony, Soft Assert bierze pod uwagę walidację wszystkich punktów asercji, nawet jeśli są jakiekolwiek błędy w którymkolwiek z twierdzeń. Oznacza to, że wykonanie testu nie zostaje przerwane, nawet jeśli jedno twierdzenie nie powiedzie się.

Jak pisać asercje miękkie w TestNg 

Poniższy fragment kodu przedstawia podejście do pisania asercji miękkiej w TestNG

@Testuj publiczne potwierdzenie unieważnienia() { SoftAssert softAssertion = new SoftAssert(); //Potwierdzenie 1 softAssertion.assertEquals("exp", "act"); //Potwierdzenie 2 softAssertion.assertEquals(123, 123); //Potwierdzenie 3 softAssertion.assertEquals("wartość rzeczywista", "wartość oczekiwana"); // Na koniec rozważenie wszystkich wartości asercji softAssertion.assertAll(); }

Jak używać wyrażeń regularnych w grupach TestNG?

W TestNG można użyć wyrażenia regularnego, aby wykonać grupy, które mają podobny wzorzec w nazewnictwie. 

Na przykład, jeśli chcesz uruchomić wszystkie grupy zaczynające się od „testX” zgodnie z nazwą, możesz użyć wyrażenia regularnego jako testX. * W pliku XML TestNG.

Pytania i odpowiedzi do wywiadu testowego || Zestaw 3

Co to jest TestNG?

TestNg zasadniczo reprezentuje „Testowanie nowej generacji”To platforma do testów jednostkowych, która kontroluje przepływ i kolejność automatyzacji testów i skryptów automatyzacji, dostarczając różne adnotacje z ich funkcjonalnościami.

Jakie są zalety TestNg?

  •             Dzięki różnym adnotacjom Testng możesz lepiej kontrolować przepływ i kolejność automatyzacji i wykonywania testów.
  •             Testowanie klas lub Testowanie metod skryptów Równoległe wykonywanie metod można osiągnąć za pomocą TestNg.
  •            TestNg można łatwo zintegrować z różnymi narzędziami do budowania, takimi jak Maven, Gradle. Można go również zintegrować z narzędziami CICD, takimi jak Jenkins.
  •            TestNG zapewnia szczegółową funkcję raportowania HTML i jest łatwo zintegrowany z inną platformą raportowania testów, taką jak Allure, raport zasięgu z funkcjami słuchaczy TestNG.
  •           Wszystkie testy można wyzwolić za pomocą pliku testng.xml, w którym można podać nazwę klasy testowej/testu/pakietu testowego do uruchomienia.
  •           Testowanie sterowane danymi można przeprowadzić za pomocą adnotacji TestNg DataProvider. Ponadto testy parametryzacji można również przeprowadzić za pomocą pliku Testng.xml, na przykład podczas testowania w wielu przeglądarkach można sparametryzować różne przeglądarki dla różnych testów. Ta funkcja pomaga w tworzeniu platformy opartej na danych za pomocą TestNG.
  •          TestNg Umożliwia dołączenie/wykluczenie zestawu testów z pliku tesngNg.xml z atrybutem włącz i wyklucz.
  •          Dzięki TestNg możesz grupować swoje testy i wstrzykiwanie zależności pomiędzy testy.
  •          TestNg zapewnia wielu słuchaczom te, dzięki którym można osiągnąć wiele rzeczy, takich jak niestandardowe raportowanie (IReporter), integracja z różnymi narzędziami (ITestListener), zmiana zachowania adnotacji TestNG Test w czasie wykonywania za pomocą IAnnotationTransformer i wiele innych.
  •         Możesz pominąć konkretny test, nadać priorytet kolejności testowej, utworzyć test ograniczony czasowo z adnotacjami TestNg Test.
  •         Możesz użyć Hard Assertion oraz Soft Assertion z TestNg do pisania instrukcji Assert.
  •         TestNg generuje TestNG-failed.xml po każdym wykonaniu testu, więc możesz ten sam wygenerowany TestNG-failed.xml, aby ponownie uruchomić nieudane skrypty testowe.
  •        TestNg zapewnia różne adnotacje testowe, takie jak @BeforeMethod, @AfterMethod, @BeforeTest, @AfterTest.@PrzedApartamentem,@After Suite.
  •        Możesz uruchomić oczekiwany Test wyjątków za pomocą TestNg.
  •        Możesz ponownie uruchomić nieudany test za pomocą IretryAnalyzer firmy Testng 

Jak ci wyzwolić i wykonać skrypt testowy TestNg?

Skrypt TestNg Test można uruchomić na kilka sposobów: 

  •       Kliknij prawym przyciskiem myszy Test Class i „uruchom jako” i wybierz opcję „TestNg Test”.
  •       Utwórz testng.xml i bezpośrednio na pliku, a następnie uruchom plik xml.
  •       Jeśli zintegrujesz testNg.xml z narzędziem do budowania, takim jak Maven/Gradle, możesz również uruchomić z maven lub Gradle.
  •       Jeśli narzędzie do budowania, takie jak Maven/Gradle, jest zintegrowane z CICD, możesz uruchomić z CICD, tj. z Jenkinsa.

Podać adnotacje Testng, które są dostępne?

Najczęściej używane adnotacje testowe to:

  • @Bezpieczeństwo
  • @AfterSuite
  • @Przed testem
  • @PoTest
  • @Przed zajęciami
  • @Po zajęciach
  • @Bez tytułu
  • @Poradnik
  • @PrzedGrupami
  • @PoGrupy
  • @Test

Wspomnieć o sekwencji wykonywania adnotacji TestNg?

Z punktu widzenia wykonywania testów poniżej przedstawiono kolejność wszystkich dostępnych adnotacji TestNg:

Adnotacje dotyczące warunków wstępnych:

  • @Bezpieczeństwo
  • @Przed testem
  • @Przed zajęciami
  • @Bez tytułu
  • Testuj adnotacje:
  • @Test
  • Adnotacje PostCondition: 
  • @AfterSuite
  • @PoTest
  • @Po zajęciach
  • @Poradnik

Jak wyłączyć wykonywanie testów dla skryptu testowego?

Możesz użyć atrybutu enabled jest równy false w atrybucie adnotacji @Test, jak wspomniano poniżej:

@Test(enabled = false) public void logout(){ System.out.println("Przykładowy test"); }

Jak możesz określić słuchaczy w TestNG xml?

Możesz użyć pliku Tesng xml, aby wspomnieć o odbiornikach, które mają być używane jako część wykonywania skryptów testowych, w poniższym podejściu:

        

        

...

Co to jest test limitu czasu w TestNg?

W tym przypadku „test przekroczenia limitu czasu” oznacza, że ​​w przypadku, gdy wykonanie skryptu testowego trwa dłużej niż określony czas, testng przerwie test i oznaczy test jako zakończony niepowodzeniem.

@Test(timeOut = 6000) // tym razem w mullisekundach public void testShouldPass() throws InterruptedException { Thread.sleep(2000); }

Jak osiągnąć test oczekiwanego wyjątku z TestNG?

Jeśli metoda Test zgłosi wyjątek, który jest taki sam, jak określony jako część atrybutu adnotacji testu spodziewane wyjątki, wówczas TestNg oznaczy test jako zaliczony.

@Test(expectedExceptions = ArithmeticException.class) public void TestDivision() { int i = 1 / 0; }

 Powyższa metoda Test zostanie przekazana, ponieważ zgłosi wyjątek oczekiwany przez TestNG.

Jaka jest różnica między adnotacją @BeforeTest a @BeforeMethod?

@BeforeTest jest wykonywany raz przed każdym testngiem etykietka wspomniany w pliku testng.xml 

@BeforeMethod jest wykonywana przed każdą metodą skryptu testowego.

Jakie są zalety korzystania z pliku testng.xml?

Za pomocą pliku testng.xml można sterować przebiegiem wykonywania za pomocą jednego zestawu testów lub wielu zestawów testów w jednym pliku testng xml. Niektóre z ważnych funkcji to:

  • Plik testng.xml pozwala nam wykluczyć i uwzględnić metody testowe oraz wykonanie grupy testowej.
  • Możesz przekazać dane/parametry testowe przez testng.xml.
  • Możesz dodać zależność między metodami testowymi, a także grupę metod testowych
  • Możesz ustalić priorytety przypadków testowych.
  • Uzyskuje się równoległe wykonanie testów przypadków testowych.
  • Możesz zaimplementować różne odbiorniki testng i używać ich, wymieniając je w testng.xml.
  • Jeśli uruchomisz swój pakiet z testng.xml, test nie powiedzie się tylko dla następnej iteracji przy użyciu TestNG-failed.xml jest generowany po każdym wykonaniu.
  • Możesz uruchomić określone grupy testów za pomocą tag TestNG xml.

Ile typów zależności można osiągnąć za pomocą TestNG?

Istnieją dwa rodzaje zależności, które możemy osiągnąć za pomocą TestNG: 

A. DependsOnMethods: 

Używając tego atrybutu dependOnMethods, definiujesz, która metoda testowa będzie zależna od innych metod testowych, więc jeśli zależna metoda nie powiedzie się lub nie zostanie uruchomiona, zależna metoda również nie zostanie uruchomiona.

@Test public void loginUserProfile() { System.out.println("Zaloguj użytkownika"); } @Test(dependsOnMethods = "loginUserProfile") public void logOutPage_user() { System.out.println("Strona wylogowania dla użytkownika"); }

 Oto metoda testowa logOutPage_user, która zostanie uruchomiona po pomyślnym wykonaniu testu loginUserProfile.

B. dependOnGroups: 

W tego typu zależności testowej pozwala nam umieścić iniekcję zależności dla metod testowych z grupą metod testowych.

Przebieg wykonywania odbywa się w taki sposób, że najpierw zostaje wyzwolona i wykonana testGroup, a następnie zostaje uruchomiona zależna metoda testowa, a po pomyślnym zakończeniu testu grupowego zostaje wykonana zależna metoda testowa.

@Test(groups="AtestGroupName") public void testcaseOne() { System.out.println("testcaseOne w trakcie"); } @Test(groups="AtestGroupName") public void testcaseTwo() { System.out.println("testcaseTwo w trakcie"); } @Test(dependsOnGroups="AtestGroupName") public void testcaseThree() { System.out.println("testcaseThree w trakcie"); }

Wnioski: Na tym kończymy listę wszystkich krytycznych i ważnych Pytania i odpowiedzi na rozmowę kwalifikacyjną TestNg , aby uzyskać lepszą przyczepność na TestNg, możesz przejść przez wyczerpująca dokumentacja dotycząca TestNg.

Aby dowiedzieć się więcej na temat wyczerpujący samouczek dotyczący selenu, który możesz odwiedzić tutaj.

Zostaw komentarz