appium自動(dòng)化測(cè)試

自動(dòng)化測(cè)試背景

自動(dòng)化測(cè)試可以反復(fù)迅速的執(zhí)行一些測(cè)試用例,從而降低執(zhí)行的成本,提升測(cè)試速度,可以讓團(tuán)隊(duì)把回歸的精力放在另一些不合適用自動(dòng)化測(cè)試去實(shí)現(xiàn)的 測(cè)試用例上。好搞定的問(wèn)題讓機(jī)器去搞定,難搞定的問(wèn)題用人去搞定

優(yōu)點(diǎn)
  • 節(jié)省人力,只要代碼維護(hù)的好,不需要那么多人就可完成測(cè)試
  • 節(jié)省時(shí)間,測(cè)試腳本可以晚上或者是周末跑測(cè)試腳本
  • 優(yōu)化資源分配,在運(yùn)行測(cè)試腳本的同時(shí),QA可以做其他事,比如設(shè)計(jì)新測(cè)試用例
  • 增加軟件的可信度,測(cè)試是機(jī)器執(zhí)行的,排除了手工測(cè)試時(shí)因人為情緒而發(fā)生的隨意性或疏忽性,測(cè)試結(jié)果更可信
  • 能完成手工不易控制的工作,比如采集系統(tǒng)cpu占有率信息,手工計(jì)算很復(fù)雜,還要進(jìn)行數(shù)據(jù)比對(duì),使用腳本更簡(jiǎn)單,更方便。
自動(dòng)化測(cè)試的缺點(diǎn):
  • 腳本維護(hù)成本高,尤其是版本變動(dòng)比較大,對(duì)項(xiàng)目來(lái)說(shuō),是潛在的風(fēng)險(xiǎn)
  • 不易發(fā)現(xiàn)新bug

下面介紹自動(dòng)化測(cè)試使用的工具, 關(guān)于環(huán)境安裝 ,比較簡(jiǎn)單, 這里就不再概述

Appium 介紹

圖片.png

Appium 用于自動(dòng)化測(cè)試iOSAndroidWindows 桌面平臺(tái)上的原生、移動(dòng) Web混合應(yīng)用
原生應(yīng)用:指用iOSAndroid 或者 Windows SDK 編寫(xiě)的應(yīng)用。
移動(dòng) Web 應(yīng)用 :用移動(dòng)端瀏覽器訪問(wèn)的應(yīng)用( Appium 支持 iOS 上的 Safari 、Chrome 和 Android 上的內(nèi)置瀏覽器)。
混合應(yīng)用 hybrid:Hybrid app
Appium 是跨平臺(tái)的:允許用多樣的API 對(duì)多平臺(tái)(iOS、Android、Windows)寫(xiě)測(cè)試。做到在iOSAndroidWindows 測(cè)試套件之間復(fù)用代碼。

Appium 原理

圖片.png

最底層都是基于系統(tǒng)自帶的自動(dòng)化框架:

appium把這些系統(tǒng)本身提供的框架包裝進(jìn)一套 API —— WebDriver API 中。WebDriver(Selenium WebDriver)規(guī)定了一個(gè)客戶端-服務(wù)器協(xié)議(稱為 JSON Wire Protocol),按照這種客戶端-服務(wù)器架構(gòu),可以使用任何語(yǔ)言編寫(xiě)的客戶端向服務(wù)器發(fā)送適當(dāng)?shù)?HTTP 請(qǐng)求。可以自由使用測(cè)試運(yùn)行器和測(cè)試框架;客戶端程序庫(kù)不過(guò)是一個(gè)簡(jiǎn)單的 HTTP 客戶端,

Appium 的概念

客戶端 / 服務(wù)器
Appium 的核心一個(gè)是暴露 REST API 的 WEB 服務(wù)器。它接受來(lái)自客戶端的連接,監(jiān)聽(tīng)命令并在移動(dòng)設(shè)備上執(zhí)行,答復(fù) HTTP 響應(yīng)來(lái)描述執(zhí)行結(jié)果。

會(huì)話(Session)
自動(dòng)化始終在一個(gè)會(huì)話的上下文中執(zhí)行,這些客戶端程序庫(kù)以各自的方式發(fā)起與服務(wù)器的會(huì)話,但最終都會(huì)發(fā)給服務(wù)器一個(gè) POST /session 請(qǐng)求,請(qǐng)求中包含一個(gè)被稱作「預(yù)期能力(Desired Capabilities)」的 JSON 對(duì)象。這時(shí)服務(wù)器就會(huì)開(kāi)啟這個(gè)自動(dòng)化會(huì)話,并返回一個(gè)用于發(fā)送后續(xù)命令的會(huì)話 ID。

圖片.png

預(yù)期能力(Desired Capabilities)
預(yù)期能力是一些發(fā)送給 Appium 服務(wù)器的鍵值對(duì)集合,告訴服務(wù)器我們想要啟動(dòng)什么類型的自動(dòng)化會(huì)話。也可以修改服務(wù)器在自動(dòng)化過(guò)程中的行為。

圖片.png

具體參數(shù)可以參考Appium 服務(wù)器初始化參數(shù)(Capability)
圖片.png

Appium 服務(wù)器/ Appium Server GUI
Appium 是一個(gè)用 Node.js 寫(xiě)的服務(wù)器。可以從源碼構(gòu)建安裝或者從 NPM 直接安裝
Appium Server GUI: 圖形化Server工具

Appium 客戶端
有一些客戶端程序庫(kù)(分別在 Java、Ruby、Python、PHP、JavaScript 和 C# 中實(shí)現(xiàn)),它們支持 Appium 對(duì) WebDriver 協(xié)議的擴(kuò)展。你需要用這些客戶端程序庫(kù)代替常規(guī)的 WebDriver 客戶端。

Appium Inspector
這有一個(gè) Appium 服務(wù)器的圖形界面封裝可以下載,它適用于任何平臺(tái)。它打包了 Appium 服務(wù)器運(yùn)行需要的所有東西。還提供一個(gè) Inspector 使你可以查看應(yīng)用程序的層級(jí)結(jié)構(gòu), 以及錄制各個(gè)語(yǔ)言的腳本

圖片.png

圖片.png

自動(dòng)化測(cè)試流程

啟動(dòng)appium

兩種方式:
一、 終端

appium -p 4723

二、客戶端


圖片.png

運(yùn)行WDA

兩種方式:
一、xcode


圖片.png

二、xcodebuild

xcodebuild clean -project /Users/a58/Desktop/PROGECT/WebDriverAgent/WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination id=22ec9aedc59c3ea52444d7a996c8f6aaa9664298,platform=iOS
xcodebuild test -project /Users/a58/Desktop/PROGECT/WebDriverAgent/WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination id=22ec9aedc59c3ea52444d7a996c8f6aaa9664298,platform=iOS

運(yùn)行成功之后


圖片.png

啟動(dòng)Appium Inspector

啟動(dòng)之后可以使用 App Inspector 來(lái)定位元素,以及錄制腳本, 最主要還是用來(lái)定位元素, 定位到元素之后,就可以進(jìn)行后續(xù)的自動(dòng)化操作(點(diǎn)擊、滑動(dòng)、拖動(dòng)、輸入以及各種手勢(shì))


圖片.png

腳本

為了方便后續(xù)的維護(hù)與拓展,新建了python項(xiàng)目, 并導(dǎo)入了pytest測(cè)試框架,增加測(cè)試的便利性
工程目錄如圖:


圖片.png
圖片.png

appium_cof : appium、wda啟動(dòng)相關(guān)
base: 基類
config: 配置相關(guān), app, 手機(jī), 啟動(dòng)項(xiàng)設(shè)置等
page: APP相關(guān)也民安
testcase: 測(cè)試用例
util: 使用到的工具類等

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,967評(píng)論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,273評(píng)論 3 415
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 175,870評(píng)論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 62,742評(píng)論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,527評(píng)論 6 407
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 55,010評(píng)論 1 322
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,108評(píng)論 3 440
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 42,250評(píng)論 0 288
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,769評(píng)論 1 333
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,656評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,853評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,371評(píng)論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,103評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 34,472評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 35,717評(píng)論 1 281
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,487評(píng)論 3 390
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,815評(píng)論 2 372

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