本文首發(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
命令安裝node
、npm
軟件筐赔,否則后面安裝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_HOME
和PATH
環(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
選項卡下的SVM
為Enable
,這樣機(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