背景:雖然測試行業在2019不太景氣,面試后的一些面試題歸集和總結,為了將來面試時使用。
所有的面試題中我發現超過90%都是基礎性的面試題,只要有自動化基礎,功能測試接觸,再加上面試的時候態度ok,且不卑不亢即可
切記,面試時一定要不卑不亢,切記心浮氣躁和心虛 ,你懂得!
一、以下是我面試的經驗所得
1、http與https有何區別
答案:
①https協議需要到ca申請證書,一般免費證書較少,因而需要一定費用。
②http是超文本傳輸協議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協議。
③http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。
④http的連接很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。
2、tcp/ip三次握手
①含義理解
TCP/IP協議不僅僅指的是TCP 和IP兩個協議,而是指一個由FTP、SMTP、TCP、UDP、IP等協議構成的協議簇, 只是因為在TCP/IP協議中TCP協議和IP協議最具代表性,所以被稱為TCP/IP協議。
②三次握手:
(1)客戶 端發送一個帶SYN標志的TCP報文到server。這是三次握手過程中的報文1。
(2) server端回應client的,這是三次握手中的第2個報文。這個報文同一時候帶ACK標志和SYN標志。
因此它表示對剛才clientSYN報文的回應。同一時候又標志SYN給client,詢問client是否准備好進行數據通 訊。
(3) 客戶必須再次回應服務段一個ACK報文,這是報文段3。
(4)連接終止協議(四次握手)
3、悲觀鎖和樂觀鎖
悲觀鎖:
悲觀鎖原理是每次獲取數據的時候,都會擔心自己數據被修改,所以每次獲取數據的時候都會進行加鎖,確保在自己使用的過程中數據不會被別人修改,使用完成后再進行數據解鎖。由於數據進行加鎖,期間對該數據進行讀寫的其他線程都會進行等待。在Java中,synchronized的思想也是悲觀鎖。(如:同一個數據庫表A用戶在操作時B用戶不能進行操作)
適合寫入較頻繁場景,如出現大量的讀取操作,每次讀取都會進行加鎖,這樣會增加大量的鎖的開銷,降低了系統的吞吐量。
樂觀鎖:
適合讀取操作比較頻繁的場景,如果出現大量的寫入操作,數據發生沖突的可能性就會增大,為了保證數據的一致性,應用層需要不斷的重新獲取數據,這樣會增加大量的查詢操作,降低了系統的吞吐量。
(如:A用戶操作一個表,B用戶同時操作這個表,樂觀鎖認為不會沖突,但實際會造成沖突)
4、左連接、右連接和全連接
左連接:左邊有的,右邊沒有的為null
右連接:左邊沒有的,右邊有的為null
內連接:顯示左邊右邊共有的
5、數據庫中sum和count的區別以及使用
一般面試會把sum與order by 分組一起使用
count:統計你查詢出來的數據記錄條數 :select count(*) from 學生表;
sum:求和 :select sum(chengji) from 學生表 where name='張三';
6、軟件測試流程
7、軟件測試方法有哪些?
黑盒、白盒、灰盒
8、jmeter中跟蹤重定向和自動重定向區別?
1)跟蹤重定向通俗的理解就是跟蹤請求執行的過程,並記錄一些信息給開發者看到,我們一般可以在結果日志和監控中看到
2)自動重定向是不用跟蹤請求執行過程,也不用記錄
9、數據庫中事物是什么?有哪些特性
10、軟件測試方案包含哪些內容
11、設計一個模塊測試用例
考察面試者的經驗、用例設計能力、思維、以及掌握的測試方法是否全面
從功能測試、接口測試、性能測試方面分析
12、自動化測試selenium 顯示等待和隱式等待
顯示等待就是有條件的等待
隱式等待就是無條件的等待
顯示等待:
# 設置等待時間
WebDriverWait(driver, 3, 0.5) #傳入三個參數,第一個是瀏覽器驅動,第二個是等待多少秒,第三個是每隔多少秒監控一次
原理:指定一個等待條件,和一個最長等待時間,程序會判斷在等待時間內條件是否滿足,如果滿足則返回,如果不滿足會繼續等待,超過時間就會拋出異常
隱士等待:
browser.implicitly_wait(10) #直接等待10秒鍾
當查找元素或元素並沒有立即出現的時候,隱式等待將等待一段時間再查找 DOM,默認的時間是0
13、pytest如何管理測試用例?
1)掌握案例規則,如以test_開頭,類以Test命名等
2)案例文件執行單個py如何執行,多個文件夾的管理方式
14、cookie、token、session的區別
點擊鏈接獲取答案:
15、軟件測試通過的標准是什么?
回答:
1、ISO90001-ISO90004標准
2、通過案例執行完成,bug驗收通過,完成功能測試、集成測試(等等)
16、列出安裝httpd的兩種方法
答案:
方式一:通過官網下載httpd-2.4.29.tar.gz 包進行安裝、配置,這種方式繁瑣,過程會報錯
方式二:通過命令yum install httpd安裝,此種方式簡單
更多參考轉載簡書:https://blog.csdn.net/qq_33440246/article/details/79436858
17、批量刪除 /home/test/dist 下的所有進程
taskkill是用來終止進程的
指定刪除:TASKKILL /F /IM
批量刪除:TASKKILL /F /IM dirname
18、查看虛擬機端口是否被占用
ps -ef|grep 8080 可以查看到8080在哪個地方被占用了
以上,持續更新中.....