AppiumJava修鍊之路

一、AppiumJava介紹

AppiumJava是一個流行的自動化測試框架,能夠跨平台進行測試,支持Android和iOS等多個平台的應用程序的測試。

其主要使用Java語言進行編寫,在測試的過程中,主要使用WebDriver協議進行通訊,然後使用JSON Wire協議來進行測試操作,與其他的測試框架比較類似。

二、環境配置

配置AppiumJava測試環境需要考慮到以下幾個方面:

1. 安裝Java SDK

AppiumJava測試框架是使用Java編寫的,因此在測試之前需要首先安裝Java SDK。可以在Oracle官網下載Java SDK安裝包,並進行安裝。

2. 安裝Eclipse IDE

AppiumJava測試框架的核心部分是Java代碼,在實現測試時需要使用Java開發工具來進行代碼編寫和管理。Eclipse IDE是一個流行的Java開發工具,可以在Eclipse官網下載安裝包並進行安裝。

3. 安裝Appium Desktop

AppiumJava測試框架需要連接到設備或者模擬器,依賴於Appium服務器來進行操作。Appium Desktop是一個開源的桌面應用程序,可以安裝並啟動Appium服務器,並提供用戶界面進行測試腳本的編寫和執行。可以在Appium Desktop官網下載並進行安裝。

三、AppiumJava測試腳本編寫

AppiumJava測試腳本是Java語言編寫的,可以在Eclipse IDE中創建項目,引入相應的AppiumJava依賴庫。

1. 元素定位

元素定位是AppiumJava測試中的一個重要步驟。可以使用以下方法進行。

1)通過id定位

WebElement element = driver.findElement(By.id("element_id"));

2)通過name定位

WebElement element = driver.findElement(By.name("element_name"));

3)通過class name定位

WebElement element = driver.findElement(By.className("element_class"));

4)通過tag name定位

WebElement element = driver.findElement(By.tagName("element_tag"));

5)通過xpath定位

WebElement element = driver.findElement(By.xpath("element_xpath"));

2. 執行測試用例

執行測試用例時,需要初始化WebDriver對象並啟動Appium服務,然後進行元素定位和操作,並使用斷言來進行結果判斷。

public class AppiumTest {

    public static void main(String[] args) throws MalformedURLException, InterruptedException {

        // 初始化WebDriver對象
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
        capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");
        capabilities.setCapability(MobileCapabilityType.APP, "path/to/app.apk");

        // 啟動Appium服務並連接Android模擬器
        URL url = new URL("http://127.0.0.1:4723/wd/hub");
        AndroidDriver driver = new AndroidDriver(url, capabilities);

        // 定位元素並執行操作
        MobileElement el1 = (MobileElement) driver.findElementById("element_id");
        el1.click();

        // 斷言測試結果
        Assert.assertTrue(driver.findElementByName("result_name").getText().equals("expected_result"));

        // 關閉Appium服務
        driver.quit();
    }
}

四、AppiumJava測試報告生成

生成測試報告是AppiumJava測試過程中的重要步驟。可以使用開源的ExtentReports庫來進行測試報告的生成和管理。

1. 引入ExtentReports依賴庫

在pom.xml文件中添加如下依賴庫:

<dependency>
   <groupId>com.aventstack</groupId>
   <artifactId>extentreports</artifactId>
   <version>4.1.3</version>
</dependency>

2. 生成測試報告

在測試腳本執行後,可以使用ExtentReports庫生成測試報告,並保存為HTML文件。

public class AppiumTest {

    private static ExtentReports extent;
    private static ExtentTest test;

    public static void main(String[] args) throws MalformedURLException, InterruptedException {

        // 初始化WebDriver對象
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
        capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");
        capabilities.setCapability(MobileCapabilityType.APP, "path/to/app.apk");

        // 啟動Appium服務並連接Android模擬器
        URL url = new URL("http://127.0.0.1:4723/wd/hub");
        AndroidDriver driver = new AndroidDriver(url, capabilities);

        // 創建ExtentReports測試報告對象
        extent = new ExtentReports();
        ExtentHtmlReporter htmlReporter = new ExtentHtmlReporter("test-output/extent.html");
        extent.attachReporter(htmlReporter);
        test = extent.createTest("Test Title", "Test Description");

        // 定位元素並執行操作
        MobileElement el1 = (MobileElement) driver.findElementById("element_id");
        el1.click();

        // 斷言測試結果
        Assert.assertTrue(driver.findElementByName("result_name").getText().equals("expected_result"));

        // 記錄測試日誌
        test.log(Status.PASS, "Test Passed");

        // 關閉Appium服務
        driver.quit();

        // 生成測試報告
        extent.flush();
    }
}

五、AppiumJava實戰案例

以下是一個使用AppiumJava測試框架進行人臉識別App測試的案例。

測試目標:測試人臉識別App是否能夠成功識別人臉並返回正確結果。

1. 元素定位

定位App界面上的元素,可以使用Appium Desktop提供的元素查看器來定位元素。

例如,需要定位人臉識別按鈕,可以使用id或者name來定位。

MobileElement recognizeButton = (MobileElement) driver.findElementById("recognize_button_id");

2. 執行測試用例

點擊人臉識別按鈕,然後等待識別結果,最後使用斷言來判斷測試結果是否正確。

recognizeButton.click();
Thread.sleep(5000);
MobileElement result = (MobileElement) driver.findElementById("result_id");
Assert.assertEquals("Test passed", "expected_result", result.getText());

3. 生成測試報告

使用ExtentReports庫生成測試報告,然後保存為HTML文件。

extent = new ExtentReports();
ExtentHtmlReporter htmlReporter = new ExtentHtmlReporter("test-output/extent.html");
extent.attachReporter(htmlReporter);
test = extent.createTest("人臉識別測試", "使用AppiumJava測試框架對人臉識別App進行測試");

recognizeButton.click();
Thread.sleep(5000);
MobileElement result = (MobileElement) driver.findElementById("result_id");
Assert.assertEquals("Test passed", "expected_result", result.getText());
test.log(Status.PASS, "人臉識別測試通過");

extent.flush();

六、總結

AppiumJava測試框架是一個強大的自動化測試工具,使用Java編寫的測試腳本可以跨平台進行測試,並能夠對Android和iOS等多個平台的應用程序進行測試。

在使用AppiumJava進行測試之前,需要安裝Java SDK、Eclipse IDE、Appium Desktop等工具,並對測試設備或模擬器進行配置。

測試腳本中主要使用WebDriver對象進行元素定位和操作,並使用斷言進行結果判斷。可以使用ExtentReports庫生成測試報告,並保存為HTML格式文件。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/186644.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-27 05:47
下一篇 2024-11-27 05:47

相關推薦

  • 小波特掘金——從前端到後端的全棧開發之路

    本文將從小波特掘金平台的概述、前端和後端技術棧、以及實例代碼等多個方面來探討小波特掘金作為一個全棧開發工程師的必練平台。 一、平台概述 小波特掘金是一個前後端分離式的技術分享社區,…

    編程 2025-04-27
  • 尹文 IBM 的全能編程之路

    尹文 IBM 是一位全能的編程開發工程師,他掌握着多種技能,如 Java、Python、Node.js 等。在這篇文章中,我們將從多個方面對他進行詳細闡述。 一、學習和實踐經驗 在…

    編程 2025-04-27
  • Python自學之路

    本篇文章將從多個方面對Python自學路線進行詳細闡述,希望能夠對那些想要學習Python的人提供一些參考。 一、Python基礎語法 Python作為一門大眾化編程語言,其基礎語…

    編程 2025-04-27
  • 使用ORM框架的技巧——從ORMlite到Java持久化之路

    ORM框架是一種將數據庫的數據轉換為面向對象數據的工具,能夠讓開發者更加專註於業務邏輯的編寫,而不用關心數據的處理。本文以ORMlite為切入點,介紹如何使用ORM框架進行Java…

    編程 2025-04-24
  • CSND搜索——搜索技術的進化之路

    一、全文搜索 CSND搜索最初始的版本基於全文搜索技術,該技術主要是通過全匹配和分詞匹配實現搜索結果的排序。針對全匹配,當搜索關鍵詞與文章標題或正文內容完全匹配時,搜索引擎將會把這…

    編程 2025-02-24
  • python大師之路的簡單介紹

    本文目錄一覽: 1、《Python高手之路》epub下載在線閱讀,求百度網盤雲資源 2、python三本經典書籍都是什麼? 3、python怎麼成為高手 知乎 4、《Python高…

    編程 2025-01-14
  • python全棧之路系列(Python全棧開發)

    本文目錄一覽: 1、python全棧指的是什麼意思 2、一套完整的python學習體系是什麼,如何進行學習 3、python全棧開發是什麼 4、如何成為Python全棧工程師 一般…

    編程 2025-01-09
  • python之路1(python之路pdf)

    本文目錄一覽: 1、python培訓入門教程?怎樣入門呢? 2、如何把Python入門? 3、《Python高手之路》epub下載在線閱讀全文,求百度網盤雲資源 4、python初…

    編程 2025-01-01
  • Python學習之路:打造高效編程思維

    作為一門高效、易用、廣泛應用的編程語言,Python吸引了越來越多的開發者的關注。在學習Python的過程中,除了熟練掌握語法和基本編程知識外,還需要培養高效編程思維。本文將從多個…

    編程 2025-01-01
  • 探索騰訊社區開放平台之路

    一、平台介紹 騰訊社區開放平台是騰訊公司推出的一款開放平台產品,為開發者提供了一種全新的開放、互動式的社交應用開發平台。平台整合了騰訊公司旗下的QQ空間、騰訊微博、QQ好友等業務,…

    編程 2024-12-31

發表回復

登錄後才能評論