端自動(dòng)化分享課后練習(xí)
1. DKT框架的核心通信協(xié)議是什么?
HTTP REST API
gRPC
WebSocket JSON
TCP Socket
2. 在被測(cè)的Windows機(jī)器上部署自動(dòng)化客戶端,正確的步驟是?
安裝Python環(huán)境后運(yùn)行 python Client/tkClientWin.py
管理員權(quán)限運(yùn)行 ClientWin.exe,點(diǎn)擊「連接」,確認(rèn)顯示「已連接」
雙擊運(yùn)行 ClientWin.exe 即可,無(wú)需其他操作
在被測(cè)機(jī)器上安裝PyCharm運(yùn)行測(cè)試用例
3. 調(diào)用 self.input("hello") 之前,必須先執(zhí)行什么操作?
調(diào)用 self.CMD("echo hello")
調(diào)用 time.sleep(5) 等待頁(yè)面加載
先點(diǎn)擊輸入框獲取焦點(diǎn)(如 self.ocr_click("請(qǐng)輸入用戶名"))
不需要任何前置操作,直接調(diào)用即可
4. 編寫Page類時(shí),必須繼承哪個(gè)基類?
unittest.TestCase
Page.BasePage.BasePage
Console.Device
pytest.fixture
5. ocr_click的text參數(shù)應(yīng)該傳入什么內(nèi)容?
對(duì)元素的描述文字,如"登錄按鈕"、"用戶名輸入框"
元素的HTML id或class名稱
屏幕上實(shí)際可見(jiàn)的文字,如按鈕上顯示的"登錄"、輸入框的占位符"請(qǐng)輸入用戶名"
自己定義的變量名,如"login_button"
6. 本地Python版本不是3.8.10,想用uv創(chuàng)建對(duì)應(yīng)版本的虛擬環(huán)境,正確的命令是?
uv create --python 3.8.10 venv
uv venv --python 3.8.10 venv
uv install python==3.8.10
uv env new 3.8.10
7. ocr_click("保存", loc=(0, 0, 500, 500))中l(wèi)oc=(0, 0, 500, 500)的作用是什么?
表示點(diǎn)擊坐標(biāo)(x, y)和偏移量(dx, dy)
限定OCR識(shí)別的搜索區(qū)域?yàn)樽笊辖?0,0)到右下角(500,500)的矩形范圍
表示屏幕分辨率的寬度和高度
表示如果識(shí)別失敗,就點(diǎn)擊坐標(biāo)(500, 500)
8. pytest測(cè)試方法的命名必須滿足什么規(guī)則?
以 check_ 開(kāi)頭
以 test_ 開(kāi)頭
以 verify_ 開(kāi)頭
沒(méi)有命名要求
9. 在PyCharm中調(diào)試測(cè)試用例前,必須將pytest的工作目錄配置為?
項(xiàng)目根目錄
Page/ 目錄
tests/ 目錄
Console/ 目錄
10. ocr_wait("確定", click=True, timeout=10)這行代碼的含義是?
直接點(diǎn)擊"確定"文字,超時(shí)10秒報(bào)錯(cuò)
等待"確定"文字出現(xiàn)(最多10秒),出現(xiàn)后自動(dòng)點(diǎn)擊
在10秒內(nèi)持續(xù)點(diǎn)擊"確定"
等待10秒后再查找"確定"
11. Page類中page_w = 3840, page_h = 2160的作用是什么?
設(shè)置截圖分辨率
聲明編寫用例時(shí)的參考分辨率,框架自動(dòng)換算為設(shè)備實(shí)際分辨率
限制測(cè)試只能在4K設(shè)備上運(yùn)行
設(shè)置OCR識(shí)別區(qū)域的大小
12. 自動(dòng)化客戶端(Client)安裝包存放在項(xiàng)目的哪個(gè)目錄?
tools/
Client/
ipackage/
Server/
13. 以下哪種定位方式是最推薦、最穩(wěn)定的?
坐標(biāo)點(diǎn)擊 self.click(x, y)
OCR文字識(shí)別 self.ocr_click(text, loc)
圖片模板匹配 self.img_click(path, loc)
三種方式?jīng)]有優(yōu)劣之分
14. 當(dāng)img_click找不到圖片時(shí),可以嘗試的解決方案是?
增大 timeout 參數(shù)
降低 threshold 參數(shù)(如設(shè)為0.7)
重新截圖確保清晰
以上都可以嘗試
15. 啟動(dòng)應(yīng)用后,推薦使用什么方式等待頁(yè)面加載完成再執(zhí)行后續(xù)操作?
固定 time.sleep(30) 等足夠長(zhǎng)的時(shí)間
使用 ocr_wait("期望文字", timeout=10) 等待關(guān)鍵文字出現(xiàn)
不需要等待,直接執(zhí)行下一步操作
循環(huán)調(diào)用 ocr_exists 100次來(lái)檢測(cè)
16. 以下哪些方法可以用來(lái)驗(yàn)證(斷言)測(cè)試結(jié)果?
assert self.ocr_exists("保存成功", loc)
assert self.ocr_wait("保存成功", timeout=10, raise_error=False)
assert self.img_exists("images/ok.png", loc)
assert self.click(100, 200)
assert "期望內(nèi)容" in self.ocr_get_text(loc)
17. 以下關(guān)于 input() 方法的說(shuō)法,哪些是正確的?
調(diào)用 input() 前需要先點(diǎn)擊輸入框獲取焦點(diǎn)
input() 可以直接輸入中文文本
input() 會(huì)自動(dòng)找到頁(yè)面上的輸入框
在Android端,input() 支持 index 參數(shù)指定第幾個(gè)輸入框
輸入后建議添加 time.sleep(0.5) 等待
18. DKT系統(tǒng)由三個(gè)端組成,以下哪些描述是正確的?
Server端代碼在 Server/ws.py,負(fù)責(zé)設(shè)備連接管理和消息路由
Client端運(yùn)行在被測(cè)設(shè)備上,負(fù)責(zé)執(zhí)行鍵鼠操作和截圖
測(cè)試端的核心文件包括 tests/conftest.py、Page/BasePage.py、Console/Device.py
每個(gè)開(kāi)發(fā)者都需要自己部署一個(gè)Server
Client端通過(guò)PyInstaller打包成可執(zhí)行文件
19. 以下哪些是編寫測(cè)試用例時(shí)的最佳實(shí)踐?
優(yōu)先使用OCR文字定位,坐標(biāo)點(diǎn)擊作為備選
斷言推薦使用 ocr_wait raise_error=False,比 sleep ocr_exists 更穩(wěn)定
圖片資源應(yīng)按模塊分目錄管理(如 images/登錄/)
Page方法建議使用英文命名以保持國(guó)際化
操作之間需要添加合理的等待時(shí)間
20. 關(guān)于Config.yaml配置文件,以下哪些說(shuō)法是正確的?
DefaultDevice需要配置為你要調(diào)試的設(shè)備SN
ws_ip_address是WebSocket服務(wù)器地址,一般不需要修改
AutomatedAccount用于配置測(cè)試用的登錄賬號(hào)密碼
修改Config.yaml后需要重啟Server才能生效
設(shè)備SN可以在自動(dòng)化客戶端界面上看到
關(guān)閉
更多問(wèn)卷
復(fù)制此問(wèn)卷