首先理清appium和python的关系

我们一般不用appium录制脚本,而是直接编写脚本。appium多用来帮助定位元素(个人赶脚灰常好用^_^)。

appium与设备连接

1.启动appium看到如下界面(如果没有的话请自行下载安装^_^)

appium ios自动化测试 appium自动化测试实例_软件测试

2.Host输入127.0.0.1,端口默认4723,点击Start Server,如下图

appium ios自动化测试 appium自动化测试实例_android_02

3.出现如下图所示界面说明appium server已经启动

Tips:

(1)如果会话配置信息已经写进了脚本,启动app server后就可以运行脚本了。

(2)如果没有启动app server就运行脚本就会报错:ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。此时只要启动app server再次运行脚本就可以了。

appium ios自动化测试 appium自动化测试实例_登录页面_03

4.以下两个按钮分别是(1)启动一个监听会话(2)停止运行appium server

appium ios自动化测试 appium自动化测试实例_appium ios自动化测试_04

5.这里我们点击启动监听会话,进入如下配置能力项界面

appium ios自动化测试 appium自动化测试实例_登录页面_05

6.配置好之后的能力项保存后如下(这里实际上是决定了我们要连接的设备以及和设备上的哪个测试包建立会话),点击start就可以连接设备并创建appium与测试包之间的会话

appium ios自动化测试 appium自动化测试实例_python_06

注:

(1)下次再次创建appium与测试包之间的会话时,只需要在Saved Capability Sets 中直接启动会话即可(也可以只启动appium-sever即可,也就是步骤3)

(2)在C:\sdk\build-tools\29.0.3文件夹下打开dos(直接在文件夹路径输入cmd回车就可以在该路径下打开dos)输入命令:

aapt dump badging然后把下载到本地的要测试的app的apk安装包文件路径(文件路径不要带中文)拖入dos窗口,此时路径会自动拼接到命令后面,然后回车执行命令就可以解析出安装包的包名、app启动入口等各种信息。

也可以用精准查找:

aapt dump badging 包路径 | findstr "package"

aapt dump badging 包路径 | findstr "activity"

举个栗子:

appium ios自动化测试 appium自动化测试实例_python_07

这里如果我们已经配置了ANDROID_HOME系统变量,也已将aapt.exe所在的路径添加到了系统变量的path中就可以直接在User\Administrator目录下执行aapt命令。具体配置步骤可参考另一篇博客Android SDK安装、环境变量配置

 

7.启动会话成功后如下图所示,此时我们已经与设备进行了连接可以进行元素的定位了。细心的同学可以发现我们连接的时夜神模拟器,也就时我们上一步操作中deviceName填写的是:127.0.0.1:62001(127.0.0.1时本地host,62001是夜神模拟器固定的端口,如果你用的是其他模拟器,这个62001是会变化的)

appium ios自动化测试 appium自动化测试实例_appium ios自动化测试_08

利用appium定位元素

1.单机我们要测试的包,此时我们看到右边已经出现了元素的信息以及我们可以对元素进行的操作,其中(1)Tap代表点击操作(2)Send Keys代表输入内容操作(3)clear代表清除输入的内容,我们在对某个元素操作之前都要先在左侧的appium定位界面点击对应的元素获取其信息

appium ios自动化测试 appium自动化测试实例_登录页面_09

注:(1)如果一开始不太熟悉如何定位,可以先点击如下图所示箭头1的”眼睛“按钮,再开始我们要进行的操作,录制一个简单的脚本,脚本录制可以翻译成不同的编程语言,再点击箭头2所示按钮可以自动补充完整的代码。此时一个最简单的自动化脚本就编写成功了。我录制的是一个打开app并自动登录的python脚本,把这个脚本放入pycharm运行就可以完成打开app自动登录的操作。(这里要特别强调的是无论是我们是自己定位元素还是录制脚本,极有可能在操作到登录页面时发生测试包的页面已经跳转到了登录页面,但是appium的定位界面却始终无法加载登录页面导致我们无法定位登录页面的元素,出现这个问题的原因是开发在代码中对登录页面设置了禁止截屏功能,而我们对页面进行定位某种意义上就是类似于截屏的操作。解决这个问题的方法就是让开发单独打一个包去掉禁止截屏的限制,这样方便我们调试^_^)

appium ios自动化测试 appium自动化测试实例_python_10

(2)用代码对测试包进行调试后再去用appium定位,会发现定位时appium会报错,此时关闭会话再重新启动会话就好了(具体原理还不清楚,后面再补充^_^)

好了,至此我们已经成功编写了第一个自动化脚本了,现在可以开启探索之旅了^_^