标签:WebDriver appium 4724 流程 端口 server 测试 解析
为什么选择appium
app自带测试框架,为什么要选择appium这个测试框架呢?
- Ios9.3以前使用的是UIAutomation,Ios9.3以后使用XCUITest。如果只使用Apple的UIAutomation测试框架,我们只能用javascript来编写测试用例,而且只能用Instruction来运行测试用例。
- Android4.0以下使用基于Android Instrumentation框架实现的Selendroid,Android4.0以上使用UIAutomator。同样,如果只使用Google的UIAutomation,我们就只能用java来编写测试用例
- Appium是在手机操作系统自带的测试框架基础上实现的,而且它支持Selenium WebDriver支持的所有语言,如java、Object-C、JavaScript、Php、Python、Ruby、C#、Clojure,或者Perl语言,更可以使用Selenium WebDriver的Api,实现了真正的跨平台自动化测试
appium工作流程
- 客户端发送testcase脚本——> appium server通过PC端4723端口监听 ——> 解析脚本参数给PC端4724端口 ——> 发送给移动设备4724端口 ——> Bootstrap.jar开启socket服务,监听移动设备4724端口 ——> Bootstrap.jar把命令发给uiautomator ——> uiautomator执行命令,并返回执行结果
关于appium
- appium是C/S模式的
- appium服务端是node.js写的,所以安装appium都是先安装node,npm是Node.js的包管理工具
- 我们通常安装的appium指的是appium server,它的作用是监听pc端4723端口和脚本参数解析
- Bootstrap.jar在appium server和手机创建session成功之前,就已放入手机中,它的作用是开启socket服务,监听手机端4724端口,将pc端传过来的命令发送给UiAutoamtor来执行处理
- PC端4723端口用于和脚本打交道,基于WebDriver协议,脚本与appium server的通信实际上是一个HTTP request请求给appium server,在请求的body中,会以WebDriver Wire协议规定的JSON格式的字符串来告诉appium服务我们希望设备接下来做什么事情
- Session 的作用就是它在appium服务上保持设备的状态信息,供在任何时间进行访问,在多次的操作行为中,存储在 Session对象中的配置信息将不会丢失,而是在整个用户会话中一直存在下去,整个测试进程中设备与程序的联系不会断开,也不需要每次都发送带配置信息的请求。将测试设备信息告知之后,client 创建1个session,在该session中通过http向appium server发送请求,appium server解析请求,完成相应操作并返回response
- desiredCapabilities的作用是告诉server本次测试的上下文
noReset: true
automationName: XCUITest
autoLaunch: false
platformName: ios
platformVersion: 10.3.1
deviceName: iPhone 6
udid: xxxxxxxxxxxxxxxxxxxxxxxxxx
bundleId: xxxxx
- 更多配置请查看官方文档:[http://appium.io/docs/en/writing-running-appium/caps/]
标签:WebDriver,appium,4724,流程,端口,server,测试,解析 来源: https://www.cnblogs.com/iamluoli/p/11157187.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。