(一)环境配置

1.安装Appium

官方网站地址:http://appium.io/

2.安装Android SDK

网址:https://developer.android.google.cn/studio?hl=zh-cn

 Appium+Python+雷电模拟器自动化测试_服务端

 

 Appium+Python+雷电模拟器自动化测试_cmd命令_02

删除bin文件下的adb.exe和nox_adb.exe,再拷贝android sdk/platform-tools/bin.exe至模拟器安装文件夹bin下,分别命名adb.exe和nox_adb.exe,等于是替换这2个文件。

按住shift+鼠标右键,选择“在此处打开新窗口”,在控制台窗口中输入adb devices,出现以下结果,说明环境安装成功了。

具体安装可以参照这篇大佬的博客;python+appium+真机测试 - MilesMa - 博客园 (cnblogs.com)

3.雷电模拟器

网址下载:https://www.ldmnq.com/

4.JDk安装

网站:https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html

至少安装1.8以上版本

5.点开Appium,配置JDK和Android SDK

 Appium+Python+雷电模拟器自动化测试_cmd命令_03

 

 Appium+Python+雷电模拟器自动化测试_服务端_04

6.点击Appium启动服务器,点击放大镜启动检查器会话

 Appium+Python+雷电模拟器自动化测试_python_05

7.打开模拟器或手机真机

如果使用的是模拟器直接将app拖入模拟器中。

打开雷电多开器新建一个模拟器,并且点开设置对模拟器进行配置

 Appium+Python+雷电模拟器自动化测试_android_06

 

 Appium+Python+雷电模拟器自动化测试_python_07

 

 Appium+Python+雷电模拟器自动化测试_python_08

如果使用的是手机真机操作,打开开发者模式,USB线连接手机和电脑,并且在开发者选项当中,开启USB调试

 Appium+Python+雷电模拟器自动化测试_服务端_09

 测试是否连接成功,可执行命令adb devices

 Appium+Python+雷电模拟器自动化测试_cmd命令_10

 出现上图就证明手机和电脑连接成功

8.配置app信息

(1)platformName

使用哪个移动操作系统平台 是Android还是IOS

(2)platformVersion

移动操作系统版本,通过模拟器-设置-关于平板电脑-Android版本获得

 Appium+Python+雷电模拟器自动化测试_服务端_11

(3)deviceName

连接的物理设备的唯一设备标识符 模拟器打开后输入cmd命令adb devices 得到设备名

 Appium+Python+雷电模拟器自动化测试_java_12

(4)appPackage

apk包名

输入cmd命令:aapt dump badging +app路径获得

 Appium+Python+雷电模拟器自动化测试_java_13

(5)appActivity

apk的launcherActivity

输入cmd命令:aapt dump badging +app路径获得

 Appium+Python+雷电模拟器自动化测试_python_14

Appium配置信息

 Appium+Python+雷电模拟器自动化测试_android_15

 

 

(二)操作

1.点击Appium启动会话,定位数据

 Appium+Python+雷电模拟器自动化测试_python_16

1是对元素进行定位

2是进行点击事件

3是返回

4是刷新

5是录制,可以点击录制,Appium会自动生成python/Java等语言的代码,可以在录制右边的下拉框中进行选择

6是执行选中元素的点击事件,点击录制后,点击需要点击或者输入框,点击‘点击’会生成python/Java等语言的代码,可以复制到编译器中直接使用

 

2.编写测试脚本

 Appium+Python+雷电模拟器自动化测试_python_17

(1)desired_caps是一个字典,用于在appium server 与手机端建立会话关系时,手机端需要告诉服务端设备相关的一些参数,根据这些参数服务端可以做出相应的处理。

(2)当本机上没有浏览器,需要远程调用浏览器进行自动化测试时,需要用到RemoteWebDirver,这个类中实现了每个Webdriver间相通的方法。