学习目标:
- 能够使用 appium 启动任意应用程序
- 能够了解 “前置代码” 中各项参数的含义
一. 快速体验
应用场景
在做app自动化的时候,我们肯定是针对某个产品、某个软件进行测试,那么我们一定是先让模拟器或
真机帮我们打开这款软件才可以。所以接下来要学的就是如何打开某个应用程序。
需求
使用以下步骤可以打开模拟器中的 《设置》 应用程序
步骤
- 打开手机模拟器
- 打开appium工具
- 创建一个python项目,取名为 hello_appium
- 创建一个 demo.py 文件
- 将下面代码直接复制,并运行即可
from appium import webdriver
desired_caps = dict()
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '5.1'
desired_caps['deviceName'] = '192.168.56.101:5555'
desired_caps['appPackage'] = 'com.android.settings'
desired_caps['appActivity'] = '.Settings'
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
driver.quit()
注意点:
这段代码实际上配置了一些启动应用程序的相关参数。之后的其他项目也需要用到这个参数,可
能有些参数配置的内容不同。为了方便我们后期课程会将这段代码叫做 “前置代码”
二. 参数详解
应用场景
如果后期项目不是测试《设置》应用程序,而是测试《短信》应用程序那么怎么打开《短信》应用程序
呢?如果后期项目测试的模拟器或手机不再是5.1的版本,而是6.1的版本呢?相关配置的信息在学习之
后都可以进行修改。
参数解释
# 导模块
from appium import webdriver
# 创建一个字典,包装相应的启动参数
desired_caps = dict()
# 需要连接的手机的平台(不限制大小写)
desired_caps['platformName'] = 'Android'
# 需要连接的手机的版本号(比如 5.2.1 的版本可以填写 5.2.1 或 5.2 或 5 ,以此类推)
desired_caps['platformVersion'] = '5.1'
# 需要连接的手机的设备号(andoird平台下,可以随便写,但是不能不写)
desired_caps['deviceName'] = '192.168.56.101:5555'
# 需要启动的程序的包名
desired_caps['appPackage'] = 'com.android.settings'
# 需要启动的程序的界面名
desired_caps['appActivity'] = '.Settings'
# 连接appium服务器
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# 退出
driver.quit()
启动过程
appium的启动实际上是在本机使用了4723端口开启了一个服务
- 我们写的 python 代码会访问本机的 appium 服务器,并获取 driver 对象
- appium 会将我们的 driver 对象调用的方法转化成 post 请求,提交给appium服务器
- appium 通过接收到的 post 请求发送给手机,再由手机进行执行