# 1. 測試結果與日誌管理
:::info
簡介: 這部分介紹如何分析和管理測試結果,以及查看 Appium 日誌來進行問題排查。
:::
# 2. 查看測試結果
目前在 config 資料夾內有創建 log.py 來管理 log 的設置

#### setup_logger :
---

定義了下方執行程式碼的日誌等級
並規範了 assert (斷言),確保運行程式時先判斷主程式 log 配置

如上圖,主程式在運行前會先呼叫 setup_logger 函數並設置 log-level

輸入錯誤則直接報錯
執行完成可以在父目錄下的 logs 資料夾內找到 執行腳本的log


建議在排查時可以把 level 設為 "DEBUG" 來查看更多資訊


#### run_test_step :
---

run_test_step 是更高層級的函數用來包測試名稱 跟測試內需要加的參數

直接在主函式內呼叫 run_test_step 用來抓 log 即可

查看 appium server 生成的 log
```
[W3C (81a54518)] Responding to client with driver.findElement() result:
```

根據 W3C 協議啟動 Appium Client 向 WebDriver 發出查找元素的請求
```
GET /wd/hub/session/81a54518-8903-4e77-b54e-786cafaa78ed/element/00000000-0000-03d6-0000-002200000007/displayed 200
```

如果 element display 則回傳 status 200
```
[W3C (81a54518)] Calling AppiumDriver.performTouch() with args: [[{"action":"press","options":{"x":800,"y":500}},{"action":"wait","options":{"ms":800}},{"action":"moveTo","options":{"x":300,"y":500}},{"action":"release","options":{}}],"81a54518-8903-4e77-b54e-786cafaa78ed"]
```

呼叫 appium 內建模組 performTouch tap 螢幕
從座標(800,500)滑到(300,500)
```
[UiAutomator2] Deleting UiAutomator2 session
```

測試結束時 Deleting Session
Appium 使用 UiAutomator2 來實現對 Android 應用的自動化測試
# 3. 查看測試圖片
在 scripts/utils/image_action.py 內定義了儲存圖片位置

tesseract 是用來測試 OCR 的工具 未來可以用來訓練模型提高圖像辨識
目前 code 碼用正則表達式取值,目前不會用到 tesseract
其他畫面截圖會被放在 Worky_Automation_Testing_1\screenshots 內

並用自定義變數跟時間戳命名

code 碼則會放在更內層的 captcha 的資料夾內
# 4. 定義 Error_code
父目錄下放了一個預計定義 Error code 的文件

之後會在模組內的捕獲異常代碼內加入 Error code,協助排錯
