自动化测试----Appium+python环境搭建
准备工作:
1,已成功安装好JDK,并配置好相关的环境变量
2,已安装好python,并配置好相关的环境变量
3,已安装好Pycharm
1, 安装Appium Python Client 包
1,cmd======键入 pip install Appium-Python-Client 开始下载(成功可忽略步骤二)
2,如果下载中提示“You are using pip version 18.1, however version 19.0 is available.
You should consider upgrading via the ‘python -m pip install --upgrade pip’ command”,
那就升级你的pip,即输入python -m pip install --upgrade pip,成功后再输入步骤一的命令即可
2,下载Appium Server
下载地址 https://github.com/appium/appium-desktop/releases/latest
用啥下啥,Windows下载框红框的,苹果下载Mac的。
3,安装Android SDK
下载网址:https://developer.android.google.cn/studio/
往下拉,一直到这里,下载自己所需要的
建议先在D盘或者是E盘创建一个新的文件夹,名字就叫做androidsdk
再把下载下来的包解压到androidsdk文件夹下,会得到一个tool目录
然后,cmd-进入到bin目录下—例如:D:\androidsdk\tools\bin>
键入
sdkmanager “platform-tools” “platforms;android-28” "build-tools;28.0.3"
中途会提示是否继续下载------------键入y-----------接下来等其下载到100%
如果忘记输y,就再重复一下下载命令重新下载,再继续y
ps:若是依旧安装不成功,就拷贝别人已经下好的这些核心文件到自己电脑吧,优点是方便快捷,缺点是过段时间别人的包已经更新了而你还用的是老版本容易出现问题,当然,还可以继续拷贝别人已经更新好的包。。。。。
4,设置 sdk 相关环境变量
1,新增系统变量名:ANDROID_HOME,值为D:\androidsdk
变量名不要写错
值路径要对
2,将adb所在路径设置到 path环境变量中
路径要对路径要对路径要对
5,连接真实设备(以安卓华为机为例)
1, 用usb线(有的淘宝线只能充电)连接到电脑,一头连手机,一头连电脑
2, 进入手机设置,关于手机(),不断点击版本号(7次以上),
注意一定是版本号,不是其他号。
3, 退出到上级菜单,在开发者模式中,启动usb调试 ,这样appium才能驱动手机
4,进入cmd----键入adb devices -l (当前电脑连接饿设备)
有的电脑系统,比如win7 , 手机不能自动识别,因为还没有安装手机的usb驱动,需要我们去安装。
到哪里下载驱动呢? 可以通过 官方windows手机管理软件, 比如华为手机(安装华为手机助手)
6,快速开始
我们以一个开发者头条的app,为例,演示一下自动化的过程
1,首先当然需要有被测试的app应用了,这里我用的app是从应用市场上下载下来,在虚拟手机上没有应用市场,可以直接到官网下载app
https://toutiao.io/
2,可以手动安装好,(手动安装好不需要步骤3)
3,当然实际项目中app 是有开发团队发布给我们测试用的,放在一个合适的目录中,这里我放在 d:\apk\
usb线连接手机 ,进入头条apk所在目录,执行命令安装一下
d:\apk> adb install -r toutiao.apk
toutiao.apk: 1 file pushed. 4.5 MB/s (15351740 bytes in 3.268s)
pkg: /data/local/tmp/toutiao.apk
Success
也可以自己手动安装好,就不用执行命令安装了
7,安装并启动Appium
下一步下一步就好
8,代码示范:
from appium import webdriver
import time,traceback
desired_caps = {
'platformName' :'Android',
#被测系统安卓版本
'platformVersion': '5.1.1',
#测试手机的名称(安卓可以随便写,苹果的话必须要写清楚手机名称是什么)
'deviceName': 'test',
#该应用的包在哪个位置的(这行代码,如果应用已经安装好了,就不用写这行代码了)
'app': r'd:\apk\toutiao.apk',
#指定当前测试的是哪个应用(安卓应用的包名,独一无二的名字像域名一样,由开发人员决定)
#D:\android\sdk\build-tools\28.0.3这个工具中可以看
'appPackage':'io.manong.developerdaily',
'appActivity': 'io.toutiao.android.ui.activity.LaunchActivity',
#过程中如果要输入中文,就要把这个参数打开,输入True
'unicodeKeyboard': True,
'resetKeyboard': True,
'noReset' :True,
'newCommandTimeout':6000,}
#启动Remote RPC
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
driver.implicitly_wait(10)
try:
# 根据id找到元素,并点击,id和 html 元素的id不同
driver.find_element_by_id("tab_bar_plus").click()
time.sleep(1)
driver.find_element_by_id("btn_email").click()
time.sleep(1)
# 输入用户名、密码
ele = driver.find_element_by_id("edt_email")
ele.send_keys(自己的邮箱')
ele = driver.find_element_by_id("edt_password")
ele.send_keys('自己的密码')
time.sleep(2)
# 点击登录
driver.find_element_by_id('btn_login').click()
pass
except:
print (traceback.format_exc())
input('**** Press to quit..')
driver.quit()
执行过程中可打开Appium看