為什么選擇appium
? app自帶測(cè)試框架,為什么要選擇appium這個(gè)測(cè)試框架呢?
- Ios9.3以前使用的是UIAutomation,Ios9.3以后使用XCUITest。如果只使用Apple的UIAutomation測(cè)試框架,我們只能用javascript來(lái)編寫(xiě)測(cè)試用例,而且只能用Instruction來(lái)運(yùn)行測(cè)試用例。
- Android4.0以下使用基于Android Instrumentation框架實(shí)現(xiàn)的Selendroid,Android4.0以上使用UIAutomator。同樣,如果只使用Google的UIAutomation,我們就只能用java來(lái)編寫(xiě)測(cè)試用例
- Appium是在手機(jī)操作系統(tǒng)自帶的測(cè)試框架基礎(chǔ)上實(shí)現(xiàn)的,而且它支持Selenium WebDriver支持的所有語(yǔ)言,如java、Object-C、JavaScript、Php、Python、Ruby、C#、Clojure,或者Perl語(yǔ)言,更可以使用Selenium WebDriver的Api,實(shí)現(xiàn)了真正的跨平臺(tái)自動(dòng)化測(cè)試
appium工作流程
- 客戶(hù)端發(fā)送testcase腳本——> appium server通過(guò)PC端4723端口監(jiān)聽(tīng) ——> 解析腳本參數(shù)給PC端4724端口 ——> 發(fā)送給移動(dòng)設(shè)備4724端口 ——> Bootstrap.jar開(kāi)啟socket服務(wù),監(jiān)聽(tīng)移動(dòng)設(shè)備4724端口 ——> Bootstrap.jar把命令發(fā)給uiautomator ——> uiautomator執(zhí)行命令,并返回執(zhí)行結(jié)果
關(guān)于appium
- appium是C/S模式的
- appium服務(wù)端是node.js寫(xiě)的,所以安裝appium都是先安裝node,npm是Node.js的包管理工具
- 我們通常安裝的appium指的是appium server,它的作用是監(jiān)聽(tīng)pc端4723端口和腳本參數(shù)解析
- Bootstrap.jar在appium server和手機(jī)創(chuàng)建session成功之前,就已放入手機(jī)中,它的作用是開(kāi)啟socket服務(wù),監(jiān)聽(tīng)手機(jī)端4724端口,將pc端傳過(guò)來(lái)的命令發(fā)送給UiAutoamtor來(lái)執(zhí)行處理
- PC端4723端口用于和腳本打交道,基于WebDriver協(xié)議,腳本與appium server的通信實(shí)際上是一個(gè)HTTP request請(qǐng)求給appium server,在請(qǐng)求的body中,會(huì)以WebDriver Wire協(xié)議規(guī)定的JSON格式的字符串來(lái)告訴appium服務(wù)我們希望設(shè)備接下來(lái)做什么事情
- Session 的作用就是它在appium服務(wù)上保持設(shè)備的狀態(tài)信息,供在任何時(shí)間進(jìn)行訪(fǎng)問(wèn),在多次的操作行為中,存儲(chǔ)在 Session對(duì)象中的配置信息將不會(huì)丟失,而是在整個(gè)用戶(hù)會(huì)話(huà)中一直存在下去,整個(gè)測(cè)試進(jìn)程中設(shè)備與程序的聯(lián)系不會(huì)斷開(kāi),也不需要每次都發(fā)送帶配置信息的請(qǐng)求。將測(cè)試設(shè)備信息告知之后,client 創(chuàng)建1個(gè)session,在該session中通過(guò)http向appium server發(fā)送請(qǐng)求,appium server解析請(qǐng)求,完成相應(yīng)操作并返回response
- desiredCapabilities的作用是告訴server本次測(cè)試的上下文
noReset: trueautomationName: XCUITestautoLaunch: falseplatformName: iosplatformVersion: 10.3.1deviceName: iPhone 6udid: xxxxxxxxxxxxxxxxxxxxxxxxxxbundleId: xxxxx
來(lái)源:
https://www.icode9.com/content-4-311451.html
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。