Ubuntu 系統(tǒng)安裝 Appium 及樣例運行教程

本文首發(fā)在TesterHome測試社區(qū):https://testerhome.com/topics/4235
第一,Appium介紹

Appium 是一個自動化測試開源工具演侯,支持 iOS 平臺和 Android 平臺上的原生應(yīng)用姿染,web 應(yīng)用和混合應(yīng)用。所謂的“混合應(yīng)用”是指原生代碼封裝網(wǎng)頁視圖——原生代碼和 web 內(nèi)容交互秒际。
重要的是悬赏,Appium 是一個跨平臺的工具:它允許測試人員在不同的平臺(iOS,Android)使用同一套API來寫自動化測試腳本娄徊,這樣大大增加了 iOS 和 Android 測試套件間代碼的復(fù)用性闽颇。

Appium無需重新編譯或修改你的應(yīng)用,同時寄锐,它還不局限于某種編程語言或者框架來編寫和運行你的測試腳本兵多,不得不說出Appium是一款非常優(yōu)秀的測試工具。
在安裝Appium過程中橄仆,新手可能會遇到一些麻煩和遭遇學(xué)習(xí)動力上打擊中鼠,盡管如此,我們社區(qū)對Appium測試框架的討論、學(xué)習(xí)熱情絲毫不減,一片如火如荼的場景箕肃。下面就Ubuntu(14.04 LTS)系統(tǒng)安裝Appium框架展開學(xué)習(xí)及給出在安裝過程中遇到的錯誤問題的解決方法四濒。
第二,安裝環(huán)境依賴準(zhǔn)備

  • node
  • npm
  • Android SDK
  • ...

注意,由于在安裝Appium文檔中,官方特別指出最好不要使用sudo命令安裝nodenpm軟件筐赔,否則后面安裝appium會遇到麻煩,鑒于此揖铜,這里我們使用已編譯好的nodejs版本省去了源碼本地編譯操作茴丰,根據(jù)自己機(jī)器型號下載對應(yīng)版本,下載錯了天吓,安裝時會出問題的贿肩。下載地址二進(jìn)制nodejs版本下載

第三,安裝nodejs
1龄寞,將從上面鏈接中獲取的二進(jìn)制nodejs版本壓縮包解壓到某一目錄下汰规,之后把解壓包中bin目錄添加到PATH環(huán)境變量中。
測試nodejs是否配置成功物邑,如下命令:

$ node -v
v5.6.0

$ npm -v
3.6.0

如果顯示以上輸出溜哮,則nodejs安裝成功滔金。
2,安裝appium
執(zhí)行命令:

$ npm install -g appium

第四茂嗓,安裝Android SDK
1餐茵,將Android SDK壓縮包解壓到某一目錄下,配置ANDROID_HOMEPATH環(huán)境變量述吸。如下钟病,
在.bashrc文件中添加兩行代碼:

ANDROID_HOME=your_android_sdk_path/sdk
PATH=$PATH:$ANDROID_HOME/tools/:$ANDROID_HOME/platform-tools

注意,即便已在.bashrc文件中設(shè)置好了ANDROID_HOME環(huán)境變量刚梭,在啟動appium-doc --android之前,也必須在shell會話里重新執(zhí)行設(shè)置ANDROID_HOME變量:

$ export ANDROID_HOME="your_android_sdk_path/sdk"

2票唆,添加 SDK 軟件包
終端執(zhí)行命令:

$ android

需要等待幾分鐘安裝SDK軟件包朴读,安裝完成后驗證ANDROID環(huán)境是否搭建成功。在終端執(zhí)行:

$ export ANDROID_HOME="your_android_sdk_path/sdk"
$ appium-doctor --android --verbose

若有以下輸出走趋,則Android配置成功:


第五衅金,安裝Appium Python Client

$ pip install Appium-Python-Client

第六,啟動Appium
還是少不了shell中設(shè)定ANDROID_HOME環(huán)境變量

$ export ANDROID_HOME="your_android_sdk_path/sdk"
$ appium

輸出如下簿煌,則啟動正常


第七氮唯,創(chuàng)建Android模擬器
1,列出所有可用的Android系統(tǒng)鏡像文件姨伟,執(zhí)行:

$ android list targets

我機(jī)子上安裝了20多個android系統(tǒng)鏡像文件惩琉,這里選擇Android 5.1.1版本。

2夺荒,創(chuàng)建android 模擬器瞒渠,執(zhí)行:

$ android create avd -n emulator-22 -t 10 --abi default/x86

上面命令參數(shù)n指定模擬器的名稱,參數(shù)t指定所使用系統(tǒng)鏡像id編號技扼,即命令android list targets列出的可用鏡像文件id編號伍玖,具體值為上圖id的值。
3剿吻,啟動android模擬器
上面命令執(zhí)行無誤后窍箍,開啟剛創(chuàng)建android模擬器,執(zhí)行:

$ emulator -avd emulator-22

avd參數(shù)指定需要開啟的模擬器名稱丽旅,即為我們創(chuàng)建模擬器時使用參數(shù)n指定的名稱椰棘。
第八,使用Python運行appium測試樣例
Github上官方測試樣例代碼榄笙,下載

1晰搀,以android_simple.py文件為例子,使用Appium Python語言客戶端對android應(yīng)用測試办斑。打開android_simple.py外恕,修改setUp方法:

def setUp(self):
        desired_caps = {}
        desired_caps['platformName'] = 'Android'
        desired_caps['platformVersion'] = '4.2'
        desired_caps['deviceName'] = 'Android Emulator'
        desired_caps['app'] = PATH(
            '../../../sample-code/apps/ApiDemos/bin/ApiDemos-debug.apk'
        )

其中desired_caps['platformVersion']值設(shè)定為我們創(chuàng)建模擬器時所使用的android對應(yīng)版本杆逗。由于這里我們前面創(chuàng)建的模擬器為android-22,故鳞疲,4.2修改為5.1.1罪郊。同樣,desired_caps['deviceName']設(shè)備名稱修改為emulator-22尚洽,即為我們前面創(chuàng)建模擬器指定的名稱悔橄。最終setUp方法為:

def setUp(self):
        desired_caps = {}
        desired_caps['platformName'] = 'Android'
        desired_caps['platformVersion'] = '5.1.1'
        desired_caps['deviceName'] = 'emulator-22'
        desired_caps['app'] = PATH(
            '../../../sample-code/apps/ApiDemos/bin/ApiDemos-debug.apk'
        )

2,開啟測試

$ py.test android_simple.py

3腺毫,測試完成結(jié)束模擬器

$ adb emu kill

第九癣疟,遇到的問題及解決方法
1,在終端里設(shè)置ANDROID_HOME環(huán)境變量潮酒,

$ export ANDROID_HOME="your_android_sdk_path/sdk"

在前文中多次提到睛挚,很重要。如果缺少急黎,則會在運行

$ appium-doctor --android --verbose

報錯:ANDROID_HOME is not set
2扎狱,創(chuàng)建android模擬器中時會提示虛擬機(jī)加速問題,需要安裝KVM
2-1勃教,安裝kvm

$ sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

2-2淤击,
添加用戶到kvm和libvirtd組

$ sudo adduser `id -un` kvm

$ sudo adduser id -un libvirtd

2-3,驗證用戶添加到組是否成功
執(zhí)行:

$ groups

輸出

r00t adm cdrom sudo dip plugdev lpadmin sambashare kvm libvirtd

以上輸出表明用戶已添加到kvm and libvirtd
2-4故源,驗證kvm安裝是否成功

$ virsh -c qemu:///system list

輸出:

     Id    名稱                         狀態(tài)
----------------------------------------------------

表示KVM安裝成功污抬。
2-5,KVM安裝成功后機(jī)器可能還不能使用绳军,最好可能需要進(jìn)入bios中設(shè)置下壕吹。具體:進(jìn)入Bios修改Configure選項卡下的SVMEnable,這樣機(jī)器就支持虛擬機(jī)加速了删铃。
第十耳贬,總結(jié)
正如Appium所倡導(dǎo)的哲學(xué)一樣,它不局限于某種語言或者框架來編寫和運行測試腳本猎唁,對同一個測試我們可以使用不同的編程語言咒劲,而且Appium支持的語言有很多,如Python诫隅、Java腐魂、Php、Ruby等逐纬。Appium自誕生已有3年歷史蛔屹,社區(qū)討論氛圍很火,相信以后Appium受眾應(yīng)該會越來越來多豁生,Appium越來越強(qiáng)大兔毒。
第一次安裝Appium時是使用源碼的方式漫贞,多次嘗試沒有成功,可能是由于npm育叁、node安裝存在問題迅脐,換成使用nodejs二進(jìn)制版本順利安裝成功了。遇到異常使用google或者百度搜索都可以找到解決方法豪嗽,除非碰到的問題太奇葩了谴蔑。
剛接觸學(xué)習(xí)Appium測試框架,寫得不到的地方龟梦,請各位大大批正隐锭。
接下來寫一篇使用Appium對Wechat簡單測試的總結(jié)文章,敬請期待计贰。
附相關(guān)資源:
1钦睡,Android AVD命令
http://developer.android.com/intl/zh-cn/tools/help/android.html
http://developer.android.com/intl/zh-cn/tools/help/adb.html
2,Android 模擬器命令
http://developer.android.com/intl/zh-cn/tools/devices/emulator.html
3蹦玫,安裝KVM相關(guān)
https://help.ubuntu.com/community/KVM/Installation

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市刘绣,隨后出現(xiàn)的幾起案子樱溉,更是在濱河造成了極大的恐慌,老刑警劉巖纬凤,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件福贞,死亡現(xiàn)場離奇詭異,居然都是意外死亡停士,警方通過查閱死者的電腦和手機(jī)挖帘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來恋技,“玉大人拇舀,你說我怎么就攤上這事◎叩祝” “怎么了骄崩?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長薄辅。 經(jīng)常有香客問我要拂,道長,這世上最難降的妖魔是什么站楚? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任脱惰,我火速辦了婚禮,結(jié)果婚禮上窿春,老公的妹妹穿的比我還像新娘拉一。我一直安慰自己采盒,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布舅踪。 她就那樣靜靜地躺著纽甘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪抽碌。 梳的紋絲不亂的頭發(fā)上悍赢,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天,我揣著相機(jī)與錄音货徙,去河邊找鬼左权。 笑死,一個胖子當(dāng)著我的面吹牛痴颊,可吹牛的內(nèi)容都是我干的赏迟。 我是一名探鬼主播,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼蠢棱,長吁一口氣:“原來是場噩夢啊……” “哼锌杀!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起泻仙,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤糕再,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后玉转,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體突想,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年究抓,在試婚紗的時候發(fā)現(xiàn)自己被綠了猾担。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡刺下,死狀恐怖绑嘹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情橘茉,我是刑警寧澤圾叼,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站捺癞,受9級特大地震影響夷蚊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜髓介,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一惕鼓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧唐础,春花似錦箱歧、人聲如沸矾飞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽洒沦。三九已至,卻和暖如春价淌,著一層夾襖步出監(jiān)牢的瞬間申眼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工蝉衣, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留括尸,地道東北人。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓病毡,卻偏偏與公主長得像濒翻,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子啦膜,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,828評論 2 345

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