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切片
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)在圖片中提取驗證碼,輸入到輸入框。