零、软件功用和我使用背景
appium作为一个开源测试框架,在服务器上执行,连接android、ios手机或firefox浏览器,控制它们按照脚本进行行为。我的实践是以appium操纵安卓上app模拟用户过程执行指令。
一、参考文献及我的评判:
嗯,我的实践是在安卓上做的。很简单所以随便参考了下appium连接ios的文章搞定了。
https://www.jianshu.com/p/96b453adb6b3
https://www.jianshu.com/p/0932149baf24
https://www.cnblogs.com/handaxing/p/6952491.html
二、意外问题一览
确认当前焦点所在窗口确实是本app
cmd_check= 'adb shell -s %s dumpsys window | grep mCurrentFocus' %DEVICE_ID
f = os.popen(cmd_check)
res = f.read()
f.close()
res_tmp = res.strip().split(' ')[2]
package_name, activity_name = res_tmp.split('/')
package_name == 本app的包名
adb命令:
adb shell am force-stop 包名 可以退出此app
adb shell input keyevent 唤醒屏幕 避免锁屏
三、基本流程命令
brew install node
brew install appium
获取android应用的的package name和appactivity
a)AndroidManifest.xml中的 manifest节点 中找 package name
b)aapt dump bading apk所在路径\apk名字(或者直接把apk拖进命令行)
填写appium参数
desired_caps = {'deviceName':'hammerhead',
'unicodeKeyboard':True,
'noReset':True,
'resetKeyboard':True,'platformVersion':'6.0',
'newCommandTimeout':'1200',
'appPackage':'com.ss.android.article.video','platformName':'Android',
'appActivity':'com.ss.android.article.video.activity.SplashActivity'}
python脚本连接android应用执行测试。
wdhub ='http://localhost:4723/wd/hub'
webdriver.Remote(wdhub,desired_caps)
操作app范例
self.driver.find_element_by_id('com.pplive.androidphone:id/usercenter_login').click()
username_field =self.driver.find_element_by_id('com.pplive.androidphone:id/username_field')
username_field.clear()
username_field.set_value(username)
password_field =self.driver.find_element_by_id('com.pplive.androidphone:id/password_field')
password_field.clear()
password_field.set_value(password)
self.driver.find_element_by_id('com.pplive.androidphone:id/login_btn').click()