VOL 209

23
2021-02
今天距2022年311天
這是ITester軟體測試小棧第209次推文
本文2877字,閱讀約需7分鐘
Hello,大家好。春節過後,有的人盼望升職加薪,有的人立了新的Flag,有跳槽計劃的該提上日程了。為解大夥的燃眉之急,今天分享自動化面試題預熱一波,歡迎留言區補充評論✍️。
一
請描述一下自動化測試流程?
自動化測試流程一般可以分為以下七步:
- 編寫自動化測試計劃;
- 設計自動化測試用例;
- 編寫自動化測試架構和腳本;
- 調試并維護腳本;
- 無人值守測試;
- 後期腳本維護(添加用例、開發更新版本)。
二
自動化測試有誤報過bug嗎?産生誤報怎麼辦?
有誤報過,有時候自動化測試報告中顯示發現了bug,實際去通過手工測試去确認又不存在該bug。
誤報原因一般是:
- 元素定位不穩定,需要盡量提高腳本的穩定性;
- 開發更新了頁面但是測試沒有及時更新維護。
三
什麼是PO模式?
全稱:page object model 簡稱:POM/PO,PO模式最核心的思想是分層,實作松耦合,實作腳本重複使用及腳本易維護性。
PO模式主要分三層:
1.基礎層BasePage:封裝一些最基礎的selenium的原生的api方法,元素定位,架構跳轉等。
2.PO層:元素定位、獲得元素對象,頁面動作
3.測試用例層:業務邏輯,資料驅動。
三者的關系:PO層繼承基礎層,測試用例層調用PO層。
po模式和非po模式差別?
非PO模式 | PO模式 |
面向過程的線性腳本 | POM把頁面元素定位和業務操作流程分開,實作松耦合。 |
複用性差 | UI元素的改變不需要修改業務邏輯代碼。隻需要找到對應的PO頁修改定位即可,資料代碼分離。 |
維護性差 | PO能使我們的測試代碼提高代碼的可讀性,高複用性,可維護性。 |
四
怎麼對含有驗證碼的功能進行自動化測試?
對有驗證碼的功能子產品進行自動化測試,可以通過以下方式:
- 讓開發去掉驗證碼。未上線前,讓開發去掉驗證碼驗證,友善做自動化測試;
- 設定一個萬能的驗證碼。未上線前,讓開發生成固定的驗證碼,友善做自動化測試。
- 通過 cookie 繞過登入。
- 自動識别技術識别驗證碼。第一種是:OCR 自動識别技術,第二種是:通過第三方打碼平台的接口來識别。
五
如何提高腳本的穩定性?
提高腳本的穩定性,可以通過以下方式:
- 不要右鍵複制 xpath(絕對路徑很不穩定),自己寫相對路徑;
- 定位沒問題,第二個影響因素那就是等待了,sleep 等待盡量少用(影響執行時間);
- 定位元素方法重新封裝,結合 WebDriverWait 和 expected_conditions 判斷元素方法,自己封裝一套定位元素方法;
六
如果一個元素無法定位,你一般會考慮哪些方面的原因?
一個元素無法定位,可能的原因有:
- 頁面加載元素過慢,加等待時間;
- 頁面有frame架構頁,需要先跳轉入frame架構再定位;
- 可能該元素是動态元素,定位方式要優化,可以使用部分元素定位或通過父節點或兄弟節點定位;
- 可能識别了元素,但是不能操作,比如元素不可用,不可寫等。需要使用js先把前置的操作完成。
七
你的自動化用例的執行政策是什麼?
自動化用例的執行政策的含義:
- 自動化測試用例是用來監控的。內建到Jenkins,建立定時任務定時執行;
- 有些用例在産品上線前必須回歸。Jenkins上将任務綁定到開發的build任務上,觸發執行;
- 有些用例不需要經常執行。Jenkins建立一個任務,需要執行的時候人工建構即可。
八
編寫自動化用例的原則?
編寫自動化用例的原則包括以下幾個方面:
- 一個用例是一個完整的場景。
- 一個用例隻驗證一個功能點。
- 用例與用例之間盡量避免産生依賴。
- 一條用例完成測試之後需要對測試場景進行還原,以免影響其它用例的執行。
- 腳本編寫好了之後,需要反複執行,不斷調試,直到運作正常為止。腳本的編寫和命名要符合管理規範,以便統一管理和維護。
九
selenium工作原理?
Selenium的工作原理可以概括為以下5個方面:
- selenium client(Python等語言編寫的自動化測試腳本)初始化一個service服務,通過webdriver啟動浏覽器驅動程式chromedriver.exe;
- 通過RemoteWebDriver向浏覽器驅動程式發送HTTP請求,浏覽器驅動程式解析請求,打開浏覽器,并獲得sessionid,如果再對浏覽器操作需攜帶此sessionid;
- 打開浏覽器後,所有的selenium的操作(通路位址,查找元素)均通過RemoteConnection連結到remote server,然後使用execute方法調用request方法通過urlib3向remote server請求;
- 浏覽器通過請求的内容執行對應動作;
- 浏覽器再把執行的動作結果通過浏覽器驅動程式傳回給測試腳本。
十
你的自動化架構結構是怎麼樣的?
搭建的自動化測試架構采用分層設計模型架構,主要分為以下幾個子產品:
- common:一些基礎的底層方法類,例如:測試報告類、資料配置讀取類、日志類、封裝webdriver類、資料庫連接配接類、發送郵件類、公共方法類,隻要是我們想要實作的一些功能,可以把基礎方法的實作放在common檔案夾。
- config:配置檔案放在這裡,比如:賬号密碼、資料庫連接配接位址等。
- log:運作用例後,日志的存儲檔案夾。
- report:運作用例後,測試報告的存儲檔案夾。
- page:在POM設計模式下,關于具體UI頁面操作的方法。
- test_case:具體存放編寫的測試用例。
- run_all:用來批量運作測試用例。
以上That‘s all更多系列文章敬請期待