您現在的位置是:首頁 > 手機遊戲首頁手機遊戲

軟體測試面試題:WEB+網路|介面測試|效能測試|自動化測試

簡介webdriver:定位和操作元素time:設定等待時間ActionChains:動作鏈,完成滑鼠的相關操作Keys:鍵盤的相關操作WebDriverWait:設定顯式等待Expect_Conditions:針對單個元素,設定顯式等待的場景

python怎麼輸出冒號

蓉華教育“軟體測試面試一指禪”第8期內容分享!

(WEB+網路|介面測試|效能測試|自動化測試)

一、WEB+網路

1. http程式碼表,常考題目

404:找不到資源

500:伺服器內部錯誤,無法完成請求。

501:伺服器不支援請求的功能,無法完成請求。

502:充當閘道器或代理的伺服器,從遠端伺服器接收到了一個無效的請求。

301:永久移動。請求的資源已被永久的移動到新URI,返回資訊會包括新的URI,瀏覽器會自動定向到新URI,今後任何新的請求都應使用新的URI代替。

302:臨時移動。與301類似。但資源只是臨時被移動,客戶端應繼續使用原有URI。

200:成功。

2. TCP/IP四層網路模型

鏈路層、網路層、傳輸層、應用層。

3. TCP/UDP區別?

TCP:

可靠傳輸協議,需要三次握手連線,有確認重傳機制,特點是可靠、準確、有擁塞控制,缺點就是比較慢,傳輸量比較小,適用於升級、下載;一句話:TCP是可靠的傳輸。

UDP:

不可靠傳輸協議,面向非連線的協議,優點是傳輸量大、速度快,缺點是已丟失、沒有擁塞控制,適用於直播、影片等。一句話:UDP是不可靠的傳輸。

4. html css js執行的先後順序是什麼?

介面載入的時候先載入html在載入css最後載入js

5. session和cookie的區別是什麼

1。 session存放在伺服器端用來校驗客戶端的身份

2。 cookie存放在客戶端,每次從客戶端往伺服器發請求時,將cookie帶到伺服器端,用來校驗客戶端的身份

二、介面測試

1. 怎麼用JMeter測試介面?

如果使用JMeter進行介面測試:

1) 測試前瞭解需求,根據介面規格說明書梳理業務;

2) 接下來設計用例,分析介面的入參和出參,分清楚有哪些有效輸入和無效輸入,設計用例(原則:用最少的用例覆蓋所有有效輸入,針對每一個無效的輸入設計一個測試用例,如果有錯誤碼沒有覆蓋到,還要對每個未覆蓋的錯誤碼分別設計一個用例);

3) 準備測試資料,比如:測試所需的賬號、密碼、key 等資訊;

4) 開啟JMeter,建立一個執行緒組,根據介面型別,填寫好對應的介面地址和請求方式等;

5) 引數化配置,新增配置元件CSV Data Set Config,定義變數,並準備CSV格式的資料,變數的引用用${變數名}的格式;

6) 新增斷言來判斷測試結果的正確性,用得最多的是響應斷言;

7) 新增監聽器,比如檢視結果樹,對測試結果進行監聽;

8) 執行測試用例;

9) 檢視監聽器結果,來判斷用例的執行是成功還是失敗,針對失敗的用例,分析其失敗原因;

10) 針對測試中發現的問題,給開發提單,直到問題最終解決。

11) 最後輸出測試報告。

2. 怎麼用Postman測試介面?

如果使用Postman測試介面:

其中1,2,3點相同,工具使用方面則比JMeter跟簡單,工具的主要的步驟是新增對應的請求、填寫主機URL及入參、新增測試套、執行測試套、分析結果出報告。

3. 在JMeter上如何把上一個請求的結果作為下一個請求的引數?

使用正則表示式提取器提取上一個請求的響應中的資訊,儲存一個引用名稱比如abc,在下一個請求的引數中,用${abc}的格式來引用提取的結果。

常用的正則表示式格式:(。+?),其中。表示匹配任意字串,+表示只匹配一次,?表示匹配到就停下來。

三、 效能測試

一般是我們功能測試完成最後兩三天時間測試效能。

1、先是分析需求計算出併發數,TPS,響應時間和 CPU,記憶體,硬碟和網路IO這些指標。

2、制定測試方案,主要包括環境,計劃和具體測試那些場景(如可靠性,併發,負載,壓力測試等)

3、根據場景用Badboy錄製指令碼,匯出為JMeter工具支援的指令碼。

4、用JMeter工具開啟指令碼,進行指令碼除錯,加一些斷言,監聽器,引數化等。

5、接下來執行效能測試,然後主要收集監聽器和收集伺服器CPU,記憶體,硬碟和網路IO等分析是否滿足需求,如果滿足就輸出效能測試報告。

6、如果指標不能滿足,反饋給開發進行調優。調優後繼續測試,一直到滿足需求後最終輸出測試報告。

四、自動化測試

1. Python怎麼定義一個函式?

你可以定義一個由自己想要功能的函式,以下是簡單的規則:

1) 函式程式碼塊以def關鍵詞開頭,後接函式識別符號名稱和圓括號()。

2) 任何傳入引數和自變數必須放在圓括號中間。圓括號之間可以用於定義引數。

3) 函式的第一行語句可以選擇性地使用文件字串—用於存放函式說明。

4) 函式內容以冒號起始,並且縮排

5) return[表示式]結束函式,選擇性地返回一個值給呼叫方。不帶表示式的return相當於返回None

2 Python切片

list1=[sa,fe,faw,ve,eta,t]

list1[2:5]

list1[2:]

list1[:]

list1[20:]

得到的是[ ]

3. Python上用過什麼庫/模組?

webdriver:定位和操作元素

time:設定等待時間

ActionChains:動作鏈,完成滑鼠的相關操作

Keys:鍵盤的相關操作

WebDriverWait:設定顯式等待

Expect_Conditions:針對單個元素,設定顯式等待的場景

PIL:截圖

Select:下拉選擇框的操作

unittest python:自帶的單元測試框架

HTMLTestRunner:執行指令碼,生成報告

ddt:實現資料驅動測試,行為和資料分離

4. 你做過自動化測試嗎?

我在上一份工作中,公司去年下半年也開始規劃做Web 自動化,採用Python作為開發語言,透過Selenium WebDriver定位和操作頁面元素,自動化框架用的是unittest。我主要負責寫測試指令碼。

假設一個測試團隊有5個人:1資深(測試經理)+2~3箇中級(自動化+手動)+1 個初級(手動)

5. 使用什麼工具進行的自動化測試

使用的工具是Selenium(Web自動化工具)

6. 用的什麼程式語言

用的Python

7. Selenium 用的是哪個版本的的?Python用的是哪個版本的?

用的是selenium 3。11。0和Python2。7。10

8. Selenium的工作原理?

1)對html元素定位

2)模擬對第一步定位到的元素進行點選、輸入、選擇等操作一句話:定位元素,操作元素。

9. 元素定位方法有哪些?

要點:8種定位方法

1) 根據元素的屬性值定位,比如 id、name、class、標籤名、連結文字和部分連結文字;

2) 根據CSS選擇器定位;

3) 根據 XPath 定位;

10. 子頁面裡的元素怎麼定位?

先切換到框架裡,然後再定位,用switch_to_frame函式根據子頁面id或name,切換到子頁面;定位完了如果要再定位主頁面的元素,要用switch_to_default_content 函式先返回主頁面。

11. 怎麼定位alert彈窗?或者這樣問:怎麼處理JS原生視窗?

要點:主要涉及點選彈窗確認按鈕、強行關閉彈窗、獲取彈窗中的文字等操作。

1) 點選彈窗的確定按鈕,用如下函式:

driver。switch_to_alert()。accept()

2) 強行關閉,點選右上角的叉叉,用如下函式:

driver。switch_to_alert()。dismiss()

3) 獲取彈窗裡的文字,用如下函式:

driver。switch_to_alert()。text

12. 怎麼執行自動化用例並生成測試報告?

以unittest為例,我通常的做法是把用例載入到測試套中,做成一個指令碼,在命令視窗下執行指令碼,報告的生成用第三方模組HTML TestRunner來生成。

13. 怎麼定位/操作圖片中的驗證碼?

用tesseract OCR引擎處理圖片中的驗證碼,步驟:

(1)對整個螢幕截圖,儲存成png格式的圖片;

(2)在擷取的圖片中定位驗證碼圖片的位置座標;

(3)根據座標對驗證碼截圖;

(4)在圖片中提取驗證碼,輸入到輸入框。

軟體測試面試題:WEB+網路|介面測試|效能測試|自動化測試

Top