appium 原理淺析

我們以安卓自動(dòng)化為例來(lái)看一下:

1模她、首先:?jiǎn)?dòng)AppiumServer换帜,默認(rèn)監(jiān)聽端口:4723

[Appium] Appium REST http interface listener started on 0.0.0.0:4723

2言沐、測(cè)試腳本基于Json Wire Protocol協(xié)議以json格式發(fā)送請(qǐng)求給AppiumServer端隆箩,其中有一個(gè)重要的信息就是Desired Capabilities:里面攜帶了測(cè)試的設(shè)備响驴、測(cè)試的平臺(tái)等

3、服務(wù)器通過Bootstrap.ar中間件移植到測(cè)試的設(shè)備

4捶码、Bootstrap監(jiān)聽端口4724過來(lái)的命令數(shù)據(jù)羽氮,解析后交給底層驅(qū)動(dòng)UIAutomator來(lái)完成


二、如何理解appium中的會(huì)話機(jī)制:我們可以通過appium.log來(lái)進(jìn)行這個(gè)過程的分析:

[HTTP] --> POST /wd/hub/session [HTTP] {"capabilities":{"alwaysMatch":{"platformName":"Android","appium:appPackage":"com.codemao.grow","appium:appActivity":".ui.splash.SplashActivity","appium:deviceName":"192.168.109.156:5555","appium:noReset":"true","appium:autoGrantPermissions":"true"},"firstMatch":[{}]},"desiredCapabilities":{"platformName":"Android","appPackage":"com.codemao.grow","appActivity":".ui.splash.SplashActivity","deviceName":"192.168.109.156:5555","noReset":"true","autoGrantPermissions":"true"}} [W3C] Calling AppiumDriver.createSession() with args: [BaseDriver] Session created with session id: 069c6a44-c7ae-4d6b-82bf-204171348e08 [WD Proxy] Matched '/session' to command name 'createSession' [debug] ?[35m[WD Proxy]?[39m Proxying [POST /session] to [POST http://localhost:8201/wd/hub/session] with body: {"capabilities":{"firstMatch":[{"platform":"LINUX","webStorageEnabled":false,"takesScreenshot":true,"javascriptEnabled":true,"databaseEnabled":false,"networkConnectionEnabled":true,"locationContextEnabled":false,"warnings":{},"desired":{"platformName":"Android","appPackage":"com.codemao.grow","appActivity":".ui.splash.SplashActivity","deviceName":"192.168.109.156:5555","noReset":true,"autoGrantPermissions":true},"platformName":"Android","appPackage":"com.codemao.grow","appActivity":".ui.splash.SplashActivity","deviceName":"192.168.109.156:5555","noReset":true,"autoGrantPermissions":true,"deviceUDID":"192.168.109.156:5555"}],"alwaysMatch":{}}} [debug] ?[35m[WD Proxy]?[39m Got response with status 200: {"sessionId":"ad4655dc-e331-4abe-b043-557e73704ea8","value":{"sessionId":"ad4655dc-e331-4abe-b043-557e73704ea8","capabilities":{"firstMatch":[{"platform":"LINUX","webStorageEnabled":false,"takesScreenshot":true,"javascriptEnabled":true,"databaseEnabled":false,"networkConnectionEnabled":true,"locationContextEnabled":false,"warnings":{},"desired":{"platformName":"Android","appPackage":"com.codemao.grow","appActivity":".ui.splash.SplashActivity","deviceName":"192.168.109.156:5555","noReset":true,"autoGrantPermissions":true},"platformName":"Android","appPackage":"com.codemao.grow","appActivity":".ui.splash.SplashActivity","deviceName":"192.168.109.156:5555","noReset":true,"autoGrantPermissions":true,"deviceUDID":"192.168.109.156:5555"}],"alwaysMatch":{}}}} [info] ?[35m[WD Proxy]?[39m Determined the downstream protocol as 'W3C' [debug] ?[35m[WD Proxy]?[39m Proxying [GET /appium/device/info] to [GET http://localhost:8201/wd/hub/session/ad4655dc-e331-4abe-b043-557e73704ea8/appium/device/info] with no body [debug] ?[35m[WD Proxy]?[39m Got response with status 200: {"sessionId":"ad4655dc-e331-4abe-b043-557e73704ea8","value":{"androidId":"d5ce8f0ade0e4106","manufacturer":"OPPO","model":"PEGM00","brand":"OPPO","apiVersion":"30","platformVersion":"11","carrierName":"","realDisplaySize":"1080x2400","displayDensity":480,"networks":[{"type":1,"typeName":"WIFI","subtype":0,"subtypeName":"","isConnected":true,"detailedState":"CONNECTED","state":"CONNECTED","extraInfo":"","isAvailable":true,"isFailover":false,"isRoaming":false,"capabilities":{"transportTypes":"NET_CAPABILITY_SUPL","networkCapabilities":"","linkUpstreamBandwidthKbps":59647,"linkDownBandwidthKbps":90375,"signalStrength":-57,"networkSpecifier":null,"SSID":null}}],"locale":"zh_CN","timeZone":"Asia\/Shanghai"}}?



server地址:http://27.0.0.1:4723/wd/hub

sever和測(cè)試設(shè)備是通過4724端口來(lái)進(jìn)行通信

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末惫恼,一起剝皮案震驚了整個(gè)濱河市档押,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌祈纯,老刑警劉巖令宿,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異腕窥,居然都是意外死亡粒没,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門簇爆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)癞松,“玉大人,你說我怎么就攤上這事冕碟±雇铮” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵安寺,是天一觀的道長(zhǎng)厕妖。 經(jīng)常有香客問我,道長(zhǎng)挑庶,這世上最難降的妖魔是什么言秸? 我笑而不...
    開封第一講書人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮迎捺,結(jié)果婚禮上举畸,老公的妹妹穿的比我還像新娘。我一直安慰自己凳枝,他們只是感情好抄沮,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著岖瑰,像睡著了一般叛买。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蹋订,一...
    開封第一講書人閱讀 51,554評(píng)論 1 305
  • 那天率挣,我揣著相機(jī)與錄音,去河邊找鬼露戒。 笑死椒功,一個(gè)胖子當(dāng)著我的面吹牛捶箱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播动漾,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼丁屎,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了旱眯?” 一聲冷哼從身側(cè)響起悦屏,我...
    開封第一講書人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎键思,沒想到半個(gè)月后础爬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吼鳞,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年看蚜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赔桌。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡供炎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出疾党,到底是詐尸還是另有隱情音诫,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布雪位,位于F島的核電站竭钝,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏雹洗。R本人自食惡果不足惜香罐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望时肿。 院中可真熱鬧庇茫,春花似錦、人聲如沸螃成。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)寸宏。三九已至宁炫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間击吱,已是汗流浹背淋淀。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工遥昧, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留覆醇,地道東北人朵纷。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像永脓,于是被迫代替她去往敵國(guó)和親袍辞。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容