第四章__流动资产管理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Appium手机自动化测试Weibo:seveniruby  更新日期:  2013-­‐12-­‐28TesterHome出品(公开版)Testerhome.comQQ群:  3155086262 官方网站  Appium项目介绍维护情况  • 由SauceLabs支持  • Saucelabs是海外一家业界领先的测试产品公司,  有成熟的企业测试解决方案和基于appium的云产品  • 在Google举办的GATC2013大会上有过详细介绍  • 2013年12月Selenium官方组织宣布放弃自己的mobile项目,  改而支持Appium  Selendroid  iosdriver框架目前mobile自动化的方案业界top框架综合对比百度Cafe框架阿里Athrun14-3-14 cafe  vs  athrun  • athrun的设计理念有问题  • athrun国内反应一般,  没在github发布  • 侧面了解althrun在重构  • cafe技术和理念都很好  • 其他公司反馈效果好  • 开放性好,  支持与appium的集成  • 推荐cafe  Appium的优点• 跨架构,naLve  hybrid  webview  • 跨设备,android    ios  firefoxos  • 跨语言,java  python  ruby  nodejs  php  • 跨app,  可以在多个app之间交互  • 不依赖源代码  • 不限制测试框架和平台  基于Android的测试框架Appium在Android上的架构Appium在iOS上的架构Appium架构• Android上使用了instrumentaLon和uiautomator两套技术  • Appium在4.1以上使用uiautomator  • 4.1以下使用selendroid  • iOS使用uiautomaLon  • 支持firefoxStartUp• 阅读官方的文档和我们已经翻译的文档  • 阅读官方的代码示例  • 阅读appium的源代码  • 分析appium的logAppium的使用• 安装nodejs  • 使用npm安装appium  • Appium启动  Appium的启动配置• Appium  –help• 配置设备超时时间  • 配置使用的虚拟机  • 配置log文件  • …• 默认开启4723端口接受webdriver请求  • 默认开启4724用于和手机通讯  Remote  webdriver调用视频演示  • Jonathan  Lipps  Appium:  Mobile  AutomaLon  Made  Awesome  • hYp://v.youku.com/v_show/id_XNjU0MDM0NTI0.html  • Jonathan  Lipps  -­‐  LXJS2013  -­‐  Appium  • hYp://v.youku.com/v_show/id_XNjUzOTU2NjQ4.html  • 乙醇的appium视频教程之appium入门及原理剖析  • hYp://v.youku.com/v_show/id_XNjQzMjI4NDcy.html  • hYp://v.youku.com/v_show/id_XNjQzODIwMzA4.html  • Appium自动化测试演示  • hYp://v.youku.com/v_show/id_XNjM0ODIxNTUy.html  • 密码是testerhome.comAppium的加载流程• 调用android  adb完成基本的系统操作  • 向android上部署bootstrap.jar包并启动  • Forward  android的端口到pc机器上  • Pc上监听端口接受请求,使用webdriver协议  • 分析命令并转通过forward的端口发给bootstrap.jar• Bootstrap.jar接受请求并把命令发给uiautomator或者插桩体系一个android上的操作流程• 1.  Webdriver的脚本执行Element.send_keys  • 2.  发送到remote  webdriver  /wd/hub/session/xxx/keys• 3.  pc处理请求并转发给android和iphone  • 4.  Bootstrap.jar调用uiautomator  • 5.  Uiautomator调用seYext方法Appium设计理念• PC端运行  • 使用webdriver协议与用户交互  • XPath抽象定位  • 底层调用各自平台的自动化技术  • 类似selenium的架构  Webdriver协议• 使用webdriver协议,成熟标准,应用广泛  • 它即将成为w3c业界标准  • 跨语言,  不限制测试框架  • Remote  WebDriver方式支持云测和集群模式  • PC端运行可以支持各种runLmes,不受限手机环境  Appium支持主流语言webdriver的capabiliLes配置• App:  本地路径或者网络下载地址  • browserName:  兼容selenium,  并不使用  • Device:    ios  android  firefoxos  • Version:  AndroidAPIversion,iOSVersion• Launch:  是否让appium自动启动appCapabiliLes的配置例子• Android2.3• Android4.2• iOS6.1演示代码  元素定位  • Android和iOS的原生控件以及webview控件映射为特定的命名,  比如把所有平台的按钮映射为buYon元素  • 把当前的结构树映射为html文档  • 通过xpath来选择元素  • 三种定位方式  • Name:    id,label  text  content-­‐desc  • Tag_name:    component  type• Xpath  • 定位元素建议采用(Screen  Object)PageObject模式,使用XPath  Xpath支持语法列表• //buYon• //buYon[last()]• //buYon[1]• /buYon• BuYon• //buYon/text/webview  • //buYon[1]/text/webview[3]• //buYon[@name='hi  there']• //buYon[@other_aYr='hi  there']• //list/buYon[@name=hi  there]• //buYon[contains(@other_aYr,  hi)]• //*[contains(@text,  'agree')]• //*[@text='agree']• //frame//buYon  • 目前还不是完整的xpath,appium1.0会支持有全功能的xpath支持Xpath映射关系查询Xpath获取• Appium  inspector• Uiautomatorviewer  • Uiautomator  events• android也可以使用selendroid的inspector元素交互  • Webdriver已经支持  • 点击  • 输入  • 按键事件  • Mobile相关:• 拖动  • 划动  • 长按  点击与输入  长按操作代码  通过execute_script执行mobile方法发送特殊event• 发送ctrl+v  • driver.execute_script  'mobile:  keyevent',  {'keycode'=50,  'metastate'=28672}• 发送v字符  • driver.execute_script  'mobile:  keyevent',  {'keycode'=50}• 具体的事件代码请参考各自平台的event文档  一个完整的例子  中文输入问题  • 两个解决方法:• 1.  安装UTF7IME输入法,  并使用对应的Java库编码待输入中文  • 2.  使用复制粘贴方法.  长按某个输入框,  并模拟ctrl+v的按键,  别触发搜狗输入法,  搜狗输入法有bug,  会拦截ctr+v,其他输入法没有此类问题.Appium的灵活扩展• Appium对webdriver协议进行了扩充  • 通过利用execute_script执行mobie操作  • 通过自身服务增加了一些处理命令,比如安装,  卸载,  加载app• 也扩展支持一些平台专有的指令  • Webdriver即将成为W3C标准  • Appium在推动webdrive增强mobile特性  位置模拟演示  • 目前只支持android模拟器原生,混合,web• 三种主流的app设计模式  • 原生:  • 使用开发特定平台专用app• 混合:• Phonegap  百度轻应用  • Web:  • 使用html5技术开发  • jquery  mobile,  sencha  touch混合模式的自动化  • iOS  • AndroidAppium对RF的支持• Appium支持webdriver协议  • 可以使用RFT来设计测试用例  • 需要对appium目前的版本打补丁  • 已经提需求给官方,  后续会更好的支持  • 我目前提供的版本已经支Robot,  如果企业有需求,  我们也乐意打造完全支持的商业版本.Robot的测试用例演示• 打开淘宝,  输入小米手机并搜索  移动测试环境规划  • 私有移动测试云环境  • 针对android  ios等各个主要版本的测试环境  • 模拟器为主,  应付日常测试需求  • 公共云服务  • 百度MTC  TesLn  Saucelabs  • 真机为主,  可以测试更多场景.  测试覆盖度高  移动云测试  • Saucelabs提供了appium的在线云环境  • 提供虚拟机  • 提供运行时的截图和录像  • 脚本执行非常简单  国内移动云测平台  • TestIn  • 提供商业服务.• 价格贵.• 服务好  • 技术差  • MTC• 百度云计算计划的一部分  • 免费  • 没有商业服务  • 技术优秀  • 两者功能各有特色,  可以去相关网站参考  • 限于篇幅,  不做详细介绍  移动测试持续集成  • Appium运行于PC端  • 支持webdriver协议和Grid模式  • 可以实现无缝的持续集成  Appium应用注意事项• Xpath的支持有问题,并不是完全的xpath功能,  在即将发布的1.0版本中会提供完全的支持  • 一些app比如qq不允许简单的am  start,需要提升权限,  比如让appium扩展支持su  • Appium长时间运行不太稳定,  建议在执行测试前重启appium  展望appium• 目前还未到正式版,很多地方需要完善,但是代码清晰,而且还有saucelabs的工程师维护,代码质量有保证  • 架构非常优秀,扩展性很好,不会限制用户使用特定的语言  • Appium已经成为mobile自动化事实上的标准  • Saucelabs云服务已经支持appium,MTC  TESTIN后续也可能会跟进,使appium成为标准的云端解决方案  • Selenium官方组织宣布放弃自身mobile项目转而支持appium  • 国内使用appium的公司在逐渐增多  Appium  1.0  coming  soon• 与selenium3协议融合,  selenium新版本将支持appium的api  • 提供定位,网速控制,  电源等硬件访问a

1 / 65
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功