Original error: Error: socket hang up
一、appium 執行 app 自動化時,上一個自動化程序未關閉導致
一般 Node.js 提供的 HttpServer 預設設定了 2 分鐘超時時間,當一個請求的處理時間超過 2 分鐘,HttpServer 會自動呼叫請求的套接字關閉掉,於是客戶端變收到了 econnreset 的錯誤資訊了。這不是因為時間的問題導致超時錯誤,主要原因是 HttpServer 程序被上一次自動化測試佔用,所以就會導致以執行就會報 econnreset 的錯誤
解決方案:
1、刪掉手機上安裝的 appium 的兩個 app(Appium Setting 和 io.appium.uiautomator2.server.test),重啟手機
2、在指令碼層面上,session 覆蓋選項設定為 True。自動化任務跑完最後面一定要呼叫 driver.quit 等操作,或者程式碼出現致命錯誤,的時候也要去執行 quit。以防下次自動化任務跑失敗
3、也可以在啟動 appium 命令新增:-session-override,或者在 appium desktop 中,點選 Advanced,勾選 Allow Session Override。
二、appium 多併發執行,未指定 systemPort,當觸發多個終端執行時,系統埠占用衝突
解決方案:
系統會分配埠號用於與裝置互動,通常 ios 為 8100~8199,android 為 8200~8299.為避免衝突,可以為每個執行緒指定埠號,設定系統與裝置埠號:systemPort
{
"platformName": "Android",
"appium:platformVersion": "11",
"appium:deviceName": "emulator test2",
"appium:automationName": "UiAutomator2",
"appium:newCommandTimeout": "180",
"appium:resetKeyboard": true,
"appium:unicodeKeyboard": true,
"appium:noReset": true,
"appium:unlockType": "pattern",
"appium:unlockKey": "",
"appium:clearSystemFiles": true,
"appium:skipServerInstallation": false,
"appium:skipDeviceInitialization": false,
"appium:appPackage": "com.xx.xx",
"appium:appActivity": "com.xx.xx.xx",
"appium:udid": "emulator-5556",
"appium:systemPort ": "8201"
}
如果以上方式還會偶現,避開同一時間點觸發多個裝置自動化,也可終端輸入命令:adb logcat ,搜尋其中的 uiautomator 分類的 log
三、元素定位超時
元素定位過程超時,可以新增 desired_caps 超時時間:
"appium:newCommandTimeout": "180",
...
相關文章
- 關於報錯An unexpected error occurred: “https://registry.yarnpkg.com/react: socket hang up“ErrorHTTPYarnReact
- ''Sbt Error = 7011, Errno = 959'' Error When Backing Up To TapeError
- appium start session 時報錯 Error executing adbExec. Original error 求指點APPSessionError
- Connection reset by peer: socket write errorError
- 急~~~Error establishing socket異常。Error
- error RS102 too stale to catch upError
- Nodejs Post請求報socket hang up錯誤的解決辦法NodeJS
- mysql [ERROR] Can't create IP socket: Permission deniedMySqlError
- Fatal firmware error: Driver detected possible FW hang, halting FWError
- Software caused connection abort: socket write error/mysql/tomcatErrorMySqlTomcat
- appium start session 時報錯 Error executing adbExec. Original error。已經卡了一天,求大神指點APPSessionError
- mount error(5): Input/output errorError
- 【ERROR】OPatch failed with error code 73ErrorAI
- error:slave communication error with ASMErrorASM
- ERROR: slave communication error with ASMErrorASM
- Mongodb secondary上面replSet error RS102 too stale to catch upMongoDBError
- MMON encountered error 959, clearing the errorError
- 如何解決"Parse error: syntax error"Error
- DB error due to HP-UX Error:23ErrorUX
- CRS ERROR - PRKC-1073 - ErrorError
- Error page: / Error infos: DedeCms錯誤警告Error
- Error for iOSErroriOS
- error事件Error事件
- Error: no such columnError
- DepthClipEnable errorError
- Error StackError
- innobackupex: Error: noError
- java.sql.SQLRecoverableException: IO Error: Socket read timed out 排查歷程JavaSQLExceptionError
- ERROR 1045 (28000): ProxySQL Error: 報錯ErrorSQL
- ERROR 2026 (HY000): SSL connection error: unknown error numberError
- ORA-600/ORA-7445/ORA-700 Error Look-up Tool的使用方法Error
- vagrant up 啟動報錯 Stderr: VBoxManage.exe: error: A NAT rule of this name already existsError
- Golang 學習——error 和建立 error 原始碼解析GolangError原始碼
- Setup had an error Error: At least one of these paths should existErrorAST
- MySQL ERROR Got an error reading communication packetsMySqlErrorGo
- [ERROR] InnoDB: Unable to lock ./ibdata1, error: 11Error
- Install Error : ERROR:SQLException null Resultset [ID 875002.1]ErrorSQLExceptionNull
- FATAL ERROR IN TWO-TASK SERVER: error = 12569ErrorServer