1.能够安装Appium桌面客户端 2.能够安装Appium-python库
Appium是一个移动端的自动化测试框架,可用于测试原生应用,移动网页应用和混合型应用,且是垮平台的,可用于Android和IOS操作系统。 重要的是Appium是跨平台的,可以针对不同的平台用一套api来编写脚本
1.Appium桌面客户端安装方式 2.Appium-python库安装
1.能够使用appium启动任意应用程序 2.能够了解"前置代码"中各项参数的含义
在做app自动化的时候,我们肯定是针对某个产品。某个软件进行测试,那么我们一定是先让模拟器或真机帮我们打开着款软件才可以,所以下来要学的就是如何打开某浩哥应用程序。
使用一下步骤打开模拟器中的《设置》应用程序:
1.打开手机模拟器 2.打开Appium 3.创建一个python项目,取名为hello_appium 4.创建一个demo.py文件 5.将一下代码直接复制,并运行
from appium import webdriver import time desired_caps = dict() #平台的名字,大小写无所谓,不能乱写 desired_caps['platformName'] = 'Android' #平台的版本(5.4.3可以写5.4.3,5.4,5都是可以的) desired_caps['platformVersion'] = '5.1' #设备的名字,对于安卓来说可以随便写,IOS要和设备一致 desired_caps['deviceName'] = '127.0.0.1:62001' #要打开的应用程序 desired_caps['appPackage'] = 'com.android.settings' #要打开的界面 desired_caps['appActivity'] = '.Settings' #连接appium服务 driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) time.sleep(5) driver.quit()更改配置信息
如果一个应用需要跳转到另一个应用,就可以使用这个api进行应用的跳转,就像我们通过外卖应用下订单后会跳转到支付应用一样
当我们从一个应用跳转到另一个应用时,想输出其包名、界面名,或者想在报告中展现对应信息,我们就可以调用这个属性来进行获取
打开《设置》应用程序输出当前的包名和界面名
from appium import webdriver import time desired_caps = dict() desired_caps['platformName'] = 'Android' desired_caps['platformVersion'] = '5.1' desired_caps['deviceName'] = '127.0.0.1:62001' desired_caps['appPackage'] = 'com.android.settings' desired_caps['appActivity'] = '.Settings' driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) time.sleep(5) #打印当前包名 print(driver.current_package) #打印当前界面名 print(driver.current_activity) driver.quit()有的时候我们需要关闭某个应用程序后,再打开新的应用,那么如何关闭应用程序?
打开《设置》,使用close_app()方法关闭,再尝试使用quit()方法,最后打印当前程序的包名,观察区别
from appium import webdriver import time desired_caps = dict() desired_caps['platformName'] = 'Android' desired_caps['platformVersion'] = '5.1' desired_caps['deviceName'] = '127.0.0.1:62001' desired_caps['appPackage'] = 'com.android.settings' desired_caps['appActivity'] = '.Settings' driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) time.sleep(3) #关闭应用程序 driver.close_app() # 关闭驱动对象 driver.quit()一些应用市场的软件可能会有一个按钮,如果某一个程序已经安装则卸载,如果没有安装则安装
如果《慕课网》已经安装,则卸载,如果没有则安装
from appium import webdriver import time desired_caps = dict() desired_caps['platformName'] = 'Android' desired_caps['platformVersion'] = '5.1' desired_caps['deviceName'] = '127.0.0.1:62001' desired_caps['appPackage'] = 'com.android.settings' desired_caps['appActivity'] = '.Settings' driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) time.sleep(3) if driver.is_app_installed('cn.com.open.mooc'): driver.remove_app('cn.com.open.mooc') else: driver.install_app("C:\\Users\\admin\\Desktop\\william\\imooc7.3.710102001android.apk") time.sleep(5)银行类app会在进入后台一定时间后,如果再回到前台页面,会重新输入密码,如果要测试这种功能,可以使用这个api进行测试
打开《设置》应用,进入后台5秒,再回到前台
from appium import webdriver import time desired_caps = dict() desired_caps['platformName'] = 'Android' desired_caps['platformVersion'] = '5.1' desired_caps['deviceName'] = '127.0.0.1:62001' desired_caps['appPackage'] = 'com.android.settings' desired_caps['appActivity'] = '.Settings' driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) time.sleep(3) driver.background_app(5) time.sleep(3)
热启动:表示进入后台回到前台,关机再开这种切断电源的行为可以叫做“冷启动”