看了很多自动化测试入门的课程,还是B站白月黑羽讲的最详细
从环境搭建到常用功能,讲的都比较详细
由于没什么项目实践,就简单写了一个什么值得买APP自动签到脚本
后期打算买个树莓派,把整个环境搭在树莓派上,但是不知道能不能安装appium
代码实现思路上和PC端的浏览器自动化测试比较类似(Selenium库)
环境搭建上有很多坑,最好是按照之前搭过的配置来(百度云链接在下面)
之前自己搭的时候,也是一样安装的jdk、appium、Androidsdk、夜神模拟器
但是一直无法连接模拟器,换安卓手机直连就可以
主要是记录环境搭建过程和连接过程
使用的是appium+AndroidSDK+夜神模拟器(官网下载)
jdk+appium+AndroidSDK测试通过的版本
链接:https://pan.baidu.com/s/1sgR3V7VRRYggfCWMojDvCA 提取码:ct3c
自动化测试原理:
python代码(appium库–客户端)–连接到Appium Server/AndroidSDK–连接到安卓设备控制操作
自动化程序(python代码)
需要使用appium客户端库,发出自动化指令给Appium服务器,进而操作手机
Appium Server
负责管理手机自动化环境,转发自动化程序的控制指令给手机
安卓设备
使用IOS/Android都可以进行自动化测试,可以使用Android的真实设备,也可使用模拟器
环境搭建:
pip install appium-python-client
安装Appium Server+AndroidSDK+jdk
利用上面的百度云链接安装AppiumServer和AndroidSDK
添加环境变量ANDROID_HOME,目录为解压的Androidsdk根目录
添加环境变量PATH路径,androidsdk\platform-tools
安装jdk之后需要添加环境变量JAVA_HOME
安装夜神模拟器
直接从官网下载安装即可
连接安卓设备
打开安卓设备的开发者模式,选择允许USB调试
#查看adb是否添加环境变量成功
adb
#连接模拟器
#夜神模拟器开机,开启USB调试
adb device -l
但是显示没有找到模拟器设备,没有成功连接
查找资料有的是因为AndroidSDK的adb版本和夜神模拟器的nox_adb版本不一致
尝试将AndroidSDK的adb复制到夜神模拟器目录下改为nox_adb
#查看adb版本
adb version
版本一致后,还没找不到设备
分别连接127.0.0.1:62001后终于连接成功
再次查看adb连接设备,显示已经连接
启动appium
简单写了一个什么值得买APP签到
核心代码只有两行
整体分析与爬虫和Selenium比较类似
还是推荐xpath定位
#encoding=utf-8
from appium import webdriver
from appium.webdriver.extensions.android.nativekey import AndroidKey
desired_caps = {
'platformName': 'Android', # 被测手机是安卓
'platformVersion': '5.1.1', # 模拟器安卓版本
'deviceName': 'xxx', # 设备名,安卓手机可以随意填写
'appPackage': 'com.smzdm.client.android', # 启动APP Package名称
'appActivity': '.app.WelComeActivity', # 启动Activity名称
'unicodeKeyboard': True, # 使用自带输入法,输入中文时填True
'resetKeyboard': True, # 执行完程序恢复原来输入法
'noReset': True, # 不要重置App,防止登录信息丢失
'newCommandTimeout': 6000,
'automationName' : 'UiAutomator2'
}
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
driver.implicitly_wait(5)
driver.find_element_by_id("com.smzdm.client.android:id/tab_usercenter").click()
driver.find_element_by_id("com.smzdm.client.android:id/tv_login_sign").click()
driver.quit()