在上一篇博客中,已经将环境搭建好了。现在,我们利用搭建的环境来运行一条测试脚本,脚本中启动一个计算器的应用,并实现加法的运算。
创建模拟器
在运行App之前,首先需要创建一个Android模拟器,也可以使用真机来运行,效果更佳。
进到Android SDK的目录,双击运行AVD Manager.exe
点击Create创建一个Android模拟器
输入一个模拟器名称,选择设备类型和API版本,点击进行创建。创建完成后会显示当前所有的设备,选择设备,点击Start启动
第一次启动的时候会有点慢,要等几分钟,启动以后就好了,模拟器刚启动后的界面是这样的
获取应用的packageName和activityName
在写测试脚本之前,要知道被测试apk的packageName和要启动的activityName,如果是第三方的apk,有现成的可以直接使用。这里启动的是模拟器内置的应用,所以要把apk从模拟器中导出来
模拟器中预置的应用都放在手机的system/app目录中,使用adb shell命令进入目录查看计算器应用的apk名称
使用ls *.apk命令列出所有的apk,查找到apk文件为Calculator.apk,然后使用adb pull system/app/Calculator.apk d:/命令将文件导出到电脑中。
将apk导出后,Android SDK中有一个aapt的工具可以用来查看应用的包名和要启动的activity名称,工具在SDK的build-tools目录下,命令格式为”aapt dump badging apk路径”
输入命令后,第一行的输入中包含应用的包名
package: name='com.android.calculator2' versionCode='17' versionName='4.2.2-3453820'
在输入快到结尾的时候,有一行包含应用启动时打开的activity名称
launchable-activity: name='com.android.calculator2.Calculator' label=” icon='
这样就得到了packageName和activityName
Capability
Capability是一个字典,配置的是自动化测试的一些必要信息,包含了本次测试的平台名称及版本号、启动的是浏览器还是app等,客户端将这些告诉服务器,服务器根据这些信息创建自动化会话。这里只介绍跟Android平台相关并且常用的几个
automationName:定义测试引擎,使用的android-sdk版本小于17时,使用Selendroid,大于等于17时使用Appium,默认是Appium
platformName:测试平台,通常用于移动设备,值有:Android、IOS、FirefoxOS
platformVersion:测试平台版本,根据设备的固件版本指定,例如Android的4.2、IOS的7.1
deviceName:设备名称
app:要安装的app的文件路径,可以是本地的绝对路径,也可以是远程网络路径
browserName:启动的浏览器名称,测试的是web应用时指定,Android平台设置为Chrome
newCommandTimeout:为了结束Appium会话,会设置一个等待从客户端发送命令的超时时间,默认为60秒,一般不需要设置
autoLaunch:测试时是否需要自动运行app
appPackage:设置app的包名,告诉Appium需要启动的app
appActivity:设置启动的Activity
appWaitActivity:要等待的Activity
appWaitPackage:要等待的appPackage
unicodeKeyboard:是否使用unicode键盘输入,在输入中文字符和unicode字符时设置为true
resetKeyboard:是否将键盘重置为初始状态,设置了unicodeKeyboard时,在测试完成后,设置为true,将键盘重置
上述的几个Capability只是在测试中经常用到的,更多的Capability在用到的时候可以在网上查阅
编写测试脚本
新建test.py,输入下面的代码
# -*- coding: utf-8 -*- from appium import webdriver desired_caps = { 'platformName': 'Android', 'deviceName': 'emulator-5554', 'platformVersion': '4.2', 'appPackage': 'com.android.calculator2', 'appActivity': 'com.android.calculator2.Calculator' } driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) driver.find_element_by_name('7').click() driver.find_element_by_name('+').click() driver.find_element_by_name('8').click() driver.find_element_by_name('=').click()
保存文件,打开Appium,点击右上角的三角形按钮启动Appium
出现> info: Welcome to Appium v1.4.16 (REV ae6877eff263066b26328d457bd285c0cc62430d)这行信息后,就表示Appium启动成功了
Appium启动成功后,运行测试脚本,模拟器会运行计算器应用,计算加法
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 【雨果唱片】中国管弦乐《鹿回头》WAV
- APM亚流新世代《一起冒险》[FLAC/分轨][106.77MB]
- 崔健《飞狗》律冻文化[WAV+CUE][1.1G]
- 罗志祥《舞状元 (Explicit)》[320K/MP3][66.77MB]
- 尤雅.1997-幽雅精粹2CD【南方】【WAV+CUE】
- 张惠妹.2007-STAR(引进版)【EMI百代】【WAV+CUE】
- 群星.2008-LOVE情歌集VOL.8【正东】【WAV+CUE】
- 罗志祥《舞状元 (Explicit)》[FLAC/分轨][360.76MB]
- Tank《我不伟大,至少我能改变我。》[320K/MP3][160.41MB]
- Tank《我不伟大,至少我能改变我。》[FLAC/分轨][236.89MB]
- CD圣经推荐-夏韶声《谙2》SACD-ISO
- 钟镇涛-《百分百钟镇涛》首批限量版SACD-ISO
- 群星《继续微笑致敬许冠杰》[低速原抓WAV+CUE]
- 潘秀琼.2003-国语难忘金曲珍藏集【皇星全音】【WAV+CUE】
- 林东松.1997-2039玫瑰事件【宝丽金】【WAV+CUE】