iOS自動化測試的那些乾貨:關於appium啟動報錯問題的解決辦法
我們在進行iOS Appium自動化測試的時候,會遇到環境配置、相容使用問題,這裡做個總結,以避免後續踩著這些坑。
問題1. 提示no module “appium”
解決:第1步,在終端輸入命令
cd /usr/local/bin
pip3 install Appium-Python-Client
因為appium預設裝在了python2上
第2步,新建專案時要勾選
Inherit global site-packages和Make available to all projects。
問題2. 獲取udid的兩種方法
一種方法是iOS手機連線iTunes,檢視摘要;另一種方法是開啟Xcode,選擇add simulator,可以檢視到udid。
問題3. 提示AssertionError: Message: An unknown server-side error occurred while processing the command.
Original error: Unknown device or simulator UDID: '***'
解決:brew install libimobiledevice –HEAD
如果在執行此命令時提示 /usr/local/share/man/man5 /usr/local/share/man/man7,則需要修改所有者許可權,那麼需要按如下命令操作:
sudo chown –R cy /usr/local/share/man/man5
sudo chown –R cy /usr/local/share/man/man7
問題4. 修改環境變數,把終端弄掛了;
解決:開啟終端,選擇Shell->新建命令,輸入mkdir disabled_shell_files,執行命令;開啟一個新的終端。重複剛才的步驟,然後在彈出的對話方塊裡面輸入mv .profile .bash_history .bash_profile .bashrc .inputrc disabled_shell_files,點選執行。再開啟一個新的終端,你會看到終端恢復正常了。
問題5. brew update時連線不上github
解決:修改etc/hosts,尾部新增github的ip地址,如192.30.255.112;
可以在 查詢ip地址
問題6. 如何檢視app的bundle id
解決: 步驟1.真機連線電腦;步驟2.Xcode->Product->Destination->Add Additional Simulators…,在Devices選單欄可以看到手機上所有的app bundle id。
問題7. 安裝appium-doctor報錯
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檔案都刪除了
再執行以下程式碼
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
問題8. 啟動app,Pycharm執行時提示找不到HTMLtestrunner模組,需要在網上下載py檔案,並放到python的site-packages檔案下
問題9. Pycharm裡from appium時報錯,提示找不到appium模組
解決:確保已安裝appium模組,pip3 install appium-python-client,然後Pycharm->new project,再在Pycharm->preferences…,project Interpreter選項中,點選+,搜尋appium-python-client,下載package;
這時在pycharm裡再輸入from appium就能自動匹配,不報錯了。
問題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)只建立project,在prefrence for new project選單,找到Project Interpreter選項,在地址目錄中會提示地址無效,這時點選Add新增按鈕,重新定位到python的路徑
2)設定之後,再建立專案檔案,iostest—xxx—test_case和test_report,在test_case下建立py檔案,再執行就不報錯了。
問題11. ModuleNotFoundError: No module named 'StringIO'
解決:在HTMLTestRunner.py 中修改import StringIO為from io import StringIO,將python2的寫法改為python3的。
問題12.Appium昨天能執行,今天不能啟動
解決:最終發現下圖所示的sever選錯了,正確應為如下所選中的選項
問題13. ios與android不同,定位元素時候,name方法應該為
driver.find_element_by_accessibility_id(‘ ’)
問題14. 執行報錯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檔案裡。
問題15. Pycharm上run時報錯,提示python interpreter的路徑is not empty
解決:在新建new project的視窗中,除了填寫專案名稱之外,千萬別忘記開啟第二個選項的右三角,“Project Interpreter:New Virtualenv environment”來設定執行時的編譯環境;
如果在建立專案-指令碼之後再去設定,會一直報錯。
問題16. HTMLTestRunner報錯
HTMLTestRunner 是 Python 標準庫中unittest 模組的一個擴充套件。使用它可以生成易於使用的 HTML 測試報告。
首先下載HTMLTestRunner.py檔案,然後在Mac終端執行命令python3,接著輸入以下命令:
import sys
sys.path
得到下圖所示的路徑
最後,把下載的檔案複製到第2步高亮顯示的路徑下,那麼pycharm中就可以import HTMLTestRunner。
由於python2和python3的寫法不同,如果上述還會報錯,則需要修改HTMLTestRunner.py檔案。
第1步,HTMLTestRunner.py檔案中按下面進行修改:
1)python3中模組io取代了StringIO
94行 import StringIO
改為 import io
2)所有和StringIO相關的都要更改
540行 self.outputBuffer = StringIO.StringIO()
改為 self.outputBuffer = io.StringIO()
3)python3沒有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也有區別,更改
634行 print>>sys.stderr,’\nTime Elapsed=%s’ %(self.stopTime-self.startTime)
改為 print(sys.stderr,’\nTime Elapsed=%s’ %(self.stopTime-self.startTime))
6)再次執行HTMLTestRunner.py檔案就OK了;
第2步,suite.py檔案中修改:
由於報錯中提及from . import case和from . import util,將這兩行所在的程式碼註釋掉,再次執行suite.py檔案也OK了
第3步,重新執行testcase.py檔案,一份簡潔明瞭的HTML形式的測試報告結果就可見了!
加我VX:ww-51testing 回覆關鍵詞“測試”領取限量軟體測試學習資料哦~~
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2654763/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於 Appium 中 ios 自動化測試的幾個問題,請教下大神,謝謝APPiOS
- appium 進行 ios 自動化測試,報無法啟動 WebDriverAgent 會話錯誤,跪求大佬們幫忙看看~APPiOSWeb會話
- robotframework + appium進行自動化測試時遇到的問題FrameworkAPP
- 救命!!!jenkins 中自動化測試中遇到無法解決的問題Jenkins
- iOS appium UI 自動化測試配置可控 xpathiOSAPPUI
- 關於 App 啟動時間測試的問題APP
- 解決MMM啟動監控報錯的問題
- Appium+python自動化54-appium-doctor報錯已解決(SyntaxError: Unexpected token ...)APPPythonError
- 關於使用 Appium 的 wda 測試 IOS 的 XCUI 框架 app 中元素的問題APPiOSUI框架
- [記錄] STF+Appium 自動化 WDA 埠報錯,解決方法!APP
- 關於 ui 自動化測試 driver 疑問?UI
- AutoRunner介面自動化測試工具不能錄製指令碼的解決辦法(A)指令碼
- Appium自動化測試之常用的adb命令APP
- 關於npm install安裝報錯的解決辦法NPM
- appium 自動化測試,無法獲取具體元素APP
- Appium+Python實現iOS自動化測試~環境搭建APPPythoniOS
- appium uiautomator 移動端自動化測試工具APPUI
- Appium自動化(15) - 針對 webview 進行自動化測試APPWebView
- 解決ASM無法啟動問題ASM
- [opendx] 基於 appium 的移動端 UI 自動化測試平臺-介紹篇APPUI
- Mac 上啟動 appium 報錯MacAPP
- Jenkins整合appium自動化測試(Windows篇)JenkinsAPPWindows
- 專案啟動報錯怎麼辦?看看你Spring自動注入用對了嘛?@Autowired XxxService注入問題解決Spring
- PyCharm啟動報錯:Failed to create JVM.解決辦法之一PyCharmAIJVM
- 介面自動化測試解決方案
- android appium微信等自動化的那些坑兒AndroidAPP
- 3分鐘瞭解Appium:使用appium做Android手機自動化測試!APPAndroid
- 關於Web端-UI自動化測試WebUI
- 關於介面測試自動化的總結與思考
- iOS自動化測試驅動工具探索iOS
- 關於Chrome報錯 ERR_NAME_NOT_RESOLVED 解決辦法Chrome
- 做自動化測試時開啟多執行緒,怎麼解決日誌混亂的問題??執行緒
- Android + Appium 自動化測試完整的環境配置及程式碼詳解AndroidAPP
- 解決vscode安裝後無法啟動的問題VSCode
- 搭建appium+python自動化測試環境APPPython
- python+appium+pytest做app自動化測試PythonAPP
- 軟體自動化測試工具的那些事兒
- 關於python操作帶有中文檔名報錯的解決辦法Python