Selenium+Java+TestNG進行web自動化測試
1、學習web自動化,先要了解webdriver基礎知識,因為Selenium是基於webdriver技術實現自動化的。
Eclipse環境、webdriver基礎部分請參考:https://www.cnblogs.com/wmjone/p/9565596.html
2、基礎知識掌握以後,在eclipse裡下載TestNG框架,為啥不選JUint而選TestNG,因為TestNG自帶HTML報告。
TestNG外掛下載配置,請參考:https://www.cnblogs.com/xusweeter/p/6559196.html
3、上面完成以後Selenium+Java+TestNG進行web自動化測試已經成功了,由於TestNG自帶的HTML報告不是很完美,所以再作進一步處理,利用ReportNG修正報告部分。
[1]、先下載ReportNG所需jar包新增到eclipse關聯,然後配置testng.xml檔案(改用ReportNG生成HTML報告);
[2]、專案預設不建立testng.xml檔案,需手動建立,專案上點選右鍵選"TestNG"--"Convert to TestNG";
[3]、勾選Generate testng.xml,並設定testng.xml相關資訊,點選Next直至Finish;
[4]、開啟testng.xml作如下配置;
<listeners>
<listener class-name="org.uncommons.reportng.HTMLReporter" />
<listener class-name="org.uncommons.reportng.JUnitXMLReporter" />
</listeners>
[5]、專案上點選右鍵選"Properties"開啟配置頁,選"TestNG"作如下配置(取消TestNG的預設監聽);
[6]、執行java檔案,或者在testng.xml檔案上點選右鍵選"Run As"--"TestNG Suite"即可生成HTML報告;
[7]、報告預設存放在專案目錄的test-output資料夾下;
[8]、開啟index.html報告如下
[9]、測試程式碼如下
package com.selenium;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.Assert;
import org.testng.Reporter;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.AfterTest;
public class allTest {
// 建立ChromeDriver物件
WebDriver driver = new ChromeDriver();
@Test
public void case1() throws Exception {
// 執行js指令碼(彈窗)
String jstring = "alert('12345')";
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript(jstring);
Thread.sleep(2000);
// 處理彈窗
Alert confirm = driver.switchTo().alert();
// 獲取彈窗內容
confirm.getText();
// 相當於點選確認
confirm.accept();
// 斷言響應結果
String stitle = driver.getTitle();
Assert.assertEquals(stitle, "百度一下,你就知道");
WebElement elem = driver.findElement(By.id("kw"));
elem.clear();
elem.sendKeys("上海");
Reporter.log("case1通過");
Thread.sleep(2000);
}
@Test
public void case2() throws Exception {
// 執行js指令碼(彈窗)
String jstring = "alert('web測試')";
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript(jstring);
Thread.sleep(2000);
// 處理彈窗
Alert confirm = driver.switchTo().alert();
// 獲取彈窗內容
confirm.getText();
// 相當於點選確認
confirm.accept();
// 斷言響應結果
String stitle = driver.getTitle();
Assert.assertEquals(stitle, "百度一下,你就知道");
WebElement elem = driver.findElement(By.id("kw"));
elem.clear();
elem.sendKeys("北京");
Reporter.log("case2通過");
Thread.sleep(2000);
}
@BeforeTest
public void beforeTest() {
// 設定驅動
System.setProperty("webdriver.chrome.driver", "D:\\data\\webdriver\\chromedriver.exe");
// 使視窗最大化
driver.manage().window().maximize();
// 開啟指定網頁
driver.get("http://www.baidu.com");
}
@AfterTest
public void afterTest() {
// 關閉瀏覽器
driver.quit();
}
}
附:ReportNG所需jar包下載地址
相關文章
- 使用PostMan進行自動化測試Postman
- 使用 PostMan 進行自動化測試Postman
- 加速Web自動化測試Web
- Flutter應用進行自動化測試Flutter
- 真的要進行介面測試自動化?
- Appium自動化(15) - 針對 webview 進行自動化測試APPWebView
- 使用 Headless Chrome 進行自動化測試Chrome
- 使用 Robot Framework 進行自動化視覺測試Framework視覺
- Android使用Espresso進行UI自動化測試AndroidEspressoUI
- 使用QTP進行非GUI的自動化測試QTGUI
- 14 Web 自動化測試 -- PageObject 思想WebObject
- 利用 Selenium 自動化 web 測試Web
- Web自動化-Selenium自動化測試-4-編寫測試用例Web
- 自己動手寫Web自動化測試框架(6):自動化測試框架的規劃Web框架
- 測中策---我的Web自動化測試思路Web
- 自動化測試系列 —— UI自動化測試UI
- 自己動手寫Web自動化測試框架Web框架
- 用QTP進行GMail郵箱的自動化測試QTAI
- 關於Web端-UI自動化測試WebUI
- 大佬對 WEB 自動化測試的看法Web
- UI自動化測試-web元素選擇UIWeb
- JMeter做WEB和API自動化測試JMeterWebAPI
- 用Robotium對android進行自動化測試的探索Android
- [IOS]IOS如何模擬弱網進行自動化測試iOS
- 怎樣開始用selenium進行自動化測試?
- 大佬答疑解惑丨進行Web自動化測試,為什麼總是定位不到元素?Web
- 自動化測試進階課程——Selenium自動化測試通關實戰班
- 【自動化測試入門】自動化測試思維
- 《QTP自動化測試進階》樣章QT
- 面向開發的測試技術(三):Web自動化測試Web
- CukeTest+Puppeteer的Web自動化測試(二)Web
- CukeTest+Puppeteer的Web自動化測試(一)Web
- Web自動化測試:xpath & CSS Selector定位WebCSS
- [原創]淺談Web UI自動化測試WebUI
- web自動化測試框架-06 如何快速編寫自動化指令碼Web框架指令碼
- 自己動手寫Web自動化測試框架(1) :概述Web框架
- 多個 iOS 裝置同時進行 UI 自動化測試iOSUI
- robotframework + appium進行自動化測試時遇到的問題FrameworkAPP