Appium —— 移动应用自动化测试开源工具!

Appium介绍

Appium是一个用于自动化移动应用程序的开源工具,它支持iOS和Android平台。通过Appium,开发人员可以使用各种编程语言(如Java、Python、Ruby等)编写测试脚本,以自动化测试移动应用程序的功能和用户界面。Appium使用WebDriver协议来驱动各种移动设备,因此可以与各种测试框架和工具集成,如JUnit、TestNG、Appium Desktop等。

Appium特点:

  1. 跨平台支持:可以在iOS、Android和Windows平台上运行测试。

  2. 使用现有工具和框架:可以使用现有的测试框架和工具,如Selenium、WebDriver和TestNG。

  3. 支持多种编程语言:可以使用多种编程语言编写测试脚本,如Java、Python、Ruby等。

  4. 支持原生、混合和移动Web应用程序:可以测试各种类型的移动应用程序。

  5. 集成性:可以与各种集成开发环境(IDE)和持续集成(CI)工具集成。

    现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
    如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
    可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
    分享他们的经验,还会分享很多直播讲座和技术沙龙
    可以免费学习!划重点!开源的!!!
    qq群号:691998057【暗号:csdn999】

Appium安装

首先需要安装Appium服务器和相关的驱动程序,然后编写测试脚本来控制移动应用程序。使用Appium提供的API来定位元素、模拟用户操作、获取应用程序的状态等。

安装Appium服务器:

  1. 安装Node.js:可以在Node.js官网上下载安装包,并按照指示进行安装。

  2. 安装Appium:在命令行中使用npm安装Appium。在命令行中输入以下命令:

    复制代码
    npm install -g appium
  3. 安装Appium Doctor(可选):Appium Doctor是一个用于检查Appium环境的工具,可以帮助你解决安装和配置过程中的问题。在命令行中输入以下命令安装Appium Doctor:

    复制代码
    npm install -g appium-doctor
  4. 启动Appium服务器:在命令行中输入以下命令启动Appium服务器:

    复制代码
    appium

    确保Appium服务器成功启动,并记录下服务器的地址和端口号。

安装Appium客户端:

  1. 安装Appium Desktop(可选):Appium Desktop是一个图形界面工具,可以帮助你更方便地管理Appium服务器和创建测试用例。可以在Appium Desktop官网https://github.com/appium/appium-desktop上下载安装包,并按照指示进行安装。

  2. 使用Appium客户端库:如果在代码中使用Appium进行自动化测试,可以使用Appium提供的客户端库,如Appium Java客户端、Appium Python客户端等。可以在相应的语言环境中使用包管理工具安装这些库。

Appium使用

Appium是一个用于移动应用自动化测试的开源工具,它支持iOS、Android和Windows平台上的原生应用、混合应用和移动网页应用。

假设我们要测试的是一个计算器应用,Python示例代码:

复制代码
from appium import webdriver
import time

# 设置desired capabilities
desired_caps = {
    "platformName": "Android",  # 操作系统
    "deviceName": "Android Emulator",  # 设备名,可以是任意字符串
    "appPackage": "com.android.calculator2",  # 应用的package名
    "appActivity": "com.android.calculator2.Calculator",  # 应用的Activity名
    "automationName": "UiAutomator2"  # 使用UiAutomator2框架
}

# 初始化driver
driver = webdriver.Remote("http://localhost:4723/wd/hub", desired_caps)

try:
    # 等待应用启动
    time.sleep(2)
   
    # 找到数字2并点击
    digit2 = driver.find_element_by_id("com.android.calculator2:id/digit_2")
    digit2.click()
   
    # 找到加号并点击
    plus = driver.find_element_by_accessibility_id("plus")
    plus.click()
   
    # 再次找到数字2并点击
    digit2.click()
   
    # 找到等于号并点击
    equals = driver.find_element_by_accessibility_id("equals")
    equals.click()
   
    # 获取结果并打印
    result = driver.find_element_by_id("com.android.calculator2:id/result")
    print(f"Result: {result.text}")
   
finally:
    # 测试完毕,关闭会话
    driver.quit()

Java代码示例:

复制代码
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.MobileElement;
import io.appium.java_client.android.AndroidDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import java.net.MalformedURLException;
import java.net.URL;

public class CalculatorTest {
    public static void main(String[] args) throws MalformedURLException {
        // 设置desired capabilities
        DesiredCapabilities caps = new DesiredCapabilities();
        caps.setCapability("platformName", "Android");
        caps.setCapability("platformVersion", "9.0");
        caps.setCapability("deviceName", "emulator-5554");
        caps.setCapability("appPackage", "com.android.calculator2");
        caps.setCapability("appActivity", "com.android.calculator2.Calculator");

        // 初始化driver
        AppiumDriver<MobileElement> driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), caps);

        // 找到数字1并点击
        MobileElement button1 = driver.findElementById("com.android.calculator2:id/digit_1");
        button1.click();

        // 找到加号并点击
        MobileElement plusButton = driver.findElementByAccessibilityId("plus");
        plusButton.click();

        // 找到数字2并点击
        MobileElement button2 = driver.findElementById("com.android.calculator2:id/digit_2");
        button2.click();

        // 找到等于号并点击
        MobileElement equalsButton = driver.findElementByAccessibilityId("equals");
        equalsButton.click();

        // 测试完毕,关闭会话
        driver.quit();
    }
}

首先需要设置一些所需的capabilities,包括设备名称、平台名称、应用的包名和活动名。然后启动一个与Appium服务器的会话,并通过ID或Accessibility ID找到UI元素进行操作,比如点击按钮。最后结束测试后关闭会话。

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 "点赞" "评论" "收藏" 一键三连哦!

相关推荐
死就死在补习班1 小时前
Android系统源码分析Input - InputReader读取事件
android
死就死在补习班1 小时前
Android系统源码分析Input - InputChannel通信
android
死就死在补习班1 小时前
Android系统源码分析Input - 设备添加流程
android
死就死在补习班1 小时前
Android系统源码分析Input - 启动流程
android
tom4i2 小时前
Launcher3 to Launchpad 01 布局修改
android
雨白2 小时前
OkHttpClient 核心配置详解
android·okhttp
淡淡的香烟2 小时前
Android auncher3实现简单的负一屏功能
android
RabbitYao2 小时前
Android 项目 通过 AndroidStringsTool 更新多语言词条
android·python
RabbitYao2 小时前
使用 Gemini 及 Python 更新 Android 多语言 Excel 文件
android·python
纽马约3 小时前
Android RxJava的使用
android