中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python自動化測試面試題與答案有哪些

發布時間:2023-03-17 10:49:20 來源:億速云 閱讀:97 作者:iii 欄目:開發技術

本篇內容主要講解“python自動化測試面試題與答案有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“python自動化測試面試題與答案有哪些”吧!

1、什么項目適合做自動化測試?

關鍵字:不變的、重復的、規范的

1)任務測試明確,需求不會頻繁變動

2)項目周期要足夠長

3)自動化測試腳本可重復使用,比如:比較頻繁的回歸測試

4)被測軟件系統開發比較規范,能夠保證系統的可測試性

5)軟件系統界面穩定,變動少

6)項目進度壓力不太大

2、什么是 PO 模式?

是指把一個具體的頁面轉化為編程語言當中的一個對象,頁面特性轉化成對象屬性,頁面操作轉化為對象方法。

1)通俗來講把每個頁面當成一個對象,頁面層寫定位元素方法和頁面操作方法

2)用例層從頁面層調用操作方法,寫成用例

3)可以做到定位元素與腳本的分離

4)主要用來實現對頁面操作和測試邏輯的一個分離

3、PO 模式的封裝原則有哪些?

1)要封裝頁面中的功能或服務,比如點擊頁面元素,可以進入到新的頁面,則可為這個服務封裝方法"進入新頁面"

2)封裝細節,對外只提供方法名或者接口,盡量不要暴露頁面的內部

3)封裝的操作細節中不要使用斷言,把斷言放到單獨的模塊中,

4)點擊一個按鈕會開啟新的頁面,可以用return方法跳轉,比如return MainPage()表示跳轉到主頁

5)整個 PO 你不需要封裝整個頁面的行為,用到什么邏輯就封裝什么

6)一個動作可能產生不同結果,比如點擊按鈕后,可能成功,也可能失敗,為兩種結果封裝兩個方法:click_success和click_error

4、 Python 中 *args 和 **kwargs 的作用?

都是不定長參數,解決參數不固定問題。

args是非關鍵字參數,用于元組;kwargs是關鍵字參數 (字典)

也就是說args表示任何多個無名參數,然而kwags表示一個有著對應關系的關鍵字參數。

在使用的時候需要注意,*args要在**kwags之前,不然會發生語法錯誤。

5、Python 中的垃圾回收機制是什么?

垃圾回收機制(Garbage Collection),簡稱GC,是Python解釋器自帶的機制,專門用來進行垃圾回收。

在定義一個變量時,會申請內存空間,當該變量使用完畢,也應該釋放掉該變量所占用的內存空間,Python則由GC機制進行回收。

無論何種垃圾回收機制,一般都分為兩個階段:垃圾檢測和垃圾回收。

垃圾檢測,就是區分已分配內存中的“可回收”和“不可回收”內存。

垃圾回收,則是使操作系統重新掌握垃圾檢測階段所標識出來的可回收內存塊。

所謂垃圾回收,并不是直接把這塊內存的數據直接清空了,而是將使用權重新交給了操作系統,不會應用程序霸占了。

什么是垃圾

1)當一個變量調用完畢,且后續不再需要時,便是垃圾。

2)當指向該變量地址的變量名指向另一個地址時,原變量內存地址無法被訪問,此時該變量也是垃圾。

6、selenium中隱藏元素如何定位?

首先selenium是無法操作隱藏元素的(但是能正常定位到),本身這個框架就是設計如此,如果非要去操作隱藏元素,那就用js的方法去操作,selenium提供了一個入口可以執行js腳本。

python自動化測試面試題與答案有哪些

元素的屬性隱藏和顯示,主要是 type="hidden"和style="display: none;"屬性來控制的。

7、關閉瀏覽器中quit和close的區別

簡單來說,兩個都可以實現退出瀏覽器session功能。

close只會關閉瀏覽器,而quit關閉全部瀏覽器的同時,也會殺掉驅動進程

8、舉例一下你遇到過那些異常

  • ElementNotSelectableException :元素不能選擇異常

  • ElementNotVisibleException :元素不可見異常

  • NoSuchAttributeException :沒有這樣屬性異常

  • NoSuchElementException:沒有該元素異常

  • NoSuchFrameException :沒有該frame異常

  • TimeoutException : 超時異常

  • Element not visible at this point :在當前點元素不可見

9 、如何處理alert彈窗?

1)先用switch_to_alert()方法切換到alert彈出框上

2)可以用text方法獲取彈出的文本 信息

3)通過accept()點擊確認按鈕

4)通過dismiss()點擊取消按鈕,取消彈出框

5)通過text()獲得彈出窗口的文本

10、在selenium中如何處理多窗口?

句柄:窗口的唯一標識

1)先獲取當前窗口的句柄driver.current_window_handle

2)再獲取所有的的窗口句柄driver.window_handle

3)循環判斷是否是想要操作的窗口,如果是就可以對窗口進行操作;如果不是就使用driver.switch_to_window方法跳轉到新的窗口。

11、selenium中如何判斷元素是否存在?

Selenium中沒有提供原生的方法判斷元素是否存在,一般我們可以通過定位元素+異常捕獲的方式判斷。

python自動化測試面試題與答案有哪些

12、自動化中有哪三類等待?他們有什么特點?

1)線程等待(強制等待)如time.sleep(2):線程強制休眠2秒鐘,2秒過后,再執行后續的代碼。建議少用。

2)imlicitlyWait(隱式等待)會在指定的時間范圍內不斷的查找元素,直到找到元素或超時,特點是必須等待整個頁面加載完成。

3)WebDriverWait(顯式等待)通常是我們自定義的一個函數代碼,這段代碼用來等待某個元素加載完成,再繼續執行后續的代碼。

13、selenium中如何保證操作元素的成功率?也就是說如何保證點擊的元素一定是可以點擊的?

1)使用WebDriverWait()顯性等待,等待元素加載出來后,再進行元素操作。

2)盡量減少不必要的操作:可以直接訪問頁面的,不要通過點擊操作訪問

3)有些頁面加載時間過長,可以考慮中斷加載

4)開發人員規范開發習慣,如給頁面元素加上唯一的name、id等。

14、如何提高selenium腳本的執行速度?

1)使用顯性等待,減少強制等待或隱性等待的使用。

2)減少不必要的操作步驟。

3)如果頁面加載的內容過多,就設置超時時間,中斷頁面加載。

15、用例在運行過程中經常會出現不穩定的情況,也就是說這次可以通過,下次就沒辦法通過了,如何去提升用例的穩定性?

1)在經常檢測失敗的元素前盡量加上顯式等待時間,等要操作的元素出現之后再執行下面的操作。

2)多用 try 捕捉,處理異常

3)盡量使用測試專用環境,避免其他類型的測試同時進行,對數據造成干擾

16、你的自動化用例的執行策略是什么?

自動化測試用例的執行策略是要看自動化測試的目的,通常有如下幾種策略:

1)自動化測試用例是用來監控的,在此目的下,可以把自動化測試用例設置成定時執行的,如果每五分鐘或一個小時執行一次,在jenkins上創建一個定時任務即可。

2)必須回歸的用例。把測試用例設置成觸發式執行,在jenkins上將自動化測試任務綁定到開發的build任務上。當開發人員在仿真環境上部代碼的時候,自動化測試用例就會被觸發執行。

3)不需要經常執行的測試用例。像全量測試用例,沒必要一直回歸執行,有些非主要業務線也不需要時時回歸。這類測試用例采用人工執行,在jenkins創建一個任務,需要執行的時候人工去構建即可。

17、什么是持續集成?

持續集成是一種軟件開發實踐,即團隊開發成員經常將代碼集成到主干,也就意味著每天可能會發生多次集成。

它的好處主要有兩個:

1)快速發現錯誤。每完成一點更新,就集成到主干,可以快速發現錯誤,定位錯誤也比較容易。

2)防止分支大幅偏離主干。如果不是經常集成,主干又在不斷更新,會導致以后集成的難度變大,甚至難以集成。

目的:

持續集成的目的,就是讓產品可以快速迭代,同時還能保持高質量。它的核心措施是,代碼集成到主干之前,必須通過自動化測試。只要有一個測試用例失敗,就不能集成。

18、自動化測試的時候是不是需要連接數據庫做數據校驗?

接口測試需要,UI自動化不需要

19、有幾種元素常用定位方式,分別是?你最偏愛哪一種,為什么?

8 種,分別是:id、name、class name、tag name、link text、partial link text、xpath、css

我最常用的是 xpath(或 CssSelector)

因為很多情況下,html 標簽的屬性不夠規范,無法通過單一的屬性定位,這個時候就只能使用 xpath 可以去重實現定位唯一element

事實上定位最快的是Id,因為id是唯一的,然而大多數開發并沒有設置id。

20、如何去定位頁面上動態加載的元素?

屬性動態變化是指該 element 沒有固定的屬性值,所以只能通過相對位置定位比如通過 xpath 的軸,找到該元素的父節點或者子節點等方式

21、點擊鏈接以后,selenium是否會自動等待該頁面加載完畢?

不會的。

所以有的時候,當selenium并未加載完一個頁面時,去請求頁面資源,則會誤報不存在此元素。
所以首先我們應該考慮判斷,selenium是否加載完此頁面。其次再通過函數查找該元素。(使用顯示等待,等待頁面加載后再去操作元素)

22、webdriver client的原理是什么?

在selenium啟動以后,driver充當了服務器的角色,跟client和瀏覽器通信,client根據webdriver協議發送請求給driver。driver解析請求,并在瀏覽器上執行相應的操作,并把執行結果返回給client。

23、webdriver的協議是什么?

The WebDriver Wire Protocol

24、啟動瀏覽器的時候用到的是哪個webdriver協議?

http協議

25、怎樣去選擇一個下拉框中的value=xx的option?

1)select類里面提供的方法:select_by_value(“xxx”)
2)xpath的語法也可以定位到

26、Python 中常見的可變參數類型和不可變參數類型,都有哪些?

不可變的數據類型包括:整數、浮點數、負數、布爾值、字符串、元組

可變參數類型包括:字典、列表、集合

27、如何在定位元素后高亮元素(以調試為目的)?

重置元素屬性,給定位的元素加背景、邊框

28、什么是斷言?

assert,判斷測試結果與期望結果是否一致

目的為了表示與驗證軟件開發者預期的結果——當程序執行到斷言的位置時,對應的斷言應該為真。若斷言不為真時,程序會中止執行,并給出錯誤信息。

29/自動化測試過程中,你遇到了哪些問題,是如何解決的?

1)頻繁地變更頁面,經常要修改頁面對象類里面的代碼

2)自動化測試偶爾出現過誤報

3)自動化測試結果出現覆蓋的情況:Jenkins根據時間建立文件夾

4)自動化測試代碼維護比較麻煩

5)自動化測試進行數據庫對比數據

30、如何模擬瀏覽器的前進、后退、刷新操作

  • driver. navigate().forward() //前進

  • driver.navigate().back() //后退

  • driver.navigate0.efresh() //刷新

到此,相信大家對“python自動化測試面試題與答案有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

崇左市| 湖南省| 信宜市| 两当县| 民和| 丹凤县| 嘉兴市| 枣庄市| 德安县| 双辽市| 卢龙县| 郁南县| 沂南县| 阿勒泰市| 惠安县| 稻城县| 武川县| 县级市| 杭锦旗| 烟台市| 广宁县| 双桥区| 自贡市| 三台县| 洛扎县| 宾川县| 平塘县| 桃园县| 高邑县| 鲜城| 时尚| 开封县| 吕梁市| 武清区| 西青区| 米林县| 湾仔区| 海阳市| 邛崃市| 新源县| 嘉荫县|