资源预览内容
第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
第9页 / 共9页
亲,该文档总共9页全部预览完了,如果喜欢就下载吧!
资源描述
Appium介绍,什么是appium?,什么是appium?,1,appium是开源的移动端自动化测试框架; 2,appium可以测试原生的、混合的、以及移动端的web项目; 3,appium可以测试ios,android应用(当然了,还有firefox os); 4,appium是跨平台的,可以用在osx,windows以及linux桌面系统上;,appium的基本概念,Client/Server Architecture Session Desired Capabilities,Client/Server Architecture,appium的核心其实是一个暴露了一系列REST API的server 这个server的功能其实很简单:监听一个端口,然后接收由client发送来的command。翻译这些command,把这些command转成移动设备可以理解的形式发送给移动设备,然后移动设备执行完这些command后把执行结果返回给appium server,appium server再把执行结果返回给client。 在这里client其实就是发起command的设备,一般来说就是我们代码执行的机器,执行appium测试代码的机器。狭义点理解,可以把client理解成是代码,这些代码可以是java/ruby/python/js的,只要它实现了webdriver标准协议就可以。 这样的设计思想带来了一些好处: 1,可以带来多语言的支持; 2,可以把server放在任意机器上,哪怕是云服务器都可以;(是的,appium和webdriver天生适合云测试),Session,session就是一个会话,在webdriver/appium,你的所有工作永远都是在session start后才可以进行的。一般来说,通过POST /session这个URL,然后传入Desired Capabilities就可以开启session了。 开启session后,会返回一个全局唯一的session id,以后几乎所有的请求都必须带上这个session id,因为这个seesion id代表了你所打开的浏览器或者是移动设备的模拟器。 进一步思考一下,由于session id是全局唯一,那么在同一台机器上启动多个session就变成了可能,这也就是selenium gird所依赖的具体理论根据。 本文版权归乙醇所有,欢迎转载,但请注明作者与出处,严禁用于任何商业用途,Desired Capabilities,Desired Capabilities携带了一些配置信息。从本质上讲,这个东东是key-value形式的对象。你可以理解成是java里的map,python里的字典,ruby里的hash以及js里的json对象。实际上Desired Capabilities在传输时就是json对象。 Desired Capabilities最重要的作用是告诉server本次测试的上下文。这次是要进行浏览器测试还是移动端测试?如果是移动端测试的话是测试android还是ios,如果测试android的话那么我们要测试哪个app? server的这些疑问Desired Capabilities都必须给予解答,否则server不买账,自然就无法完成移动app或者是浏览器的启动。,appium的安装windows版,appium的安装windows版,Desired Capabilities详解,Desired Capabilities在启动session的时候是必须提供的。 Desired Capabilities本质上是key value的对象,它告诉appium server这样一些事情: 本次测试是启动浏览器还是启动移动设备? 是启动andorid还是启动ios? 启动android时,app的package是什么? 启动android时,app的activity是什么?,Capabilities通用配置,automationName:使用哪种自动化引擎。appium(默认)还是Selendroid? platformName:使用哪种移动平台。iOS, Android, orFirefoxOS? deviceName:启动哪种设备,是真机还是模拟器?iPhone Simulator, iPad Simulator, iPhone Retina 4-inch, Android Emulator, Galaxy S4, etc. app:应用的绝对路径,注意一定是绝对路径。如果指定了appPackage和appActivity的话,这个属性是可以不设置的。另外这个属性和browserName属性是冲突的。 browserName:移动浏览器的名称。比如Safari for iOS and Chrome, Chromium, or Browser for Android;与app属性互斥。,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号