Appium Python与雷电模拟器自动化测试入门指南:附实用案例解析

一、介绍Appium

Appium 是一个开源的移动应用自动化测试框架,支持多种编程语言,可在 iOS 和 Android 平台上进行自动化测试。

二、环境搭建

本文介绍的是基于windows环境进行部署

1、安装jdk

Appium 需要 Java 8 以上的开发环境。可以自行在网上搜索安装并配置环境变量。

如下图,代表jdk已安装好。

2、安装android-sdk

访问https://www.androiddevtools.cn/(需要梯子,可以斯沃,无偿提供)

依次点击AndroidSDK工具>>SDK Tools>>会跳转到以下界面,然后选择你的系统下载就好,Windows建议选择.exe后缀那个

下载之后,双击SDK Manager.exe进行安装

只需要装这3个

完成安装之后,配置环境变量

再在path添加

%ANDROID_HOME%\tools

%ANDROID_HOME%\platform-tools

环境变量配置好之后,在cmd输入adb version,如下图,就代表配置好了

3、安装appium桌面版

访问https://github.com/appium/appium-desktop/releases/tag/v1.21.0

我安装的是1.21.0版本。安装包下载完成之后,我们直接点击安装,这儿需要注意一个问题,在安装的时候选择只给本人安装,而不要选择 All Users,否则后面可能你会因为权限的问题而导致APP的运行失败。

安装成功后,点击appium,此时APP会监听一个本地的端口,默认是 4723 端口,你可以自己修改成其他没有被占用的端口号。

点击Edit Configurations查看ANDROID_HOME和JAVA_HOME是否配置正确,不正确的话需要修改后重启。也可以直接重启电脑,重新打开appium,这样ANDROID_HOME和JAVA_HOME直接从系统环境变量读取。

4、安装appium客户端

执行pip命令:pip install Appium-Python-Client

三、案例-appium桌面连接手机定位元素

1、通过appium桌面版连接手机/模拟器

打开雷电模拟器。如果是连接手机,需要在设置-开发者选项,打开USB调试

在appium桌面版点击Start Server v1.21.0

如上图,填写platformName、deviceName、appPackage、appActivity。

  • platformName:平台名称。该处是Android
  • deviceName:设备号。cmd通过adb devices得到。
  • appPackage和appActivity也是通过adb命令得到:adb shell dumpsys window | findstr "mCurrentFocus"
  • 如果devices有多个,可以通过adb -s deviceName shell dumpsys window | findstr "mCurrentFocus",其中deviceName替换成你的设备名称。

    2、配置好之后点击Start Session

    如下图,可以对雷电模拟器上的页面进行元素定位

    点击刷新,左侧模拟器页面会同步页面

    三、案例-通过python连接appium服务端,并对手机进行操作

    直接上代码:

    # coding: utf-8
    from appium import webdriver
    from appium.webdriver.common.appiumby import AppiumBy
    
    desired_caps = {'platformName': 'Android',
                    'platformVersion': '9.0.0',
                    'deviceName': 'emulator-5554',     #设备名来自adb devices
                    "appPackage": "com.android.launcher3",
                    "appActivity": "com.android.launcher3.Launcher",
                    "autoGrantPermissions": True}
    
    driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
    
    #打开微信APP
    driver.find_element(by=AppiumBy.ACCESSIBILITY_ID,value='微信').click()
    driver.implicitly_wait(15)
    #点击注册
    driver.find_element(AppiumBy.ID,'com.tencent.mm:id/mjy').click()
    

    作者:一只干测试的兔子

    物联沃分享整理
    物联沃-IOTWORD物联网 » Appium Python与雷电模拟器自动化测试入门指南:附实用案例解析

    发表回复