一、如何把自動化測試在公司中實施并推廣起來的,?1.項目組調(diào)研選擇自動化工具并開會演示demo案例,,我們主要是演示selenium和robotframework兩種。 2.搭建自動化測試框架,,在項目中逐步開展自動化,。 3.把該項目的自動化流程、框架固化成文檔 4.推廣到公司的其它項目組應(yīng)用 二,、請描述一下自動化測試流程,?1.編寫自動化測試計劃 2.設(shè)計自動化測試用例 3.編寫自動化測試框架和腳本 4.調(diào)試并維護腳本 5.無人值守測試 6.后期腳本維護(添加用例、開發(fā)更新版本) 三,、自動化測試用例如何編寫,?以下答案二選一即可:1.用例是自動化測試工程師自己設(shè)計的,,一般剛開始已基本業(yè)務(wù)流程為主(登錄--完成一個業(yè)務(wù)--退出) 2.從系統(tǒng)測試用例中進行篩選或由業(yè)務(wù)工程師提供 四、上一個項目中自動化測試的執(zhí)行策略,?上一個項目中是定時執(zhí)行的,,設(shè)置的執(zhí)行時間是晚上12點,執(zhí)行完畢后會自動發(fā)送郵件通知 五,、自動化測試發(fā)現(xiàn)BUG多嗎,?不多,因為之前項目組是把已經(jīng)測試通過的基本功能再進行自動化腳本編寫和在后續(xù)版本執(zhí)行自動化測試,,它主要是保證已經(jīng)測試通過的功能在新版本更新后沒有問題,。 六、你覺得自動化測試的價值在哪里,?你們公司為什么要做自動化測試,?引用自動化測試之后,能代替大量繁瑣的回歸測試工作,,把業(yè)務(wù)測試人員解放出來,,既而讓業(yè)務(wù)測試人員把精力集中在復雜的業(yè)務(wù)功能模塊上,自動化測試一般是對穩(wěn)定下來的功能進行自動化,,保證不會因為產(chǎn)品的更新導致之前穩(wěn)定下來的功能出現(xiàn)BUG 七,、自動化測試有誤報過bug嗎?產(chǎn)生誤報怎么辦,?有誤報過,,有時候自動化測試報告中顯示發(fā)現(xiàn)了bug,實際去通過手工測試去確認又不存在該bug。 誤報原因一般是: 1.元素定位不穩(wěn)定,,需要盡量提高腳本的穩(wěn)定性,; 2.開發(fā)更新了頁面但是測試沒有及時更新維護! 八、自動化測試過程中,,你遇到了哪些問題,,是如何解決的?1.頻繁地變更頁面,,經(jīng)常要修改頁面對象類里面的代碼 2.自動化測試偶爾出現(xiàn)過誤報 3.自動化測試結(jié)果出現(xiàn)覆蓋的情況:Jenkins根據(jù)時間建立文件夾 4.自動化測試代碼維護比較麻煩 5.自動化測試進行數(shù)據(jù)庫對比數(shù)據(jù) 九,、在上一家公司做自動化測試用的什么框架?可以說出以下自己擅長的一種: 1.python+selenium+unittest+htmltestrunner 2.python+selenium+pytest+allure 3. robotframework+Selenium2Library 十,、你們自動化團隊有自己的群嗎,?當然有:我們使用的群號是:695458161 有很多軟件測試和自動化大神解決項目中的問題,還會不定時的發(fā)放免費資料,。 十一.在selenium自動化測試中,,你一般完成什么類型的測試?自動化覆蓋率,?主要是冒煙測試和回歸測試,?;貧w測試主要寫一些功能穩(wěn)定的場景,通過自動化手段去實現(xiàn),,節(jié)約測試時間,。因為自動化測試用例也是在不斷的更新和迭代,沒有刻意去統(tǒng)計,,大概在30%-40%左右,! 十二.在執(zhí)行腳本過程,如何實現(xiàn)當前元素高亮顯示,?這個其實就是利用javaScript去修改當前元素的邊框樣式來到達高亮顯示的效果,, 十三、如果一個元素無法定位,,你一般會考慮哪些方面的原因,?1.頁面加載元素過慢,加等待時間 2.頁面有frame框架頁,,需要先跳轉(zhuǎn)入frame框架再定位 3.可能該元素是動態(tài)元素,,定位方式要優(yōu)化,可以使用部分元素定位或通過父節(jié)點或兄弟節(jié)點定位,。 4.可能識別了元素,但是不能操作,,比如元素不可用,,不可寫等。需要使用js先把前置的操作完成,, 十四,、元素定位方法你熟悉的有哪些?id name classname link_text css xpath 十五,、遇到frame框架頁面怎么處理,?先用driver.switch_to.frame()跳轉(zhuǎn)進去frame, 然后再操作頁面元素,, 操作完后使用driver.swith_to.default_content()跳轉(zhuǎn)出來 十六,、遇到alert彈出窗如何處理?使用driver.switch_to.alert方法先跳轉(zhuǎn)到alert彈出窗口 然后再通過accept點擊確定按鈕,,通過dismiss點擊取消難,,通過text()獲得彈出窗口的文本。 十七,、如何處理多窗口,?這個多窗口之間跳轉(zhuǎn)處理,我們在項目中也經(jīng)常遇到,。就是,,當你點擊一個鏈接,,這個鏈接會在一個新的tab打開,然后你接下來要在新tab打開的頁面查找元素,, 1.我們在點擊鏈接前使用driver.current_window_handle獲得當前窗口句柄,。 2.再點擊鏈接。點擊后通過driver.window_handles獲得所有窗口的句柄,, 3.然后再循環(huán)找到新窗口的句柄,,然后再通過driver.switch_to.window()方法跳轉(zhuǎn)到新的窗口。 十八,、怎么驗證元素是enable/disabled/checked狀態(tài),?定位元素后:分別通過isEnabled(),isSelected(),,isDisplayed()三個方法進行判斷,。 十九、 如何處理下拉菜單,?在Selenium中有一個叫Select的類,,這個類支持對下拉菜單進行操作。使用方法如下: 1.定位元素 2.把定位的元素轉(zhuǎn)化成Select對象,。 sel = Select(定位的元素對象) 3.通過下標或者值或者文本選中下拉框,。 二十、 在日歷這種web 表單你是如何處理的?首先要分析當前網(wǎng)頁試用日歷插件的前端代碼,,看看能不能通過元素定位,,點擊日期實現(xiàn),如果不能,,可能需要借助javascript,。還有些日歷控件一個文本輸入框,可以直接sendKeys()方法來實現(xiàn)傳入一個時間的數(shù)據(jù),。 二十一,、舉例一下說明一下你遇到過那些異常常見的selenium異常有這些: NoSuchElementException:沒有該元素異常 ElementNotVisibleException :元素不可見異常 二十二、關(guān)閉瀏覽器中quit和close的區(qū)別簡單來說,,兩個都可以實現(xiàn)退出瀏覽器session功能,,close是關(guān)閉你當前聚焦的tab頁面,而quit是關(guān)閉全部瀏覽器tab頁面,,并退出瀏覽器session,。知道這兩個區(qū)別,我們就知道quit一般用在結(jié)束測試之前的操作,,close用在執(zhí)行用例過程中關(guān)閉某一個頁面的操作,。 二十三、在Selenium中如何實現(xiàn)截圖,如何實現(xiàn)用例執(zhí)行失敗才截圖在Selenium中提供了一個get_screenshot_as_file()的方法來截圖的,,一般結(jié)合try/except捕獲異常時使用,,進行錯誤截圖。 二十四,、如何實現(xiàn)文件上傳,?定位元素后,直接使用send_keys()方法設(shè)置就行,,參數(shù)為需要上傳的文件的路徑,。 二十五、自動化中有哪三類等待,?他們有什么特點,?1.線程等待(強制等待)如time.sleep(2):線程強制休眠2秒鐘,2秒過后,,再執(zhí)行后續(xù)的代碼,。建議少用。 2.imlicitlyWait(隱式等待)會在指定的時間范圍內(nèi)不斷的查找元素,,直到找到元素或超時,,特點是必須等待整個頁面加載完成。 3.WebDriverWait(顯式等待)通常是我們自定義的一個函數(shù)代碼,,這段代碼用來等待某個元素加載完成,,再繼續(xù)執(zhí)行后續(xù)的代碼 二十六、你寫的測試腳本能在不同瀏覽器上運行嗎當然可以,,我寫的用例可以在在IE,,火狐和谷歌這三種瀏覽器上運行。實現(xiàn)的思路是封裝一個方法,,分別傳入一個瀏覽器的字符串,如果傳入IE就使用IE,,如果傳入FireFox就使用FireFox,,如果傳入Chrome就使用Chrome瀏覽器,并且使用什么瀏覽器可以在總的ini配置文件中進行配置,。需要注意的是每個瀏覽器使用的驅(qū)動不一樣,。 二十七、什么是PO模式,,為什么要使用它PO是Page Object 模式的簡稱,,它是一種設(shè)計思想,意思是,,把一個頁面,,當做一個對象,頁面的元素和元素之間操作方法就是頁面對象的屬性和行為,PO模式一般使用三層架構(gòu),,分別為:基礎(chǔ)封裝層BasePage,,PO頁面對象層,TestCase測試用例層,。 二十八,、你會封裝自動化測試框架嗎?這個問得最多,,甚至有很多公司直接卸載招聘要求中 當然可以,,自動化框架主要的核心框架就是分層+PO模式:分別為:基礎(chǔ)封裝層BasePage,PO頁面對象層,,TestCase測試用例層,。然后再加上日志處理模塊,ini配置文件讀取模塊,,unittest+ddt數(shù)據(jù)驅(qū)動模塊,,jenkins持續(xù)集成模式組成。 二十九,、你們測試團隊如何提升自己的測試技能,?我們有自己的軟件測試技術(shù)群:695458161:如果有任何軟件測試方面的疑問,關(guān)于軟件測試,、接口測試,、自動化測試、性能測試,、面試經(jīng)驗等都可以在群里解決,,群里有同行大神一起交流技術(shù)。共同進步,,一起成長,! 作者:諸葛 出處:http://bbzoh.cn/showweb/0/0/906934354.aspx 原創(chuàng)不易,歡迎轉(zhuǎn)載,,但未經(jīng)作者同意請保留此段聲明,,并在文章頁面明顯位置給出原文鏈接。 |
|