赞
踩
自动化测试涉及到手机、电脑以及Appium服务等多端交互,在正式开始之前,首先我们要确认一下环境是否正确安装:
如果没有安装appium环境请参考:Appium环境搭建保姆级教程
Appium是一个支持多平台的自动化测试框架,启动Appium程序需要提供 platformName 参数,指明需要使用哪个操作系统的自动化引擎:
- from appium.webdriver import Remote
- caps = dict(platformName="Android")
- driver = Remote(desired_capabilities=caps)
- 复制代码
打开手机,如果需要访问具体的App,将App的安装包路径也放到 caps 中,如果不传 app 参数,则默认打开设备首页。
- caps = dict(platformName="Android",
- app="/path/iBiliPlayer-bilibili.apk")
- 复制代码
电脑上也有可能连接多个手机,如果有多个手机,需要指定想操作的手机设备,使用 udid 参数,设备号可以输入adb devices 获取。通常情况下,要对某个app进行自动化测试,这三个启动参数是最常见的。
- caps = dict(platformName="Android",
- app="/path/iBiliPlayer-bilibili.apk",
- udid='emulator-5554')
- 复制代码
当这些数据准备好了之后,我们可以直接通过给 Appium 提供的 Remote类,连接对应的app。操作完成之后,通过 quit 方法来退出整个会话。
一定要记得quit,否则后面在进行元素定位的时候,可能会出现无法获取页面源码的错误。
- from appium.webdriver import Remote
-
- file = '/path/iBiliPlayer-bilibili.apk'
-
- caps = dict(platformName="Android",
- app=file,
- udid='emulator-5554')
-
- driver = Remote(desired_capabilities=caps)
- driver.quit()
- 复制代码
通常情况下,Appium 可以通过apk的路径来直接操作指定的app。但是又是不方便拿到 apk 文件,而我们的手机上已经装好了要测试的 app, 那么可以通过 app 的包名来启动。
- from appium.webdriver import Remote
-
- caps = {
- "platformName": "Android",
- "udid": "emulator-5554",
- "appPackage": "com.bilibili.app.blue",
- "appActivity": "tv.danmaku.bili.ui.splash.SplashActivity"
- }
-
- driver = Remote(desired_capabilities=caps)
- driver.quit()
- 复制代码
通过下面的命令可以直接得到启动 app 的 appPackage 参数和 appActivity 参数,
- adb logcat | findStr -i displayed
- 复制代码
输入命令后,手工点击进入 app, 可以显示手机最近打开了哪些页面,最近打开的页面会显示在最下方,从而我们得到了需要的参数。
Appium 还有很多启动参数,可以在官方的 Desired Capbility 中查看。只有 platformName 是必填的,其他都是可选。
常用启动参数:
通过一个完整的脚本说明一下。
1、连接手机,启动 app
2、元素定位,执行操作
3、退出程序
- from appium.webdriver import Remote
-
- caps = {
- "platformName": "Android",
- "udid": "emulator-5554",
- "appPackage": "com.bilibili.app.blue",
- "appActivity": "tv.danmaku.bili.ui.splash.SplashActivity"
- }
-
- driver = Remote(desired_capabilities=caps,
- command_executor = 'http://127.0.0.1:4723/wd/hub')
- driver.implicitly_wait(10)
- driver.find_element('id', 'com.bilibili.app.blue:id/agree').click()
- driver.quit()
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!
涵盖以下这些面试题板块:
1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux
6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础
获取方式 :
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。