我們?cè)谶M(jìn)行iOS Appium自動(dòng)化測(cè)試的時(shí)候,會(huì)遇到環(huán)境配置、兼容使用問(wèn)題,這里做個(gè)總結(jié),以避免后續(xù)踩著這些坑。
問(wèn)題1. 提示no module “appium”
解決:第1步,在終端輸入命令
cd /usr/local/bin
pip3 install Appium-Python-Client
因?yàn)閍ppium默認(rèn)裝在了python2上
第2步,新建項(xiàng)目時(shí)要勾選
Inherit global site-packages和Make available to all projects。
問(wèn)題2. 獲取udid的兩種方法
一種方法是iOS手機(jī)連接iTunes,查看摘要;另一種方法是打開(kāi)Xcode,選擇add simulator,可以查看到udid。
問(wèn)題3. 提示AssertionError: Message: An unknown server-side error occurred while processing the command.
Original error: Unknown device or simulator UDID: '***'
解決:brew install libimobiledevice –HEAD
如果在執(zhí)行此命令時(shí)提示 /usr/local/share/man/man5 /usr/local/share/man/man7,則需要修改所有者權(quán)限,那么需要按如下命令操作:
sudo chown –R cy /usr/local/share/man/man5
sudo chown –R cy /usr/local/share/man/man7
問(wèn)題4. 修改環(huán)境變量,把終端弄掛了;
解決:打開(kāi)終端,選擇Shell->新建命令,輸入mkdir disabled_shell_files,運(yùn)行命令;打開(kāi)一個(gè)新的終端。重復(fù)剛才的步驟,然后在彈出的對(duì)話框里面輸入mv .profile .bash_history .bash_profile .bashrc .inputrc disabled_shell_files,點(diǎn)擊運(yùn)行。再打開(kāi)一個(gè)新的終端,你會(huì)看到終端恢復(fù)正常了。
問(wèn)題5. brew update時(shí)連接不上github
解決:修改etc/hosts,尾部添加github的ip地址,如192.30.255.112;
可以在http://tool.chinaz.com/dns?type=1&host=github.com&ip= 查詢ip地址
問(wèn)題6. 如何查看app的bundle id
解決: 步驟1.真機(jī)連接電腦;步驟2.Xcode->Product->Destination->Add Additional Simulators…,在Devices菜單欄可以看到手機(jī)上所有的app bundle id。
問(wèn)題7. 安裝appium-doctor報(bào)錯(cuò)
npm install -g appium -doctor
internal/modules/cjs/loader.js:611
throw err;
^
Error: Cannot find module 'semver'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:609:15)
at Function.Module._load (internal/modules/cjs/loader.js:535:25)
at Module.require (internal/modules/cjs/loader.js:663:17)
at require (internal/modules/cjs/helpers.js:20:18)
at Object.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/unsupported.js:2:14)
at Module._compile (internal/modules/cjs/loader.js:734:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:745:10)
at Module.load (internal/modules/cjs/loader.js:626:32)
at tryModuleLoad (internal/modules/cjs/loader.js:566:12)
at Function.Module._load (internal/modules/cjs/loader.js:558:3)
解決:
brew uninstall node.js
把/usr/local/lib下的node和node_modules文件都刪除了
再執(zhí)行以下代碼
sudo rm /usr/local/bin/npm
sudo rm /usr/local/share/man/man1/node.1
sudo rm /usr/local/lib/dtrace/node.d
sudo rm -rf ~/.npm
sudo rm -rf ~/.node-gyp
sudo rm /opt/local/bin/node
sudo rm /opt/local/include/node
sudo rm -rf /opt/local/lib/node_modules
問(wèn)題8. 啟動(dòng)app,Pycharm運(yùn)行時(shí)提示找不到HTMLtestrunner模塊,需要在網(wǎng)上下載py文件,并放到python的site-packages文件下
問(wèn)題9. Pycharm里from appium時(shí)報(bào)錯(cuò),提示找不到appium模塊
解決:確保已安裝appium模塊,pip3 install appium-python-client,然后Pycharm->new project,再在Pycharm->preferences…,project Interpreter選項(xiàng)中,點(diǎn)擊+,搜索appium-python-client,下載package;
這時(shí)在pycharm里再輸入from appium就能自動(dòng)匹配,不報(bào)錯(cuò)了。
問(wèn)題10. 提示Error running 'xxx': Cannot run program "/Users/xx/PycharmProjects/xxx/venv/bin/python" (in directory "/Users/xx/xxtest/xxx/test_case"): error=2, No such file or directory
解決:
1)只創(chuàng)建project,在prefrence for new project菜單,找到Project Interpreter選項(xiàng),在地址目錄中會(huì)提示地址無(wú)效,這時(shí)點(diǎn)擊Add添加按鈕,重新定位到python的路徑
2)設(shè)置之后,再創(chuàng)建項(xiàng)目文件,iostest—xxx—test_case和test_report,在test_case下創(chuàng)建py文件,再執(zhí)行就不報(bào)錯(cuò)了。
問(wèn)題11. ModuleNotFoundError: No module named 'StringIO'
解決:在HTMLTestRunner.py 中修改import StringIO為from io import StringIO,將python2的寫法改為python3的。
問(wèn)題12.Appium昨天能運(yùn)行,今天不能啟動(dòng)
解決:最終發(fā)現(xiàn)下圖所示的sever選錯(cuò)了,正確應(yīng)為如下所選中的選項(xiàng)
問(wèn)題13. ios與android不同,定位元素時(shí)候,name方法應(yīng)該為
driver.find_element_by_accessibility_id(‘ ’)
問(wèn)題14. 運(yùn)行報(bào)錯(cuò)selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: Could not create simulator with name 'appiumTest-iPad', device type id 'iPad' and runtime id '12.1'. Reason: 'simct…
解決:需要把在appium desk上的desired_caps中的bundleid添加到py文件里。
問(wèn)題15. Pycharm上run時(shí)報(bào)錯(cuò),提示python interpreter的路徑is not empty
解決:在新建new project的窗口中,除了填寫項(xiàng)目名稱之外,千萬(wàn)別忘記打開(kāi)第二個(gè)選項(xiàng)的右三角,“Project Interpreter:New Virtualenv environment”來(lái)設(shè)置運(yùn)行時(shí)的編譯環(huán)境;
如果在創(chuàng)建項(xiàng)目-腳本之后再去設(shè)置,會(huì)一直報(bào)錯(cuò)。
問(wèn)題16. HTMLTestRunner報(bào)錯(cuò)
HTMLTestRunner 是 Python 標(biāo)準(zhǔn)庫(kù)中unittest 模塊的一個(gè)擴(kuò)展。使用它可以生成易于使用的 HTML 測(cè)試報(bào)告。
首先下載HTMLTestRunner.py文件,然后在Mac終端執(zhí)行命令python3,接著輸入以下命令:
import sys
sys.path
得到下圖所示的路徑
最后,把下載的文件復(fù)制到第2步高亮顯示的路徑下,那么pycharm中就可以import HTMLTestRunner。
由于python2和python3的寫法不同,如果上述還會(huì)報(bào)錯(cuò),則需要修改HTMLTestRunner.py文件。
第1步,HTMLTestRunner.py文件中按下面進(jìn)行修改:
1)python3中模塊io取代了StringIO
94行 import StringIO
改為 import io
2)所有和StringIO相關(guān)的都要更改
540行 self.outputBuffer = StringIO.StringIO()
改為 self.outputBuffer = io.StringIO()
3)python3沒(méi)有has_key()方法,所以要更改如下代碼
if not rmap.has_key(cls)
改為 if not cls in rmap
4)python3的decode和python2不同,更改
769行 uo = o.decode(‘latin-1’)
改為 uo = e
779行 ue = e.decode(‘latin-1’)
改為 ue = e
5)python3的print()方法和python2也有區(qū)別,更改
634行 print>>sys.stderr,’\nTime Elapsed=%s’ %(self.stopTime-self.startTime)
改為 print(sys.stderr,’\nTime Elapsed=%s’ %(self.stopTime-self.startTime))
6)再次運(yùn)行HTMLTestRunner.py文件就OK了;
第2步,suite.py文件中修改:
由于報(bào)錯(cuò)中提及from . import case和from . import util,將這兩行所在的代碼注釋掉,再次運(yùn)行suite.py文件也OK了
第3步,重新運(yùn)行testcase.py文件,一份簡(jiǎn)潔明了的HTML形式的測(cè)試報(bào)告結(jié)果就可見(jiàn)了!
加官方微信:sy51testing 回復(fù)關(guān)鍵詞“學(xué)習(xí)”領(lǐng)取限量軟件測(cè)試學(xué)習(xí)資料哦~~
新聞名稱:iOS自動(dòng)化測(cè)試的那些干貨:關(guān)于appium啟動(dòng)報(bào)錯(cuò)問(wèn)題的解決辦法-創(chuàng)新互聯(lián)
瀏覽地址:http://www.rwnh.cn/article8/dcehip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、企業(yè)網(wǎng)站制作、面包屑導(dǎo)航、網(wǎng)站制作、用戶體驗(yàn)、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容
網(wǎng)頁(yè)設(shè)計(jì)公司知識(shí)