【UI自動化-1】UI自動化環境搭建與簡單示例

1 準備工作

UI自動化的工具選型如下:

  1. 編程語言:Java
  2. 編程IDE:IDEA
  3. 項目管理構建:maven,詳情見 maven安裝與使用
  4. UI自動化測試:selenium3.0
  5. 版本管理:git
  6. 持續集成:Jenkins,詳情見:
  7. 瀏覽器:chrome
  8. webdriver:地址備用地址,下載後解壓到特定文件夾

2 項目構建

新建一個maven項目:
在這裏插入圖片描述
這裏有一個坑:注意上圖中紅框信息,這裏要選擇自己安裝的jdk,不然後續項目中會有莫名其妙的報錯。

添加pom依賴,pom.xml文件全文如下:

<?xml version="1.0" encoding="UTF-8"?>
<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>org.example</groupId>
    <artifactId>test-automation-ui</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <java.version>1.8</java.version>
        <selenium.version>3.4.0</selenium.version>
        <testng.version>6.14.3</testng.version>
    </properties>

    <dependencies>
        <!-- selenium-java -->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>${selenium.version}</version>
        </dependency>
      
        <!-- https://mvnrepository.com/artifact/org.testng/testng -->
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>${testng.version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

可以在這個 地址 中查找相應的依賴地址:
在這裏插入圖片描述

編寫示例

下面編寫一個簡單的示例。

首先,創建一個Driver類,這個類主要是封裝了webDriver,目前只提供了chrome的driver,後續可以添加Firefox等,在使用時直接從該類中調用相應方法即可。

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;

/**
 * @author muguozheng
 * @date 2020/4/5 11:27
 * @Description: driver配置
 * @modify
 */
public class Driver {
    WebDriver driver;

    public WebDriver chromeDriver() {
        String driverPath =  "E:/source/driver/chromedriver_80_2.exe";
        System.setProperty("webdriver.chrome.driver",driverPath);

        ChromeOptions options = new ChromeOptions();
        options.addArguments("--start-maximized"); // 啓動時自動最大化窗口
        options.addArguments("--disable-popup-blocking"); // 禁用阻止彈出窗口
        options.addArguments("no-sandbox"); // 啓動無沙盒模式運行
        options.addArguments("disable-extensions"); // 禁用擴展
        options.addArguments("no-default-browser-check"); // 默認瀏覽器檢查
        Map<String, Object> prefs = new HashMap();
        prefs.put("credentials_enable_service", false);
        prefs.put("profile.password_manager_enabled", false);
        options.setExperimentalOption("prefs", prefs);// 禁用保存密碼提示框

        driver = new ChromeDriver(options);
        //設置尋找一個元素的時間
        driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
        return driver;
    }
}

接着,創建一個測試類:

import com.common.Driver;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

/**
 * @author muguozheng
 * @date 2020/4/5 12:47
 * @Description: demo
 * @modify
 */
public class SeleniumTest {
   
        WebDriver driver;

        @BeforeTest
        public void init() {
            String url = "http://www.baidu.com";

            // 新建一個瀏覽器句柄
            driver = new Driver().chromeDriver();
            //打開URL
            driver.get(url);
        }

        @Test
        @Parameters("keyWords")
        public void search(String keyWords) throws InterruptedException {
            //輸入搜索字符串
            driver.findElement(By.xpath("//*[@id=\"kw\"]")).sendKeys(keyWords);
            //點擊[百度一下]按鈕
            driver.findElement(By.xpath("//*[@id=\"su\"]")).click();
            Thread.sleep(2000);
        }

        @AfterTest
        public void teardown() {
            driver.quit();
        }
}

第三步,新建一個test.xml文件,並寫入測試配置

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

<suite name="Test Of TestNG">
    <test verbose="2" name="百度搜索">
        <parameter name="keyWords" value="測試" />
        <parameter name="keyWords" value="測試" />
        <classes>
            <class name="SeleniumTest">
                <methods>
                    <include name="search" />
                </methods>
            </class>
        </classes>
    </test>
</suite>

在文件上郵件單擊運行該文件,即可執行。
在這裏插入圖片描述
至此,一個較爲完整的測試demo完成,後續會有更詳細全面的總結。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章