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/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

发表回复

登录后才能评论