打开cmd,输入命令 appium
连接手机
查看是否连接上,cmd输入 adb devices 查看设备连接列表。
编写python测试脚本
1、安装python-client-appium库:
pip install Appium-Python-Client
2、启动uiautomatorviewer
cmd输入命令 uiautomatorviewer 启动UI。
UIAutomatorviewer和Android sdk打包在一起,在tools目录下。用于检查UI的层级关系,记以及视图与控件相关联的属性。可以查看到元素的查看element的package,属性和id。
3、编写python脚本
fromappiumimportwebdriver importos # Returns abs path relative to this file and not cwd PATH = lambdap: os.path.abspath( os.path.join(os.path.dirname(__file__), p) ) desired_caps = {} desired_caps['platformName'] ='Android' desired_caps['platformVersion'] ='4.4.4' desired_caps['deviceName'] ='Hisense I635T' desired_caps['appPackage'] ='io.appium.android.apis' desired_caps['appActivity'] ='io.appium.android.apis.ApiDemos' desired_caps['app'] = PATH( './apps/ApiDemos.apk' ) driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) arr = driver.find_element_by_accessibility_id("App") assertarrisnotNone driver.quit() |
遇到的错误
错误 1: python运行报错:urllib2.URLError:
appium没有启动完全,启动要等一下运行py。
错误2:未解决
Telnet command got response: a[K[Dav[K[D[Davd[K[D[D[Davd [K[D[D[D[Davd n[K[D[D[D[D[Davd na[K[D[D[D[D[D[Davd nam[K[D[D[D[D[D[D[Davd name[K
错误3:
Original error: Activity used to start app doesn’t exist or cannot be launched! Make sure it exists and is a launchable activity
appactivity写错了,去掉前面的包名称,试试。
错误4:Original error: Permission to start activity。
没有权限,解决方法是让开发在AndroidManifest.xml文件中将Activity设置成允许调用:Android:exported=”true”。
再次运行,搞定。
测试模拟器
以上步骤也可以在模拟器上面进行测试。步骤如下:
进入Android安装目录,双击 AVD Manager.exe 启动。创建一个模拟器并start。
错误:HAXM未安装,到SDK Manager中安装下,如果还是提示未安装,则到android sdk目录下的\extras\intel\Hardware_Accelerated_Execution_Manager双击下intelhaxm-android.exe进行安装。重新启动模拟器应该就OK了。
Device Name填写的是模拟器的名称,启动模拟器,appium后,再启动Inspector就能Reflesh启动App,来进行操作。可是这存在一个问题:模拟器比较慢,而且多少和真机不一样,比如说模拟器不能调出手机键盘等;所以如果我们要做自动化测试的时候,最好还是用真机来运行app,然后进行定位。
注:
能用真机,别用模拟器。模拟器慢的呀。