一篇就够了:Appium+python自动化测试

目录

一、开始前的准备:

        1.1安装:jdk    就是java环境

        1.2安装:Android_Statio(SDK)

        1.3安装:nodejs

        1.4安装:python+pycharm

        1.5安装python插件:Appium-Python-Client

        1.6安装/准备:手机(模拟器)

                       1.6.1选择你的安卓手机或安装你心仪的模拟器

                       1.6.2设置手机或模拟器:

        1.7安装:adb

        (1)adb下载地址:

        (2)adb的环境变量配置及验证:

        (3)adb连接手机(模拟器):

二、什么是Appium ?

三、安装Appium:

四、Appium连接手机(模拟器):

        1.打开模拟器:

        2.打开appium:

        3.进入连接手机参数设置界面

        4.参数的获取:

                (1)adb连接上手机模拟器:

                (2)获取appPackage:

        (3)获取appActivity:

        4.参数platformName和platformVersion的获取:

        5.填写参数并连接设备:

五、Appium开始录制:

        1.区域按钮介绍:

        2.开始录制:

                (1)点击录制:

        3.结束录制:

六、在pycharm中运行appium代码:

        1.前题:

                1.1adb未连接

                1.2appium未连接

                1.3手机(模拟器)没有被连接

        2.粘贴代码后要注意的几点:

              2.1首行注明编码格式:

              2.2TouchAction标红色:

              2.3定位方式加深:

                  2.3.1加深的原因:

                  2.3.2解决办法:

        3.完善后的代码:

        4.点击运行

        4.1开始启动连接

        4.2连接成功:

七、后话:

1.定位方式的优化:

2.自动化框架的完善:


一、开始前的准备:

在开始这篇文章之前,您需要做好以下几个准备:

        1.1安装:jdk    就是java环境

        1.2安装:Android_Statio(SDK)

        1.3安装:nodejs

        1.4安装:python+pycharm

        1.5安装python插件:Appium-Python-Client

以上可选择性参考下面这两篇文章:

https://blog.csdn.net/test_number1/article/details/121754944?spm=1001.2014.3001.5506

https://blog.csdn.net/u013302168/article/details/122475805?spm=1001.2014.3001.5506

        1.6安装/准备:手机(模拟器)

                       1.6.1选择你的安卓手机或安装你心仪的模拟器
                       1.6.2设置手机或模拟器:

                               A.打开开发者选项

                               B.打开允许USB调试

                               C.打开坐标设置

        1.7安装:adb

        (1)adb下载地址:

                Windows版本下载:

https://dl.google.com/android/repository/platform-tools-latest-windows.zip

                Mac版本下载:

https://dl.google.com/android/repository/platform-tools-latest-darwin.zip

                Linux版本下载:

https://dl.google.com/android/repository/platform-tools-latest-linux.zip

        (2)adb的环境变量配置及验证:

                2.1配置环境变量:高级->环境变量->系统变量->path->添加adb的路径【要到adb/planform_tools】>保存保存保存

                2.2验证:doc窗口:win+r---->adb --version------>看到adb对应的版本号就成功了。反之请重新检查

        (3)adb连接手机(模拟器):

                  3.1.打开手机:夜神模拟器为例(并保证相关设置已打开)

                  3.2.打开窗口:win+r

                  3.3.连接设备:adb connect 127.0.0.1:62001------>回车【这里使用的是夜神模拟器】

                  3.4.查看连接状态:adb devices-----List of devices attached表示连接成功了,反之就是失败,请重新检查相关是否正常。

                  3.5断开连接:adb kill-server---->回车

正文开始啦

二、什么是Appium ?

appium是一个移动端自动化框架,它采用C/S的设计模式,支持多类开发语言(java python js c#…)、支持多平台(ios android),支持跨平台使用(windows linux)。它适用于原生或混合移动应用;

appium继承了webDriver协议(也就是继承了selenium 2),在其基础上做了扩展,使用JSON wire protocol协议驱动安卓和ios移动应用;

废话总结:Appium继承了selenium 2,适用于多种语言

三、安装Appium:

        1.下载:https://github.com/appium/appium-desktop/releases/tag/v1.22.2

        2.解压:存放于自己喜欢的目录【建议新建一个目录】,最好D盘哈,为什么自己想。

        3.打开:进入解压后的目录,双击打开 Appium Server GUI.exe

四、Appium连接手机(模拟器):

        1.打开模拟器:

                        打开手机或模拟器

        2.打开appium:

                打开界面如下,直接点击Start Server

                再点击搜索放大镜:

        3.进入连接手机参数设置界面

             【如下】

             连接手机(模拟器)时需要在这里填写几个正确的参数

         几个重要的参数【有很多、一般这几个就ok】:

key含义
appPackageapp包名
appActivity启动app的activity
deviceName设备名称,手机(模拟器)ip+端口,如夜神模拟器127.0.0.1:62001
platformName设备类型,Android
platformVersion设备版本,进入手机或模拟器中查看版本,如:7.1.2

        4.参数的获取:

                (1)adb连接上手机模拟器:

                         -----参考上面的:一、1.7(3)

                (2)获取appPackage:

                         输入:

adb shell pm list package -3
adb shell pm list package -3展示第三方安装包名
adb shell pm list package -s展示系统自带的安装包

                               如下 就是第三方的包名,也就是对应的 appPackage,比如是:                                        ​​​​​​​        ​​​​​​​appPackage=com.zzly99.wnl    ​ 

                                                

        (3)获取appActivity:

                     接着上面的操作,得到了包名:com.zzly99.wnl,当然这里你可以直接问开发要包的appActivity。但是我们也可以自己查询到:

                       输入命令:adb shell monkey -p 包名 -v -v -v 1

adb shell monkey -p com.zzly99.wnl -v -v -v 1

                得到如下信息:+一行:Switch:一行都可以找到对应的appActivity

                appActivity=com.zzly99.wnl.ui.Welcome

                【小提醒:两个地方不同的是:后一个appActivity多了一个"/",如果复制后面的记得要去掉"/",复制前面的一般没有问题】

查询完成后记得断开adb与手机的连接:adb kill-server

        4.参数platformName和platformVersion的获取:

                        在手机中的“关于手机”中可以查看到信息【如下】:

                           platformName=Android

                           platformVersion=7.1.2

        5.填写参数并连接设备:

                如下,填写了如上的几个参数后,点击连接

                [记得查询完参数后要断开adb连接]

                连接中:

                连接成功:

五、Appium开始录制:

        1.区域按钮介绍:

        2.开始录制:

                (1)点击录制:

                         进入录制状态

                (2)选择操作:

                        选择元素还是滑动

                        我们先来一个滑动:点击滑动---

                        录制记录了滑动的代码

                再来一个元素的点击

                记录了点击元素的操作

                上面就是简单的滑动,元素的点击、输入、清空的操作的录制。

        3.结束录制:

                 点击结束录制,录制就结束了。代码会完整保存在记录区中。

                选择要生成的语言,再复制代码

六、在pycharm中运行appium代码:

        1.前题:

                1.1adb未连接

adb kill-server

                1.2appium未连接

                        这个界面就行

                1.3手机(模拟器)没有被连接

        2.粘贴代码后要注意的几点:

              2.1首行注明编码格式:

                          首行加入以下一行代码用来说明编码格式

#encoding=UTF-8

              2.2TouchAction标红色:

需要导入相关的包
鼠标置于目标字段中----->alt+enter----->回车-

              2.3定位方式加深:

                   2.3.1加深的原因:

                          appium继承了selenium2,生成的定位方式自然是selenium2的定位方式。如果python安装的对应的selenium版本的定位方式与selenium2的定位方式写法不同,就会出现标红的形式。【find_element_by_的定位方式在selenium3.0后续已弃用,改成了find_element("","")的形式】

                  2.3.2解决办法:

                        修改降低selenium的版本为3.0以下,使之一致。

                        或修改成新的写法。

        3.完善后的代码:

                        截图中的asynic忽略哈,导入错了,后面正了。应该是time

#encoding=UTF-8

from time import sleep
from appium import webdriver
from appium.webdriver.common.touch_action import TouchAction

caps = {}
caps["appPackage"] = "com.zzly99.wnl"
caps["appActivity"] = "com.zzly99.wnl.ui.Welcome"
caps["deviceName"] = "127.0.0.1:62001"
caps["platformName"] = "Android"
caps["platformVersion"] = "7.1.2"

#连接设备
driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
sleep(3)
#滑动
TouchAction(driver).press(x=1067, y=471).move_to(x=1045, y=2467).release().perform()
sleep(5)
#同意协议
el1 = driver.find_element("id","com.zzly99.wnl:id/btnLogin")
el1.click()
sleep(3)
#同意进入
el2 = driver.find_element("xpath","/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.LinearLayout/android.widget.LinearLayout[2]/android.widget.TextView")
el2.click()
sleep(20)
driver.quit()

        4.点击运行

                4.1pycharm开始启动

                      启动稍候-appium如下窗口开始连接启动

        4.2连接成功:

               查看手机(模拟器)看运行---运行起来了------手机模拟器开始被操纵

七、后话:

1.定位方式的优化:

        如上中,使用Xpath定位生成的定位方式,巨巨巨长且太难看了,可以进行自己定义定位方式的写法。具体的写法可以进一步学习,优化代码的美观和长度。

2.自动化框架的完善:

        加上pytest、selenium、unittest等结合使用、断言,等待,加油吧。各位。

【END】

庆祝一下

  • 21
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值