欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java+testng+selenium的自動化測試實例

 更新時間:2022年11月15日 14:25:48   作者:瀟灑卻風流  
這篇文章主要介紹了java+testng+selenium的自動化測試實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

前言

這是用testng框架加selenium做的一個UI自動化測試的項目

Java代碼

package com.justin;

/**
?* @author justin-zhu
?* <p>
?* 2022年02月23日 16:48
?*/

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.Assert;
import org.testng.annotations.*;
import java.util.concurrent.TimeUnit;

public class HelloTestNG {

? ? private WebDriver driver;
? ? @BeforeMethod
? ? public void setBefore(){
? ? ? ??
? ? ? ? System.setProperty("webdriver.chrome.driver","C:\\Users\\betalpha-qa\\code\\testcode\\TestNG-Demo\\src\\main\\resources\\chromedriver.exe");
? ? ? ? //打開瀏覽器,使其最大化,并隱性等待兩秒鐘
? ? ? ? driver = new ChromeDriver();
? ? ? ? driver.manage().window().maximize();
? ? ? ? driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
? ? }

? ? @AfterMethod
? ? public void setAfter(){
? ? ?? ?//結(jié)束驅(qū)動程序進程,關(guān)閉瀏覽器
? ? ? ? driver.quit();
? ? }

? ? @Test(groups = {"login"})
? ? public void login() throws InterruptedException {

? ? ? ? //輸入網(wǎng)址(輸入本地項目的URL,下面為本地項目的登陸界面)
? ? ? ? driver.get("http://192.168.0.188/webapp/session/login");
? ? ? ? driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
? ? ? ? //使用其方法獲取瀏覽器類型,并斷言(如果斷言失敗,不會執(zhí)行下面代碼)
? ? ? ? String browserType = driver.getTitle();
? ? ? ? Assert.assertEquals("Google", browserType);
? ? ? ? //獲取賬號框定位
? ? ? ? WebElement userName = driver.findElement(By.xpath("http://*[@id=\"app\"]/div/div/form/div/div[2]/div/div[1]/div/input"));
? ? ? ? //獲取密碼框定位
? ? ? ? WebElement password = driver.findElement(By.xpath("http://*[@id=\"app\"]/div/div/form/div/div[3]/div/div[1]/div/div/span/input"));
? ? ? ? //獲取驗證碼框定位
? ? ? ? WebElement authCode = driver.findElement(By.xpath("http://*[@id=\"app\"]/div/div/form/div/div[4]/div/div/div[1]/div/input"));
? ? ? ? WebElement loginButton = driver.findElement(By.xpath("http://*[@id=\"app\"]/div/div/form/div/div[5]/div/div/div/button"));
? ? ? ? //輸入賬號密碼登錄,并點擊登錄
? ? ? ? userName.sendKeys("jusitn@qq.com");
? ? ? ? password.sendKeys("123456");
? ? ? ? authCode.sendKeys("1234");
? ? ? ? driver.manage().timeouts().implicitlyWait(5,TimeUnit.SECONDS);
? ? ? ? loginButton.click();
? ? ? ? driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
? ? ? ? //獲取登錄界面的title,驗證登錄成功
? ? ? ? WebElement title = driver.findElement(By.xpath("http://*[@id=\"logo\"]/div/div/div[1]/h1"));
? ? ? ? String actual = title.getText();
? ? ? ? Assert.assertEquals(actual, "指數(shù)研發(fā)與管理平臺");
? ? }

? ?@Test(description = "定位百度一下")
? ? public void testBaiDu(){
? ? ? ? //輸入網(wǎng)址
? ? ? ? driver.get("https://www.baidu.com/");
? ? ? ? driver.manage().timeouts().implicitlyWait(2,TimeUnit.SECONDS);
? ? ? ? //定位到百度一下按鈕
? ? ? ? WebElement name = driver.findElement(By.id("su"));
? ? ? ? String text = name.getAttribute("value");
? ? ? ? Assert.assertEquals(text, "百度一下");
?? ?}
?? ?
?? ?@Test(groups = {"fast"})
? ? public void aFastTest(){
? ? ? ? System.out.println("Fast test");
? ? }

? ? @Test(groups = {"slow"})
? ? public void aSlowTest(){
? ? ? ? System.out.println("Slow test");
? ? }
}

配置文件

要想上面的test能跑起來,還需要再pon.xml文件里面添加以下依賴

<!-- https://mvnrepository.com/artifact/org.testng/testng -->
? ? ? ? <dependency>
? ? ? ? ? ? <groupId>org.testng</groupId>
? ? ? ? ? ? <artifactId>testng</artifactId>
? ? ? ? ? ? <version>6.14.3</version>
? ? ? ? ? ? <scope>test</scope>
? ? ? ? </dependency>

這是testng框架的依賴,有了這個依賴testng的注釋才會生效

<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-server -->
? ? ? ? <dependency>
? ? ? ? ? ? <groupId>org.seleniumhq.selenium</groupId>
? ? ? ? ? ? <artifactId>selenium-server</artifactId>
? ? ? ? ? ? <version>3.14.0</version>
? ? ? ? </dependency>

如果你只在本地運行代碼,那么有selenium-java就夠了;但是如果要在遠程調(diào)用,就需要配置該selenium-server依賴

?? ??? ?<dependency>
? ? ? ? ? ? <groupId>org.seleniumhq.selenium</groupId>
? ? ? ? ? ? <artifactId>selenium-chrome-driver</artifactId>
? ? ? ? ? ? <version>2.42.2</version>
? ? ? ? </dependency>

這是想要再界面上操作元素配置的依賴

擴展

testng用例可以直接運行java代碼,也可以配置testng.xml文件進行用例的執(zhí)行

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name = "testProj">
? ? <test name = "testDemo1">

<!-- ? ? ? ?.XML中指定組內(nèi)的某些方法,include為執(zhí)行,exclude為不執(zhí)行-->
? ? ? ? <groups>
? ? ? ? ? ? <run>
? ? ? ? ? ? ? ? <exclude name="fast"/>
? ? ? ? ? ? ? ? <exclude name="slow"/>
? ? ? ? ? ? ? ? <include name="login"/>
? ? ? ? ? ? </run>
? ? ? ? </groups>

<!-- ? ? ? ?.XML指明測試類,按照類名執(zhí)行-->
? ? ? ? <classes>
? ? ? ? ? ? <class name="com.justin.HelloTestNG"/>
? ? ? ? </classes>

<!-- ? ? ? ?.XML指定包名,執(zhí)行包內(nèi)的所有測試類-->
<!-- ? ? ? ?<packages>-->
<!-- ? ? ? ? ? ?<package name="com.justin"></package>-->
<!-- ? ? ? ?</packages>-->
? ? </test>
? ??
? ? <listeners>
? ? ? ? <listener class-name="org.uncommons.reportng.HTMLReporter"></listener>
? ? ? ? <listener class-name="org.uncommons.reportng.JUnitXMLReporter"></listener>
? ? </listeners>
</suite>

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 將springboot項目生成可依賴的jar并引入到項目中的方法

    將springboot項目生成可依賴的jar并引入到項目中的方法

    SpringBoot項目默認打包的是可運行jar包,也可以打包成不可運行的jar包,本文給大家介紹將springboot項目生成可依賴的jar并引入到項目中的方法,感興趣的朋友一起看看吧
    2023-11-11
  • Java如何獲取resources下的文件路徑和創(chuàng)建臨時文件

    Java如何獲取resources下的文件路徑和創(chuàng)建臨時文件

    這篇文章主要介紹了Java如何獲取resources下的文件路徑和創(chuàng)建臨時文件,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Java自定義標簽用法實例分析

    Java自定義標簽用法實例分析

    這篇文章主要介紹了Java自定義標簽用法,結(jié)合實例形式分析了java自定義標簽的定義、使用方法與相關(guān)注意事項,需要的朋友可以參考下
    2017-11-11
  • Java全面詳細講解邏輯控制的使用

    Java全面詳細講解邏輯控制的使用

    在程序開發(fā)的過程之中一共會存在三種程序邏輯:順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu),對于之前所編寫的代碼大部分都是順序結(jié)構(gòu)的定義,即:所有的程序?qū)凑斩x的代碼順序依次執(zhí)行,讓我們來深入探討一下
    2022-04-04
  • Java實現(xiàn)基于JDBC操作mysql數(shù)據(jù)庫的方法

    Java實現(xiàn)基于JDBC操作mysql數(shù)據(jù)庫的方法

    這篇文章主要介紹了Java實現(xiàn)基于JDBC操作mysql數(shù)據(jù)庫的方法,結(jié)合實例形式分析了java使用JDBC實現(xiàn)針對mysql數(shù)據(jù)庫的連接、查詢、輸出等相關(guān)操作技巧,需要的朋友可以參考下
    2017-12-12
  • JSON.toJSONString使用異常分析

    JSON.toJSONString使用異常分析

    這篇文章主要為大家介紹了JSON.toJSONString使用異常分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • SpringBoot中使用Thymeleaf模板詳情

    SpringBoot中使用Thymeleaf模板詳情

    這篇文章主要介紹了SpringBoot中使用Thymeleaf模板詳情,hymeleaf是適用于Web和獨立環(huán)境的現(xiàn)代服務(wù)器端Java模板引擎,能夠處理HTML,XML,JavaScript,CSS甚至純文本,下文更多相關(guān)資料介紹需要的小伙伴可以參考一下
    2022-04-04
  • springboot集成測試里的redis

    springboot集成測試里的redis

    這篇文章主要介紹了springboot集成測試里的redis,本文給大家分享了源碼,添加依賴添加mock的方法,需要的朋友可以參考下
    2018-11-11
  • SpringBoot整合Vue實現(xiàn)微信掃碼支付以及微信退款功能詳解

    SpringBoot整合Vue實現(xiàn)微信掃碼支付以及微信退款功能詳解

    最近公司要在微信公眾號上做一個活動預(yù)報名,活動的門票等需要在微信中支付,下面這篇文章主要給大家介紹了關(guān)于SpringBoot整合Vue實現(xiàn)微信掃碼支付以及微信退款功能的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • Java判斷變量是否為空問題的方法總結(jié)

    Java判斷變量是否為空問題的方法總結(jié)

    項目中經(jīng)常遇到對象判空,下面這篇文章主要給大家介紹了關(guān)于Java判斷變量是否為空問題的方法,文中通過實例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2023-04-04

最新評論