Python+Appium手机自动化测试学习实战
1、Appium是一个开源跨平台的工具,可以测试Android与ios
2、appium本身并不能自动化手机,能够做到跨平台是因为些平台自己本身就有自动化框架
3、appium只负责承担中间人的角色。
4、可以支持python、java、c#等
5、c/s架构,c端就是是测试代码
**
环境搭建
**
1、安装:Appium客户端库
输入pip命令安装appium客户端库
pip install Appium-Python-Client
使用pip list查询appium客户端库是否安装
2、安装appiumDesktop通过这个接受代码发过来的指令,来转成 手机上能够识别的指令,第一次在手机上运行代码后,手机上也会自动安装一个。
安装成功后会是一这样子的界面
点击Start Server V1.15.1能够正常打开就没有问题了
3、安装android-SDk,这是手机自身的测试框架,包含了元素定位工具与对应的包,直接解压,然后配置环境变量好了,环境运行需要有一个java的环境,弄一个1.8的jdk并且配置环境变量就好了
配置android-SDk环境变量
变量名:ANDROID_HOME
变量值:变量值就是android-SDk解压后文件的位置
配置java环境变量
变量名:JAVA_HOME
变量值:变量值就是jdk解压后文件的位置
环境搭建完了以后,需要进行手机设置
1、打开手机上开发者模式
2、打开手机上usb相关的权限
3、使用数据线连接手机与电脑,允许电脑对手机的操作
测试手机与电脑连接是否成功
在这个有adb.exe的文件里面打开命令窗口(按住Shift,单机鼠标右键,点击在此处打开命令窗口)
输入adb devices 可以查到就表示连接没有问题了
环境搭建搭建完成,并且手机连接没问题后,就可以开始写代码啦!!!
代码部分跟selenium差不多,不过selenium通过webdriver.Chrome,appium是webdriver.Remote。
配置项
platformName—设备平台。填Android或IOS platformVersion—手机版本
deviceName----设备名。可以随便填写,但必须要有这一项
appPackage----要启动的app的包名。微信是"com.tencent.mm"
appActivity----要启动的界面。微信启动界面是".ui.LauncherUI"
获取被测应用信息
首先打开被测应用,然后在命令窗口输入以下命令,框起来的就是appPackage
adb shell dumpsys activity recents | findstr intent
com开头的包名,/.后面的是入口信息,/不需要保留
…小案例…
**
from appium import webdriver
deploy = {
# 这些是必须要的
"platformName":"Android",
"platformVersion":"7.1.2",
"deviceName":"emulator-5554",
"appPackage":"com.netease.cloudmusic",
"appActivity":".activity.LoadingActivity",
#下面的随意
#禁止app在自动化后重置
"noReset":True,
# # 设置命令超时时间,单位秒
"newCommandTimeout":3600
}
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',deploy)
driver.implicitly_wait(100)
# 开始自动操作app(XPATH //元素类型(class值)[@属性='属性值'])
# 1、点击每日推荐
driver.find_element_by_xpath("//*[@text='每日推荐']").click()
# 2、获取前三首歌曲信息
# 歌曲名字
gequ = driver.find_elements_by_id('com.netease.cloudmusic:id/songName')[:3]
#打印歌曲
for gequ in gequ:
print(gequ.text)
driver.quit()
**
打开被测app,打开appium到这个界面,然后运行代码,app会自动重启,然后appium会后面会显示200,那么代码就没有问题啦!!
app自动重启后,appium显示200
配置参数,可以获取手机元素
保存后点击 Start session
报错。。。
解决方法
不进主页的话,刷新一下就可以了
本文地址:https://blog.csdn.net/weixin_46093563/article/details/112463861
上一篇: 最短Hamilton路径