电竞比分网-中国电竞赛事及体育赛事平台

分享

appium工作流程解析

 印度阿三17 2019-07-09

為什么選擇appium

? app自帶測(cè)試框架,為什么要選擇appium這個(gè)測(cè)試框架呢?

  • Ios9.3以前使用的是UIAutomation,Ios9.3以后使用XCUITest。如果只使用Apple的UIAutomation測(cè)試框架,我們只能用javascript來(lái)編寫測(cè)試用例,而且只能用Instruction來(lái)運(yùn)行測(cè)試用例。
  • Android4.0以下使用基于Android Instrumentation框架實(shí)現(xiàn)的Selendroid,Android4.0以上使用UIAutomator。同樣,如果只使用Google的UIAutomation,我們就只能用java來(lái)編寫測(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工作流程

  • 客戶端發(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寫的,所以安裝appium都是先安裝nodenpm是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)行訪問(wèn),在多次的操作行為中,存儲(chǔ)在 Session對(duì)象中的配置信息將不會(huì)丟失,而是在整個(gè)用戶會(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: true
automationName: XCUITest
autoLaunch: false
platformName: ios
platformVersion: 10.3.1
deviceName: iPhone 6
udid: xxxxxxxxxxxxxxxxxxxxxxxxxx
bundleId: xxxxx
來(lái)源:https://www./content-4-311451.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多