一、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-tw/n/186644.html