TestNG Selenium Scripts Beispiel erstellen
1. Einführung
In diesem Beitrag stellen wir einen umfassenden Artikel über TestNG zum Erstellen von Selenium-Skripten vor. TestNG ist ein automatisiertes Open-Source-Testframework für Java-Komponententests, das sowohl von JUnit als auch von NUnit inspiriert ist. Es unterstützt die folgenden Komponententestfunktionen:
- Es bietet eine Reihe von Anmerkungen:
@BeforeClass
,@AfterClass
,@BeforeMethod
,@AfterMethod
,@Test
usw. - Es bündelt Testklassen mit
xml
Dateien. @Test
Attribute werden verwendet, um die Ausnahmen, Zeitüberschreitungen, Abhängigkeiten und parametrisierten Tests festzulegen, und werden auch verwendet, um Tests zu ignorieren.
Selenium ist ein Open-Source-Testframework für Webanwendungen. Es unterstützt neun gängige Browser:Google Chrome, Internet Explorer, Firefox, Safari, Opera, HtmlUnit, phantomjs, Android und iOS. Es unterstützt mehrere Sprachen:Java, C#, Ruby, Python und Javascript.
In diesem Beispiel werde ich automatisierte Testskripte mit Java mit TestNG und Selenium für die folgenden Websites schreiben:
- Startseite der Google-Suche
- Google-Suchergebnisseite
- Neue Kontoseite von Google Gmail
2. Verwendete Technologien
Der Beispielcode in diesem Artikel wurde erstellt und ausgeführt mit:
- Java 11
- Maven 3.3.9
- Eclipse-Sauerstoff
- TestNg 6.8
- Selen 3.14
3. Einrichten
3.1 Installieren Sie das TestNG-Plug-in in der Eclipse-IDE
Sie können überprüfen, ob TestNG in Eclipse IDE installiert ist, indem Sie es in den Installationsdetails finden.
Klicken Sie hier für detaillierte Anweisungen zur Installation.
3.2 Installieren Sie den Google Chrome-Webtreiber
Ich werde Selenium Chrome WebDriver
herunterladen von hier und installiere es auf meinem PC unter C:\MaryZheng\DevTools\Selenium
. Dieser Ort wird verwendet, um den "webdriver.chrome.driver"
einzustellen Systemeigenschaft, bevor ein ChromeDriver
initialisiert wird Beispiel.
3.3 Erstellen Sie ein Maven-Projekt
Erstellen Sie ein Maven-Projekt, das sowohl TestNG- als auch Selenium-Abhängigkeiten enthält.
pom.xml
<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-selenium-example</groupId> <artifactId>testng-selenium-example</artifactId> <version>0.0.1-SNAPSHOT</version> <build> <sourceDirectory>src</sourceDirectory> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> <configuration> <release>11</release> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.8</version> </dependency> <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>3.141.59</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-io --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-io</artifactId> <version>1.3.2</version> </dependency> </dependencies> </project>
4. Testklassen
4.1 SeleniumTestBase
In diesem Schritt erstelle ich einen SeleniumTestBase
Klasse, die drei Methoden hat:
setupWebDriver
– diese Methode ist mit dem@BeforeClass
annotiert Annotation, die einmal ausgeführt wird, bevor die erste Testmethode in der aktuellen Klasse ausgeführt wird. Es richtet ChromeWebDriver
ein und öffnet die Google-Startseite.cleanup
– diese Methode ist mit dem@AfterClass
annotiert Anmerkung, die einmal ausgeführt wird, nachdem alle Testmethoden in der aktuellen Klasse ausgeführt wurden. Es schließt das Chrome-Browserfenster und wird beendet.saveScreenshot
– diese Methode ist mit dem@AfterMethod
annotiert Anmerkung, die nach jeder Testmethode ausgeführt wird. Es kopiert den Screenshot in eine Datei.
SeleniumTestBase.java
package jcg.zheng.testngdemo; import java.io.File; import java.io.IOException; import java.util.concurrent.TimeUnit; import org.apache.commons.io.FileUtils; import org.openqa.selenium.OutputType; import org.openqa.selenium.TakesScreenshot; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.support.ui.WebDriverWait; import org.testng.annotations.AfterClass; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeClass; public class SeleniumTestBase { protected static final String GOOGLE_URL = "http://google.com"; protected String screenshotFileName = null; protected WebDriver driver;// an API to send commands directly to the browser protected WebDriverWait webdriverwait; @BeforeClass public void setupWebDriver() { System.setProperty("webdriver.chrome.driver", "C:\\MaryZheng\\DevTools\\Selenium\\chromedriver.exe"); driver = new ChromeDriver(); webdriverwait = new WebDriverWait(driver, 30); driver.manage().deleteAllCookies(); driver.manage().window().maximize(); driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS); driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); driver.get(GOOGLE_URL); } @AfterClass public void cleanup() { driver.close(); driver.quit(); } @AfterMethod public void saveScreenshot() throws IOException { if (screenshotFileName != null) { File screeshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(screeshot, new File(screenshotFileName)); } } }
4.2 GoogleSuchtest
In diesem Schritt werde ich das Entwicklertool von Chrome verwenden, um die ID und den Namen des Webelements zu finden. Ich werde einen GoogleSearchTest
erstellen Klasse, die sechs Methoden hat:
check_title
– überprüft, ob der Titel der Startseite der Google-Suche „Google“ lautet, über Seleniumsdriver.getTitle()
Methode und setzt den Timeout dieser Methode über@Test(timeout = 10000)
auf 10 Sekunden .check_feeling_lucky
– überprüft, ob die Startseite der Google-Suche ein Element mit dem ID-Wert „gbqfbb“ überdriver.findElement(By.id("gbqfbb")
enthält ).check_about_link
– überprüft, ob derAbout
link wird über die isDisplayed-Methode angezeigt und gruppiert ihn unter der Gruppe „links“ über@Test(groups="links")
.check_store_link
– überprüft, ob derStore
Link wird angezeigt und gruppiert ihn unter der Gruppe „Links“.check_gmail_link
– überprüft, ob derGmail
Link wird angezeigt und gruppiert ihn unter der Gruppe „Links“.check_images_link
– überprüft, ob derImages
Link wird angezeigt und gruppiert ihn unter der Gruppe „Links“.
GoogleSearchTest.java
package jcg.zheng.testngdemo; import static org.junit.Assert.assertTrue; import static org.testng.Assert.assertEquals; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; import org.testng.annotations.Test; public class GoogleSearchTest extends SeleniumTestBase { @Test(timeOut = 10000) public void check_title() { String title = driver.getTitle(); assertEquals("Google", title); } @Test public void check_feeling_lucky() { WebElement searchInput = driver.findElement(By.id("gbqfbb")); assertTrue(searchInput.isDisplayed()); } @Test(groups = "links") public void check_about_link() { WebElement aboutLink = driver.findElement(By.linkText("About")); assertTrue(aboutLink.isDisplayed()); } @Test(groups = "links") public void check_store_link() { WebElement aboutLink = driver.findElement(By.linkText("Store")); assertTrue(aboutLink.isDisplayed()); } @Test(groups = "links") public void check_gmail_link() { WebElement aboutLink = driver.findElement(By.linkText("Gmail")); assertTrue(aboutLink.isDisplayed()); } @Test(groups = "links") public void check_images_link() { WebElement aboutLink = driver.findElement(By.linkText("Images")); assertTrue(aboutLink.isDisplayed()); } }
Wählen Sie GoogleSearchTest
aus Datei in Eclipse IDE und Rechtsklick auf „Ausführen als -> TestNG Test“. Erfassen Sie die Ausgabe.
Testausgabe
[RemoteTestNG] detected TestNG version 6.8.0 [TestNG] Running: C:\Windows\Temp\testng-eclipse-1768898921\testng-customsuite.xml Starting ChromeDriver 74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}) on port 35888 Only local connections are allowed. Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code. Jun 04, 2019 9:17:55 PM org.openqa.selenium.remote.ProtocolHandshake createSession INFO: Detected dialect: OSS PASSED: check_about_link PASSED: check_feeling_lucky PASSED: check_gmail_link PASSED: check_images_link PASSED: check_store_link PASSED: check_title =============================================== Default test Tests run: 6, Failures: 0, Skips: 0 =============================================== =============================================== Default suite Total tests run: 6, Failures: 0, Skips: 0 =============================================== [TestNG] Time taken by org.testng.reporters.SuiteHTMLReporter@1817d444: 247 ms [TestNG] Time taken by org.testng.reporters.JUnitReportReporter@130161f7: 18 ms [TestNG] Time taken by org.testng.reporters.XMLReporter@7ed7259e: 82 ms [TestNG] Time taken by org.testng.reporters.jq.Main@1725dc0f: 123 ms [TestNG] Time taken by [FailedReporter passed=0 failed=0 skipped=0]: 0 ms [TestNG] Time taken by org.testng.reporters.EmailableReporter@41fbdac4: 8 ms
4.3 GoogleSearchResultTest
TestNG stellt den dependsOnMethods
bereit Attribut bei @Test
Anmerkung, um die abhängigen Methoden anzugeben. In diesem Schritt werde ich drei Testmethoden erstellen und die Abhängigkeiten zwischen ihnen einrichten.
check_google_search_button
– überprüft, ob die Suchschaltfläche über denisEnabled()
aktiviert ist Methode.check_google_search_input
– überprüft, ob das Sucheingabefeld angezeigt wird und ruft dessensendKeys("Mary")
auf um die Eingabedaten mit „Mary“ zu füllen.search_results
– legt diese Testmethode fest, hängt von beiden abcheck_google_search_button
undcheck_google_search_input
. Es wird nur die abhängige Methode pass ausführen.
GoogleSearchResultTest.java
package jcg.zheng.testngdemo; import static org.junit.Assert.assertTrue; import static org.testng.Assert.assertEquals; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; import org.testng.annotations.Test; public class GoogleSearchResultTest extends SeleniumTestBase { @Test public void check_google_search_input() { WebElement searchInput = driver.findElement(By.name("q")); assertTrue(searchInput.isDisplayed()); searchInput.sendKeys("Mary"); screenshotFileName = "search_Mary.png"; } @Test public void check_google_search_button() { WebElement searchBtn = driver.findElement(By.name("btnK")); assertTrue(searchBtn.isEnabled()); } @Test(dependsOnMethods = { "check_google_search_input", "check_google_search_button" }) public void search_results() { WebElement searchBtn = driver.findElement(By.name("btnK")); searchBtn.click(); screenshotFileName = "search_Mary_result.png"; assertEquals("Mary - Google Search", driver.getTitle()); } }
Wählen Sie GoogleSearchResultTest
Datei in Eclipse IDE und Rechtsklick auf „Ausführen als -> TestNG Test“. Erfassen Sie die Ausgabe.
Testausgabe
[RemoteTestNG] detected TestNG version 6.8.0 [TestNG] Running: C:\Windows\Temp\testng-eclipse--1473354869\testng-customsuite.xml Starting ChromeDriver 74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}) on port 9517 Only local connections are allowed. Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code. Jun 04, 2019 9:27:27 PM org.openqa.selenium.remote.ProtocolHandshake createSession INFO: Detected dialect: OSS PASSED: check_google_search_button PASSED: check_google_search_input PASSED: search_results =============================================== Default test Tests run: 3, Failures: 0, Skips: 0 =============================================== =============================================== Default suite Total tests run: 3, Failures: 0, Skips: 0 =============================================== [TestNG] Time taken by org.testng.reporters.SuiteHTMLReporter@1817d444: 188 ms [TestNG] Time taken by org.testng.reporters.JUnitReportReporter@130161f7: 12 ms [TestNG] Time taken by org.testng.reporters.XMLReporter@7ed7259e: 26 ms [TestNG] Time taken by org.testng.reporters.jq.Main@1725dc0f: 146 ms [TestNG] Time taken by [FailedReporter passed=0 failed=0 skipped=0]: 0 ms [TestNG] Time taken by org.testng.reporters.EmailableReporter@41fbdac4: 9 ms
4.4 SearchMoreThanOnceTest
TestNG stellt den invocationCount
bereit Attribut zum @Test
Anmerkung, die verwendet werden kann, um denselben Test mehrmals auszuführen.
In diesem Schritt erstelle ich einen check_google_search_results
Methode, die zehnmal nach „Mary Zheng“ sucht. Ich füge auch @BeforeMethod
hinzu um zurück zur Google-Startseite zu navigieren.
SearchMoreThanOnceTest.java
package jcg.zheng.testngdemo; import static org.junit.Assert.assertTrue; import static org.testng.Assert.assertEquals; import java.util.Random; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; public class SearchMoreThanOnceTest extends SeleniumTestBase { @Test(invocationCount = 10) public void check_google_search_results() { WebElement searchInput = driver.findElement(By.name("q")); assertTrue(searchInput.isDisplayed()); searchInput.sendKeys("Mary Zheng"); WebElement searchBtn = driver.findElement(By.name("btnK")); searchBtn.click(); Random random = new Random(); screenshotFileName = "search_MaryZheng_" + random.nextInt(10) + ".png"; assertEquals("Mary Zheng - Google Search", driver.getTitle()); } @BeforeMethod public void backToSearch() { driver.get(GOOGLE_URL); } }
Wählen Sie SearchMoreThanOnceTest
Datei in Eclipse IDE und Rechtsklick auf „Ausführen als -> TestNG Test“. Erfassen Sie die Ausgabe.
Testausgabe
[RemoteTestNG] detected TestNG version 6.8.0 [TestNG] Running: C:\Windows\Temp\testng-eclipse--1432373915\testng-customsuite.xml Starting ChromeDriver 74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}) on port 17724 Only local connections are allowed. Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code. Jun 04, 2019 9:30:13 PM org.openqa.selenium.remote.ProtocolHandshake createSession INFO: Detected dialect: OSS PASSED: check_google_search_results PASSED: check_google_search_results PASSED: check_google_search_results PASSED: check_google_search_results PASSED: check_google_search_results PASSED: check_google_search_results PASSED: check_google_search_results PASSED: check_google_search_results PASSED: check_google_search_results PASSED: check_google_search_results =============================================== Default test Tests run: 10, Failures: 0, Skips: 0 =============================================== =============================================== Default suite Total tests run: 10, Failures: 0, Skips: 0 =============================================== [TestNG] Time taken by org.testng.reporters.SuiteHTMLReporter@1817d444: 376 ms [TestNG] Time taken by org.testng.reporters.JUnitReportReporter@130161f7: 18 ms [TestNG] Time taken by org.testng.reporters.XMLReporter@7ed7259e: 65 ms [TestNG] Time taken by org.testng.reporters.jq.Main@1725dc0f: 132 ms [TestNG] Time taken by [FailedReporter passed=0 failed=0 skipped=0]: 1 ms [TestNG] Time taken by org.testng.reporters.EmailableReporter@41fbdac4: 15 ms
4.5 GmailTest
In diesem Schritt erstelle ich einen GmailTest
Klasse, die zwei Methoden hat:
check_gmail_link
– Es findet den Gmail-Link auf der Google-Startseite und überprüft, ob der Titel „Gmail – Kostenloser Speicherplatz und E-Mail von Google“ lautet, nachdem es darauf geklickt hat.find_not_exist_link
– es wirdNoSuchElementException
ausgegeben beim Auffinden nicht vorhandener Webelemente. TestNG handhabt es über denexpectedExceptions
Attribut.
GmailTest.java
package jcg.zheng.testngdemo; import static org.junit.Assert.assertTrue; import static org.testng.Assert.assertEquals; import org.openqa.selenium.By; import org.openqa.selenium.NoSuchElementException; import org.openqa.selenium.WebElement; import org.testng.annotations.Test; public class GmailTest extends SeleniumTestBase { @Test public void check_gmail_link() { WebElement gmailLink = driver.findElement(By.linkText("Gmail")); assertTrue(gmailLink.isDisplayed()); gmailLink.click(); screenshotFileName = "gmail_page.png"; String gmailTitle = driver.getTitle(); assertEquals("Gmail - Free Storage and Email from Google", gmailTitle); } @Test(expectedExceptions = NoSuchElementException.class) public void find_not_exist_Link() { driver.findElement(By.linkText("mail")); } }
Wählen Sie GmailTest
Datei in Eclipse IDE und Rechtsklick auf „Ausführen als -> TestNG Test“. Erfassen Sie die Ausgabe.
Testausgabe
[RemoteTestNG] detected TestNG version 6.8.0 [TestNG] Running: C:\Windows\Temp\testng-eclipse-1469233723\testng-customsuite.xml Starting ChromeDriver 74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}) on port 20002 Only local connections are allowed. Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code. Jun 04, 2019 9:32:26 PM org.openqa.selenium.remote.ProtocolHandshake createSession INFO: Detected dialect: OSS PASSED: check_gmail_link PASSED: find_not_exist_Link =============================================== Default test Tests run: 2, Failures: 0, Skips: 0 =============================================== =============================================== Default suite Total tests run: 2, Failures: 0, Skips: 0 =============================================== [TestNG] Time taken by org.testng.reporters.SuiteHTMLReporter@1817d444: 178 ms [TestNG] Time taken by org.testng.reporters.JUnitReportReporter@130161f7: 15 ms [TestNG] Time taken by org.testng.reporters.XMLReporter@7ed7259e: 31 ms [TestNG] Time taken by org.testng.reporters.jq.Main@1725dc0f: 122 ms [TestNG] Time taken by [FailedReporter passed=0 failed=0 skipped=0]: 0 ms [TestNG] Time taken by org.testng.reporters.EmailableReporter@41fbdac4: 12 ms
4.6 GmailNewAccountsTest
TestNG unterstützt einen parametrisierten Test mit einem @DataProvider
Anmerkung zusammen mit dem dataProvider
Attribut. In diesem Schritt erstelle ich einen GmailNewAccountsTest
Klasse, die drei neue Gmail-Konten mit dem createGmailUsers
erstellt Methode.
Der Selenium-Webtreiber stellt WebDriverWait
bereit um auf die Seite zu warten, bevor eine Aktion auf die Webelemente angewendet wird.
GmailNewAccountsTest.java
package jcg.zheng.testngdemo; import java.util.ArrayList; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.ui.ExpectedConditions; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; public class GmailNewAccountsTest extends SeleniumTestBase { @Test(dataProvider = "setGmailUsers") public void createGmailUsers(String firstName, String lastName, String username, String pwd) throws InterruptedException { WebElement gmailLink = driver.findElement(By.linkText("Gmail")); gmailLink.click(); WebElement createAcctBtn = webdriverwait .until(ExpectedConditions.elementToBeClickable(By.linkText("Create an account"))); createAcctBtn.click(); webdriverwait.until(ExpectedConditions.numberOfWindowsToBe(2)); ArrayList<String> windowsTabs = new ArrayList<>(driver.getWindowHandles()); driver.switchTo().window(windowsTabs.get(windowsTabs.size() - 1)); // switch to the new tab Thread.sleep(2000); WebElement fnameEle = webdriverwait .until(ExpectedConditions.elementToBeClickable(By.id("firstName"))); fnameEle.sendKeys(firstName); WebElement lnameEle = webdriverwait .until(ExpectedConditions.elementToBeClickable(By.id("lastName"))); lnameEle.sendKeys(lastName); WebElement unameEle = webdriverwait .until(ExpectedConditions.elementToBeClickable(By.id("username"))); unameEle.sendKeys(username); WebElement pwdEle = webdriverwait .until(ExpectedConditions.elementToBeClickable(By.name("Passwd"))); pwdEle.sendKeys(pwd); driver.close(); driver.switchTo().window(windowsTabs.get(0));// switch back to the main Thread.sleep(2000); } @DataProvider public Object[][] setGmailUsers() { return new Object[][] { { "firstName", "lastname", "flname", "pwd" }, { "Mary", "Zheng", "mzheng", "pwd2" }, { "Allen", "Zheng", "aZheng", "pwd3" } }; } }
Testausgabe
Wählen Sie GmailNewAccountsTest
Datei in Eclipse IDE und Rechtsklick auf „Ausführen als -> TestNG Test“. Erfassen Sie die Ausgabe.
[RemoteTestNG] detected TestNG version 6.8.0 [TestNG] Running: C:\Windows\Temp\testng-eclipse-707167101\testng-customsuite.xml Starting ChromeDriver 74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}) on port 20723 Only local connections are allowed. Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code. Jun 04, 2019 9:34:10 PM org.openqa.selenium.remote.ProtocolHandshake createSession INFO: Detected dialect: OSS PASSED: createGmailUsers("firstName", "lastname", "flname", "pwd") PASSED: createGmailUsers("Mary", "Zheng", "mzheng", "pwd2") PASSED: createGmailUsers("Allen", "Zheng", "aZheng", "pwd3") =============================================== Default test Tests run: 3, Failures: 0, Skips: 0 =============================================== =============================================== Default suite Total tests run: 3, Failures: 0, Skips: 0 =============================================== [TestNG] Time taken by org.testng.reporters.SuiteHTMLReporter@1817d444: 186 ms [TestNG] Time taken by org.testng.reporters.JUnitReportReporter@130161f7: 12 ms [TestNG] Time taken by org.testng.reporters.XMLReporter@7ed7259e: 33 ms [TestNG] Time taken by org.testng.reporters.jq.Main@1725dc0f: 144 ms [TestNG] Time taken by [FailedReporter passed=0 failed=0 skipped=0]: 0 ms [TestNG] Time taken by org.testng.reporters.EmailableReporter@41fbdac4: 5 ms
5. Testsuite-XML
TestNG gruppiert eine Reihe von Testklassen in einer XML-Datei. Das Eclipse TestNG-Plug-in generiert automatisch die XML-Datei für die Testklassen, nachdem Sie mit der rechten Maustaste auf „Ausführen als -> TestNG-Test“ geklickt haben. TestNG generiert eine Reihe von Berichten für die Testergebnisse. Hier ist mein Projekt, das zeigt
5.1 TestNG_google.xml
In diesem Schritt erstelle ich einen TestNG_google.xml
um zwei Tests zu bündeln:
- Google Search Test – bündelt drei Testklassen:
GoogleSearchTest
,GoogleSearchResult
, undSearchMoreThanOnceTest
. - Google Mail-Test – enthält
GmailTest
.
TestNG_google.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Google Search Suites"> <test name="Google Search Test" verbose="2"> <classes> <class name="jcg.zheng.testngdemo.GoogleSearchTest" /> <class name="jcg.zheng.testngdemo.GoogleSearchResultTest" /> <class name="jcg.zheng.testngdemo.SearchMoreThanOnceTest"> <methods> <include name="check_google_search_results" /> </methods> </class> <!-- jcg.zheng.testngdemo.SearchMoreThanOnceTest --> </classes> </test> <test name="Gmail Test" verbose="2"> <classes> <class name="jcg.zheng.testngdemo.GmailTest" /> </classes> </test> <!-- Default test --> </suite> <!-- Default suite -->
Wählen Sie TestNG_google.xml
Datei und Rechtsklick auf „Ausführen als -> TestNG Suite“. Es führt die Tests aus und gibt die Ergebnisse aus. Es generiert auch die HTML-Berichte. Hier ist der Screenshot des HTML-Berichts.
5.2 TestNG_gmail.xml
In diesem Schritt erstelle ich einen TestNG_gmail.xml
um beide GmailTest
zu bündeln und GmailNewAccountsTest
Klassen. Außerdem wird das Timeout für die Testsuite auf 1 Minute eingestellt.
TestNG_gmail.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Gmail suite" time-out="60000"> <test name="Gmail test" verbose="2"> <classes> <class name="jcg.zheng.testngdemo.GmailTest"/> <class name="jcg.zheng.testngdemo.GmailNewAccountsTest" /> </classes> </test> </suite>
Wählen Sie TestNG_gmail.xml
Datei und Rechtsklick auf „Ausführen als -> TestNG Suite“. Es führt die Tests aus und gibt die Ergebnisse aus. Es generiert auch die HTML-Berichte. Hier ist der Screenshot des HTML-Berichts.
6. TestNG Selenium Scripts erstellen – Zusammenfassung
In diesem Artikel habe ich Automatisierungstestskripte für Google-Websites mit Selenium und TestNG erstellt.
7. Laden Sie den Quellcode herunter
Dieses Tutorial besteht aus einem Maven-Projekt, das automatisierte Selenium-Skripte erstellt hat, um die Google-Websites zu testen.selenium