Python-自動化測試面試


1、以你做過的項目,舉例來說一下你的自動化測試是怎么做的?
參考答案:就拿簡歷上的ecshop項目來說吧,在編寫腳本前,我們會對系統進行評估,確認這個系統可不可以實現UI自動化,如果可以的話,就篩選出能實現自動化測試的用例,一般優先把冒煙測試用例的轉為成腳本。我們是用selenium工具來實現自動化,采用python腳本語言,基於unittest框架進行用例的編寫。比如,下單這個功能的腳本,我們是這樣做的:首先,我們會構建一個測試工程,測試工程包含public部分(這里封裝腳本公共的內容,比如,打開瀏覽器,登陸等操作),testCases(存放測試用例),reports(存放測試報告),runAllCases(用於運行項目自動化用例),腳本調試完后,我們會用jenkins持續集成工具(定時),設置腳本每天晚上8點跑一遍腳本,跑完后生成html格式的自動化測試報告。

自動化腳本失敗的原因:
1)、可能是測試環境的網絡不穩定;
2)、開發修改了代碼沒通知到測試人員修改腳本;
3)、開發引入了新的問題。

2、測試腳本用到了哪些技術?
參考答案:元素定位,表單切換,模塊調用,JS定位等等,腳本是基於python自帶的unittest單元測試框架,采用了模塊化方式編寫,把復用性高的操作封裝到公共模塊中,如果腳本需要用到對應的操作,直接調用就可以了,如果元素發生變化,只需要調整元素封裝的代碼就可以了,提高測試用例的可維護性。

xpath和CSS定位方式的區別:
1、語法不一樣;
2、CSS定位比較穩定。

3、腳本怎么組織的?(編寫自動化腳本,你的思路是什么?)
參考答案:構建測試套,測試套包含public部分(包括測試用例中公共的部分),testCases(存放測試用例),reports(存放測試報告),runAllCases(用於運行項目自動化用例),測試腳本使用的是python的unittest單元測試框架組織管理,將所有測試腳本通過單元測試框架組織起來運行,這樣做的好處是,維護起來方便,可以生成測試html格式的測試報告,報告包括:測試用例,通過數,失敗數。

4、自動化率多少?
參考答案:一般是30%到40%,這個沒有固定的,我們是優先將優先級高的測試用例,比如,冒煙測試的測試用例轉換成自動化腳本的,后面有時間的時候再不斷補充,能寫多少寫多少。

5、你們自動化腳本的通過率是多少?(注意這個題目的意思)
參考答案:這個說不准,如果沒有什么異常情況,自動化腳本都是100%運行通過;如果異常情況比較多,比如出現測試環境不穩定,或者開發修改了代碼沒通知到測試人員及時修改腳本,又或者開發引入了新的問題等等,自動化腳本通過率可能80%都不到。

6、用那個方法判斷元素是否顯示?
is_displayed()

7.你曾經都寫過多少自動化測試用例?
參考答案:這個具體沒有算過。但是只要有時間,模塊穩定的功能都會寫。就拿上個項目來說,自動化測試用例大概寫了將近有70-80條這樣子吧。

8、python3 的數據類型有哪些? (set集合 不重復的列表)
不可變數據(四個):int (整型)、float (浮點型)、str(字符串)、Tuple(元組)、Sets(集合);
可變數據(兩個):List(列表)、Dictionary(字典)。

9、unittest框架了解嗎?
參考答案:unittest框架,由setUp()--環境預置,testCase()--- 測試用例 tearDown()----環境恢復,三大部分組成,unittest框架可組織執行測試用例,並且提供豐富的斷言方法,判斷測試用例是否通過,最終生成測試結果。

10、怎樣用python連接mysql數據?
參考答案:我們之前主要是用python語言來寫web端的自動化測試腳本,沒有連過mysql數據庫,到時候工作需要的話,學一下很快就能上手了。

PS:確實沒接觸過的知識,先告訴人家,你確實沒做過,如果以后工作需要,你能夠很快學會。


11、用python做過接口測試自動化測試嗎?
參考答案:我們之前主要是用python語言來寫web端的自動化測試腳,接口是用Jmeter來做的,用python寫接口的腳本也在網上學習過,但是工作中沒用用過,到時候工作需要的話,再學一下應該沒問題。

12、元素定位失敗的原因?
1)、頁面的元素未加載完成
2)、元素的屬性值不唯一
3)、元素的屬性值是動態值
4)、元素在另外一個表單
5)、元素在另外一個頁面


13、自動化腳本,如何切換不同的瀏覽器?
參考答案:使用對應的瀏覽器驅動,然后在腳本中更換不同的瀏覽器。

14、你的python水平很一般啊?(遇到這種否定你的問題,一定不能虛!)
參考答案:我現在掌握的python知識,做ui層的自動化測試是可以的,代碼的封裝,調用這些都沒問題;我一般是會做,但不是很會用文字描述出來,我以注意到這點,現在也在加強提升自己的總結能力。
PS---重點強調:凡是遇到被面試官否定的,都要想辦法懟回去,輸也要輸得精彩些,但是,懟回去的時候,要注意語氣,要有禮有節,不卑不亢。

15、python怎么定義一個函數,怎么定義一個類?
def 函數名:函數體
class 類名:屬性,方法

16、有些元素,在谷歌瀏覽器上能定位,在火狐瀏覽器上定位失敗,是什么原因呢?
參考答案:因為不同瀏覽器的內核不一樣,他們的CSS樣式不一樣。


17、如何提高selenium腳本的執行速度?
參考答案:
1)、提高網速;
2)、少用sleep,多用隱式等待或顯式等待(強制)。

******************************************************************************************************
1、元素定位的方式有哪些?
id定位: find_element_by_id()
name定位: find_element_by_name()
class_name定位:find_element_by_class_name()
tag_name定位:find_element_by_tag_name()
link_text定位:find_element_by_link_text()
partial_link定位:find_element_by_partial_link_text()
xpath定位:find_element_by_xpath()
css_selector定位:find_element_by_css_selector()

2、如何切換iframe?
switch_to.frame()
switch_to.default_content()

3、如何切換窗口?
switch_to.window()

4、鼠標懸停的方法是什么?
shezhi=dr.find_element_by_link_text("設置")
ActionChains(dr).move_to_element(shezhi).perform()

5、如何定位下拉框?
sq=dr.find_element_by_name("sel_question")
Select(sq).select_by_value("motto")

6、如何獲取彈出警告框的text?
#獲取警告框的文本信息
t1=dr.switch_to.alert.text
print(t1)
#點擊確定
dr.switch_to.alert.accept()
#取消警告框
#dr.switch_to.alert.dismiss()

7、做自動化做了多久?
參考答案:一直都在做,通常只要有時間,模塊穩定的功能都會寫。斷斷續續的做了一年多了。

8、selenium的工作原理是什么?
參考答案:selenium的工作原理是什么:selenium工作原理涉及三個部份,分別是瀏覽器、驅動器、代碼; 代碼發送請求給驅動器,驅動器解析請求,並在瀏覽器上執行相應的操作把執行結果返回給代碼

9、什么樣的項目適合做自動化?
參考答案:項目周期長,版本多,界面元素穩定的項目。

10、selenium如何做兼容性測試?
參考答案:使用對應的瀏覽器驅動,然后在腳本中更換不同的瀏覽器。

11、為什么會生成HTML報告?
參考答案:使用了HTMLTestRunner第三方工具包來實現的

12、腳本運行出錯,應該怎樣定位,說出分析過程
生成報告,從報告中分析:網絡,開發修改,引入新的問題(從斷言中分析)
參考答案:運行結束之后我們會得到一個測試報告,我們根據測試報告先定位一下是腳本的原因還是程序的原因,一般來說腳本的原因在報告中都會顯示出哪一行代碼出錯了,如果是程序的原因通常來說都是斷言的問題。

13、如果系統有驗證碼,怎么做自動化?
參考答案:
1)、去掉驗證碼。
2)、設置萬能驗證碼。
3)、用python調用OCR模塊,自己寫代碼來識別。這種方法可以識別出簡單的驗證碼。
4)、調用第三方平台提供的接口進行識別。比如:斐斐打碼,尖叫數據這些平台接口。

14、setUp(),tearDown()和setUpClass(),tearDownClass()的區別?
參考答案:當測試用例有多個,setUp()和tearDown()就會被執行多次;不管測試用例有多少個,setUpClass()和tearDownClass()只會被執行一次(在全局的開關的情況,)。

16、python的第三方模塊/標准庫有哪些?
time
random
unittest
selenium
sys
HTMLTestRunner
datetime
需要導入的,自帶的不需

17、python的pass語句的作用是?
參考答案:占位符,當方法沒有內容時,防止出現語法錯誤。跳過,執行去下一個

18、自動化寫過哪些模塊的腳本?
參考答案:主要是把冒煙測試的用例轉化為腳本,比如,我這個xx商城系統,做自動化的模塊有后台的上架商品,訂單查詢,添加團購活動,促銷活動,前台的搜索商品,添加商品到購物車,下單等等。

19、常見的排序算法?
參考答案:冒泡排序、選擇排序、插入排序、希爾排序、快速排序、歸並排序等.

20、元素是動態變換的,如何定位?
參考答案:使用css或者xpath先定位到其上級不變的元素,然后再定位到該元素即可

21、隱藏元素是否可以操作?
參考答案:隱藏元素只能夠定位到,無法對其進行操作 如果想要對隱藏元素進行操作,我們需要使用js語句對其操作


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM