天天看點

金三銀四跳槽季,自動化面試題預熱一波

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更多系列文章敬請期待

金三銀四跳槽季,自動化面試題預熱一波
金三銀四跳槽季,自動化面試題預熱一波
金三銀四跳槽季,自動化面試題預熱一波

繼續閱讀