1、自動化測試怎么做?
參考答案:
自動化測試,是在手工測試之后進行的,是將手工測試用例轉化為自動化測試腳本,用于回歸測試。
首先,我們會對手工測試用例進行評估,一般選取正常場景的,復雜度不高,復用性高手工測試用例來轉化為腳本。我們是用selenium工具來實現自動化,采用python腳本語言,基于unittest框架實現。首先,我們會構建測試套,測試套包含public部分(包括測試用例中公共的部分),testCases(存放測試用例),reports(存放測試報告),runAllCases(用于運行項目自動化用例)等,腳本調試完后,我們會用jenkins持續(xù)集成工具,設置腳本每天晚上8點跑一遍腳本,跑完后生成html格式的自動化測試報告,并自動把測試結果以郵件的形式發(fā)送給指定的腳本負責人,相關人員第二天上班第一時間就要檢查測試報告中有沒有失敗的腳本,如果失敗,就定位一下腳本失敗的原因,(失敗的原因:1)、可能是測試環(huán)境不穩(wěn)定;2)、開發(fā)修改了代碼沒通知到測試人員修改腳本;3)、開發(fā)引入了新的問題),如果是腳本問題,就修改腳本,如果是系統(tǒng)的問題,就提交問題單給開發(fā)修改。
2、測試腳本用到了哪些技術?
參考答案:元素定位,表單切換,模塊調用,獲取指定文本信息等等,腳本是基于python自帶的unittest單元測試框架,采用了模塊化方式編寫,把復用性高的元素封裝到模塊中,如果腳本需要用到對應的元素,直接調用就可以了,減少了冗余代碼,如果元素發(fā)生變化,只需要調整元素封裝的代碼就可以了,提高測試用例的可維護性。
xpath和CSS定位方式的區(qū)別:
1、語法不一樣;
2、CSS定位比較穩(wěn)定。
3、腳本怎么組織的?
參考答案:構建測試套,測試套包含public部分(包括測試用例中公共的部分),testCases(存放測試用例),reports(存放測試報告),runAllCases(用于運行項目自動化用例),測試腳本使用的是python的unittest單元測試框架組織管理,將所有測試腳本通過單元測試框架組織起來運行,這樣做的好處是,維護起來方便,可以生成測試html格式的測試報告,報告包括:測試用例,通過數,失敗數。
4、自動化率多少?
一般是30%到40%
5、問:你們自動化腳本的通過率是多少?(注意這個題目的意思)
參考答案:這個說不準,如果沒有什么異常情況,自動化腳本都是100%運行通過;如果異常情況比較多,比如出現測試環(huán)境不穩(wěn)定,或者開發(fā)修改了代碼沒通知到測試人員及時修改腳本,又或者開發(fā)引入了新的問題等等,自動化腳本通過率可能80%都不到。
6、用那個方法判斷元素是否顯示
is_displayed()
7.你曾經都寫過多少自動化測試用例?
這個具體沒有算過。但是只要有時間,模塊穩(wěn)定的功能都會寫。就拿上個項目來說,自動化測試用例大概寫了將近有70-80條這樣子吧。
8、python3 的數據類型有哪些?
Number(數字)
String(字符串)
List(列表)
Tuple(元組)
Sets(集合)
Dictionary(字典)
不可變數據(四個):Number(數字)、String(字符串)、Tuple(元組)、Sets(集合);
可變數據(兩個):List(列表)、Dictionary(字典)。
9、面:unittest框架了解嗎?
參考答案:unittest框架,由setUp()--環(huán)境預置,testCase()--- 測試用例 tearDown()----環(huán)境恢復,三大部分組成,unittest框架可組織執(zhí)行測試用例,并且提供豐富的斷言方法,判斷測試用例是否通過,最終生成測試結果。
10、app自動化做過嗎?
參考答案:沒有做過,不過和web端自動化的測試思路差不多的,也要用到元素定位,unittest框架這些,使用appium工具,如果以后工作需要,我會利用工作之外的時間,買這方面的書或到網上找這方面的資料來學習。
11、怎樣用python連接mysql數據。
參考答案:我們之前主要是用python語言來寫web端的自動化測試腳本,沒有連過mysql數據庫,到時候工作需要的話,學一下很快就能上手了。
PS:確實沒接觸過的知識,先告訴人家,你確實沒做過,如果以后工作需要,你能夠很快學會。
12、用python做過接口自動化嗎?
參考答案:我們之前主要是用python語言來寫web端的自動化測試腳本,接口測試是用Jmeter來做的,用python寫接口的腳本也在網上學習過,但是工作中沒用用過,到時候工作需要的話,再學一下應該沒問題。
13、元素定位失敗的原因
1)、等待時間太短
2)、元素不唯一
3)、元素值是動態(tài)值
4)、元素在另外一個表單
5)、元素在另外一個頁面
6)、元素在前端是隱藏元素
面:怎么提高自動化測試用例的穩(wěn)定性
我:使用多種定位方式去定位,比如try… except,保證測試環(huán)境的獨立性,在一些失敗處增加等待時長sleep
面:你覺得自動化有什么缺陷
我:運行速度比較慢,實現成本高,需要一定的代碼能力才能維護
面:怎么去提升自動化腳本的運行速度
我:不要盲目增加一些sleep,用一些配置比較好的電腦或者使用一些更加支持自動化的瀏覽器,比如谷歌,火狐這些
面:模塊化編程有什么優(yōu)點
我:減少了一些冗余的代碼,讓測試更具有可讀性,提升了測試用例的可維護性
面:你自動化的執(zhí)行策略是什么
我:每次代碼有提交就執(zhí)行,然后使用持續(xù)集成工具每日定時執(zhí)行
面:什么樣的項目適合自動化
需求變動不頻繁,迭代周期長