您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > appium手机自动化测试_TesterHome公开版
Appium手机自动化测试Weibo:sevenirubyTesterHome出品(公开版)Appium维护情况•由SauceLabs支持,一家业界领先的测试产品公司,有成熟的企业测试解决方案•Saucelabs有基于appium的云产品•在Google举办的GATC2013大会上有过详细介绍目前mobile自动化的方案业界top框架综合对比Appium的优点•跨架构,nativehybridwebview•跨设备,androidiosfirefoxos•跨语言,javapythonrubynodejsphp•跨app,可以在多个app之间交互•不依赖源代码•不限制测试框架和平台基于Android的测试框架Appium在Android上的架构Appium在iOS上的架构Appium架构•Appium在4.1以上使用uiautomator•4.1以下使用selendroid•Android上使用了instrumentation和uiautomator两套技术•iOS使用uiautomation•同时还支持firefox,并可扩展其他平台Appium的使用•安装nodejs•使用npm安装appium•Appium启动Appium的启动参数•Appium–help可以看到一些可选参数•通过参数可以配置如下内容•监听ip和端口•是否使用selendroid•配置android和ios相关的参数•启动app•默认开启4723端口接受webdriver请求•默认开启4724用于和android通讯Remotewebdriver调用视频演示•的加载流程•调用androidadb完成基本的系统操作•向android上部署bootstrap.jar包并启动•Forwardandroid的端口到pc机器上•Pc上监听端口接受请求,使用webdriver协议•分析命令并转通过forward的端口发给bootstrap.jar•Bootstrap.jar接受请求并把命令发给uiautomator或者插桩体系具体流程举例•Webdriver的脚本执行Element.send_keys•发送到remotewebdriver/wd/hub/session/xxx/keys•pc处理请求并转发给android和iphone•Bootstrap.jar调用uiautomator•Uiautomator调用settext方法Appium设计理念•使用webdriver协议与用户交互•XPath抽象定位•底层调用各自平台的自动化技术•类似selenium的架构Webdriver协议•使用webdriver协议,成熟标准,应用广泛•它即将成为w3c业界标准•跨语言,不限制测试框架•RemoteWebDriver方式支持云测和集群模式•PC端运行可以支持各种runtimes,不受限手机环境Appium支持主流语言webdriver的capabilities配置•App:本地路径或者网络下载地址•browserName:兼容selenium,并不使用•Device:iosandroidfirefoxos•Version:AndroidAPIversion,iOSVersion•Launch:是否让appium自动启动appCapabilities的配置例子•Android2.3•Android4.2•iOS6.1演示代码元素定位•Android和iOS的原生控件以及webview控件映射为特定的命名,比如把所有平台的按钮映射为button元素•把当前的结构树映射为html文档•通过xpath来选择元素•三种定位方式•Name:id,labeltext•Tag_name:componenttype•Xpath•定位元素建议采用PageObject模式,使用XPath•不要在测试用例中使用XPathXpath支持语法列表•//button•//button[last()]•//button[1]•/button•Button•//button/text/webview•//button[1]/text/webview[3]•//button[@name='hithere']•//button[@other_attr='hithere']•//list/button[@name=hithere]•//button[contains(@other_attr,hi)]•//*[contains(@text,'agree')]•//*[@text='agree']•//frame//buttonXpath映射关系查询Xpath获取•Appiuminspector•uiautomatorview•android也可以使用selendroid的inspector元素交互•Webdriver已经支持•点击•输入•按键事件•Mobile相关:•拖动•划动•长按点击与输入长按操作代码通过execute_script执行mobile方法一个完整的例子Appium的灵活扩展•Appium对webdriver协议进行了扩充•通过利用execute_script执行mobie操作•通过自身服务增加了一些处理命令,比如安装,卸载,加载app•也扩展支持一些平台专有的指令•Webdriver即将成为W3C标准•Appium在推动webdrive增强mobile特性位置模拟演示•只支持android模拟器原生,混合,web•三种主流的app设计模式•原生:•使用开发特定平台专用app•混合:•Phonegap百度轻应用•Web:•使用html5技术开发•jquerymobile,senchatouch混合模式的自动化•iOS•Android移动测试环境规划•私有移动测试云环境•针对androidios等各个主要版本的测试环境•模拟器为主,应付日常测试需求•公共云服务•百度MTCTestinSaucelabs•真机为主,可以测试更多场景.测试覆盖度高移动云测试•Saucelabs提供了appium的在线云环境•提供虚拟机•提供运行时的截图和录像•脚本执行非常简单•Testin和MTC也各具特色移动测试持续集成•Appium运行于PC端•支持webdriver协议和Grid模式•可以实现无缝的持续集成•与底层单元测试互补,实现分层自动化Appium对RF的支持•Appium支持webdriver协议•可以使用RFT来设计测试用例•需要对appium目前的版本打补丁•已经提需求给官方,后续会更好的支持•我目前提供的版本已经支持appiumRobot的测试用例演示•打开淘宝,输入小米手机并搜索Appium应用注意事项•Xpath的支持有问题,并不是完全的xpath功能•一些app比如qq不允许简单的amstart,需要提升权限,比如让appium扩展支持su•Appium长时间运行不太稳定,建议在执行测试前重启appium展望appium•目前还未到正式版,很多地方需要完善,但是代码清晰,而且还有saucelabs的工程师维护,代码质量有保证•架构非常优秀,扩展性很好,不会限制用户使用特定的语言•已经成为mobile自动化事实上的标准•Saucelabs云服务已经支持appium,MTCTESTIN后续也可能会跟进,使appium成为标准的云端解决方案Testerhome论坛•专注于移动测试与Web测试•技术型论坛•Talkischeap,Showmethecode•公开的合伙人体系•testerhome.com我们的论坛与appium互动里程碑•Done•翻译了appium的文档•补充了测试用例类型•提交发现的issue•Doing•改进appium•目标:•和saucelabs一起维护appium•技术交流与商业合作•@恒温@monkey@国文更多技术爆料敬请期待•Appium自动遍历•Appium录制回放技术•Android调试分析技术•Android应用逆向分析与破解Appium相关培训推荐•Monkey移动测试培训••Appium培训公开课••TesterHome马上也要开展自己的培训体系,敬请大家关注.•我们会利用已有技术体系,并结合阿里,百度等多家互联网公司的移动测试经验,为你带来最实用的移动测试培训课程.•我们的努力只为成就你
本文标题:appium手机自动化测试_TesterHome公开版
链接地址:https://www.777doc.com/doc-5139055 .html