一、請描述一下自動化測試流程?
自動化測試流程一般可以分為以下七步:
編寫自動化測試計劃;
設計自動化測試用例;
編寫自動化測試框架和腳本;
調試并維護腳本;
無人值守測試;
后期腳本維護(添加用例、開發更新版本)。
二、自動化測試有誤報過bug嗎?產生誤報怎么辦?
有誤報過,有時候自動化測試報告中顯示發現了bug,實際去通過手工測試去確認又不存在該bug。
誤報原因一般是:
元素定位不穩定,需要盡量提高腳本的穩定性;
開發更新了頁面但是測試沒有及時更新維護。
三、什么是PO模式?
全稱:page object model 簡稱:POM/PO,PO模式最核心的思想是分層,實現松耦合,實現腳本重復使用及腳本易維護性。
PO模式主要分三層:
1.基礎層BasePage:封裝一些最基礎的selenium的原生的api方法,元素定位,框架跳轉等。
2.PO層:元素定位、獲得元素對象,頁面動作
3.測試用例層:業務邏輯,數據驅動。
三者的關系:PO層繼承基礎層,測試用例層調用PO層。
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:用來批量運行測試用例。
最后感謝每一個認真閱讀我文章的人,禮尚往來總是要有的,這些資料,對于【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:
這些資料,對于【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴上萬個測試工程師們走過最艱難的路程,希望也能幫助到你!?