Appium法严,說實話,筆者最開始并不知道可以怎么用烂斋,也不知道App自動化測試是一種怎樣神奇的操作屹逛,帶著好奇的心態(tài)去了解了一把 Appium础废。當然第一件事便是搭建環(huán)境,真坑罕模!以下评腺,且聽我慢慢道來,筆者是如何站在無數(shù)巨人的肩膀上一步一步把坑填起來的淑掌。
首先說明一下筆者的開發(fā)環(huán)境歇僧,需根據(jù)實際情況來。
MAC OS: 10.12.5
Appium: 1.5.3
Java: 1.8
Python: 3.6
Seleniun: 3.5.0
一锋拖、安裝Appium客戶端
筆者下載的是上面最新的v1.5.3版本诈悍;
[下載地址:https://bitbucket.org/appium/appium.app/downloads/ ]
安裝成功后,打開Appium應用兽埃,點擊 Appium Doctor 查看是否安裝成功侥钳,遇到了第一個坑:
Appium Doctor iOS Could not detect Mac OS X Version from sw_vers output: '10.12.5 '
不怕噢,按以下網(wǎng)址說明重新配置這幾個文件就OK了柄错。
[詳見:http://blog.csdn.net/yxys01/article/details/73551281 ]
修改配置后舷夺,重新執(zhí)行 Appium Doctor 檢測是否安裝成功,遇到了第二個問題:
info AppiumDoctor ? The Authorization DB is set up properly.
[TypeError: Cannot read property 'replace' of undefined]
繼續(xù)尋找答案售貌,原是沒有安裝 <code>node.js</code> 给猾。
[詳見:http://blog.csdn.net/lunamagic/article/details/52713797 ]
安裝 <code>node.js</code> 后,執(zhí)行 Appium Doctor 檢測颂跨,這一步可以通過敢伸,中間也許會有關(guān)于 <code>JAVA_HOME</code> 和 <code>ANDROID_HOME</code> 沒有配置環(huán)境變量的錯誤,不過這都是小事恒削,大家在搭建 Android 開發(fā)環(huán)境前池颈,定會妥妥地配置一把。
二钓丰、安裝 Appium 客戶端庫
Appium客戶端庫可以有多種語言選擇躯砰,因為筆者之前很少接觸腳本語言,聽說了許多腳本語言的強大之處后携丁,就選擇了心心念想著的 Appium Python Client琢歇,安裝腳本和命令如下:
git clone git@github.com:appium/python-client.git
cd python-client
python setup.py install
第三步,安裝 Python 3梦鉴,其實 Mac 上已經(jīng)有 Python 2.7版本存在李茫,只不過筆者想安裝最新的版本,如何切換到 Python 3呢尚揣?在 .bash_profile 文件中添加以下配置涌矢,路徑為你自己安裝的Python 3的路徑:
alias python="/Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5"
[詳見:http://www.reibang.com/p/2c83363fa623 ]
三、自動化測試腳編寫和執(zhí)行
真正的體驗開始了快骗,啟動Appium娜庇,選擇Apk文件進行配置和自動化塔次,參考 demo 寫個最簡單的 python 腳本開始自動化測試之旅。問題來了:
selenium.common.exceptions.WebDriverException: Message: Parameters were incorrect. We wanted {"required":["desiredCapabilities"],"optional":["requiredCapabilities","sessionId","id","sessionId","id","sessionId","id","sessionId","id"]} and you sent ["capabilities", "desiredCapabilities"]
一開始以為這個問題很好解決名秀,因為 Appium github上有人遇見過一樣的問題励负,但最終發(fā)現(xiàn)對于筆者我這個剛接觸 Appium 和 Python 的小白來說,并不懂其間的關(guān)聯(lián)匕得,大多數(shù)答案是 降低 selenium 的版本到 3.3.1 继榆,這可為難了,說的不明確汁掠,因為筆者查看到 Python 3 和 Appium Python Client 包中是帶有 selenium 3.6版本的略吨,降級是要自己下載 3.3.1 替換還是重新下載一個 selenium 呢?筆者當時已經(jīng)被這一丟丟的東西給弄混了考阱,現(xiàn)在還沒有特別明確知道 Appium Python Selenium 這三者如何關(guān)聯(lián)一起的翠忠。于是花了一上午的時間定位到了 github上的另一個答案,按照上面的說法乞榨,自個的理解是秽之,降級并不可靠,畢竟大家傾向用最新版本的東西吃既,既然說參數(shù)格式不正確考榨,那就將 webdriver.py 中的 parameters 格式改成需要的格式。果真鹦倚,摸索著改了 Python 3 包下的 <code>/python3.6/site-packages/selenium-3.5.0-py3.6.egg/selenium/webdriver/remote/webdriver.py</code> 文件河质,再執(zhí)行測試腳本,Appium 可以成功執(zhí)行測試腳本申鱼,最終開啟了自動化測試之旅~
[問題詳見 @jimevans:https://github.com/SeleniumHQ/selenium/issues/4017#issuecomment-302030078]
相關(guān)資料:
- Appium 參考文檔:http://appium.io/slate/cn/master
- Appium-Python-client 庫和Demo:https://github.com/appium/python-client