1. 程式人生 > 其它 >BAT大廠都愛出的十道自動化測試面試題,看到就是賺到

BAT大廠都愛出的十道自動化測試面試題,看到就是賺到

技術標籤:面經軟體測試自動化測試面試程式人生經驗分享

前言

“面試造航母,工作擰螺絲。”
這句話在網際網路行業可以說是很真實了,但作為面試官來說,大都時候的一場面試,並不是主要面你需要的崗位,而是看你掌握的能力把你安排到缺少的崗位

因此初面的範疇都是很廣的,什麼演算法知識、工具掌握、語言基礎甚至些前端運維的知識都很常見

這裡就給大家舉例十個,在面試自動化測試的時候,所謂的大廠都愛出的面試題

我和一些朋友組建了一個公眾號自動化測試 資料大全,可以在公眾號內領取我的面試題資料,朋友們也收集了其他方面的自動化測試的資料等這大家來領取!!!
移動端可以點選這個這裡

在這裡插入圖片描述在這裡插入圖片描述

目錄

一.專案

上一個專案做的什麼、在專案中負責的什麼等類似的問題
如果是實習崗,便會問你最近在學些什麼,碰到過什麼問題
主要是和你交流簡歷上寫的經歷,會挑選你簡歷上的一些資訊進行詢問,並順著你的回答深入詢問。
這一步是為了篩選你的個人經歷的“厚度”和真實性,在簡歷上就要記得寫自己擅長的方面,有一些拿捏不住的經歷一定不要虛誇記錄

二.http和https的區別是什麼

這個問題會設計到前端問題,做一個自動化測試只有三種:UI自動化測試,介面自動化測試,效能自動化測試,而前端和介面密不可分,連http的報文都不能完全掌握,就沒必要把你往介面崗位輸送了

參考答案

HTTP 協議傳輸的資料都是未加密的,也就是明文的,因此使用 HTTP 協議傳輸隱
私資訊非常不安全,為了保證這些隱私資料能加密傳輸,於是網景公司 設計了SSL(Secure Sockets Layer)協議用於對 HTTP 協議傳輸的資料進行加密,從而就誕生了 HTTPS。簡單來說,HTTPS 協議是由 SSL+HTTP 協議構建的可進行加密傳輸、身份認證的網路協議,要比 http 協議安全。

HTTPS 和 HTTP 的區別主要如下:
總的來說: HTTPS=SSL+HTTP
1、https 協議需要到 ca 申請證書,一般免費證書較少,因而需要一定費用。
2、http 是超文字傳輸協議,資訊是明文傳輸,https 則是具有安全性的 ssl 加
密傳輸協議。
3、http 和 https 使用的是完全不同的連線方式,用的埠也不一樣,前者是 80,
後者是 443。
(這個只是預設埠不一樣,實際上埠是可以改的)
4、http 的連線很簡單,是無狀態的;HTTPS 協議是由 SSL+HTTP 協議構建的可進
行加密傳輸、身份認證的網路協議,比 http 協議安全。

HTTP 請求報文與響應報文格式
請求報文包含三部分:
a、請求行:包含請求方法、URI、HTTP 版本資訊
b、請求頭部(headers)欄位
c、請求內容實體(body)
響應報文包含三部分:
a、狀態行:包含 HTTP 版本、狀態碼、狀態碼的原因短語
b、響應頭部(headers)欄位
c、響應內容(body)實體

三.介面測試細節方面的面試題

不管你有無通過上一個問題,面試官趨於保守,會再問一個介面相關的問題,這個跡象可能會被看做是刻意刁難,但是要知道,誰也不願放過一個潛在的人才,多幾重問題才能確定一個人是否合適一個崗位

關乎介面測試細節方面的問題有很多,基本是考慮介面測試深度,以下問題由淺入深

1.json 和字典的區別?

對基礎資料型別的考察

2.測試的資料你放在哪?

資料與指令碼分離

3.引數化

資料驅動模式

4.下個介面請求引數依賴上個介面的返回資料

引數關聯

5.依賴於登入的介面如何處理

token 和 session 的管理

6.依賴第三方的介面如何處理

mock 模擬資料返回

7.不可逆的操作,如何處理,比如刪除一個訂單這種介面如何測試

造資料

8.介面產生的垃圾資料如何清理

資料清理

9.一個訂單的幾種狀態如何全部測到,如:未處理,處理中,處理失敗,處理成功

造資料,改資料庫訂單狀態

10.python 如何連線資料庫操作?

11.其它的就是執行出報告、程式碼管理(git)、執行策略和持續整合 jenkins相關了

以上系列問題的參考答案我放在公眾號自動化測試 資料小屋,公眾號內回覆【小家洛】即可進行領取

四.Linux指令

你常用的Linux指令有哪些?舉例幾個你用過的Linux指令,並說出他們的用處
Linux指令是一個我喜歡出的問題,因為通過Linux指令使用的熟練與否能看出一個人網際網路工作的年限,與是否有專業學習過計算機基礎
這裡拿出十個測試人員常用的linux指令與作用

  • ls 檢視目錄中的檔案
  • cd /home 進入 ‘/ home’ 目錄;cd … 返回上一級目錄;cd …/… 返回上兩級目錄
  • mkdir dir1 建立一個叫做 ‘dir1’ 的目錄
  • rmdir dir1 刪除一個叫做 ‘dir1’ 的目錄 (只能刪除空目錄)
  • rm -f file1 刪除一個叫做 ‘file1’ 的檔案’,-f 引數,忽略不存在的檔案,從不給出提示。
  • rm -rf /mulu 目錄下面檔案以及子目錄下檔案
  • cp /test1/file1 /test3/file2 如將/test1 目錄下的 file1 複製到
    /test3 目錄,並將檔名改為 file2
  • mv /test1/file1 /test3/file2 如將/test1 目錄下的 file1 移動到
    /test3 目錄,並將檔名改為 file2
  • mv * …/ Linux 當前目錄所有檔案移動到上一級目錄
  • ps -ef|grep xxx 顯示程序 pid

五.測試工具

你常用的測試工具?上個專案中你用過什麼測試工具?等類似工具的問題
其實一般會拿兩個工具讓你比較,說一下優劣
這類問題是一個表現的機會,一定要記得旁徵博引,將現有話題引到自己擅長的工具上面去

六.元素定位

怎麼確定一個頁面元素是否存在?常用的元素定位方法?

上面說過了,自動化測試只分UI自動化測試、介面自動化測試和效能自動化測試,元素定位就主要在UI自動化測試階段提問

參考答案:

方法一:用 try…except…

def is_element_exsist(driver, locator):
 '''
 判斷元素是否存在,存在返回 True,不存返回 False
 :param locator: locator 為元組型別,如("id", "yoyo")
 :return: bool 值,True or False
 '''
 try:
 driver.find_element(*locator)
 return True
 except Exception as msg:
 print("元素%s 找不到:%s" % (locator, msg))
 return False
if __name__ == '__main__':
 loc1 = ("id", "yoyo") # 元素 1
 print(is_element_exsist(driver, loc1))

方法二:結合 WebDriverWait 和 expected_conditions 判斷from selenium import webdriver

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
def is_element_exsist2(driver, locator):
 '''
 結合 WebDriverWait 和 expected_conditions 判斷元素是否存在,
 每間隔 1 秒判斷一次,30s 超時,存在返回 True,不存返回 False
 :param locator: locator 為元組型別,如("id", "yoyo")
 :return: bool 值,True or False
 '''
 try:
 WebDriverWait(driver, 30, 
1).until(EC.presence_of_element_located(locator))
 return True
 except:
 return False
if __name__ == '__main__':
 loc1 = ("id", "yoyo") # 元素 1
 print(is_element_exsist2(driver, loc1))

七.遇到過的問題

你的專案碰到過什麼問題?是如何解決的?
這也是個考驗型的問題,可以簡單地說說平常遇到過的坑,這個問題主要是用來看個人深度的

八.測試用例

水杯,電梯等都是經典測試用例面試題,還有問:說下常用的黑盒測試方法?什麼情況下用哪種?

自動化測試超脫與點點點,但是離不開點點點,雖說進入了技術的範疇,但是還是逃不開業務範圍

參考答案

  1. 功能
  • 水倒水杯容量的一半

  • 水倒規定的安全線

  • 水杯容量刻度與其他水杯一致

  • 蓋子擰緊水倒不出來

  • 燙手驗證

  1. 效能
  • 使用最大次數或時間

  • 掉地上不易損壞

  • 蓋子擰到什麼程度水倒不出來

  • 保溫時間長

  • 杯子的耐熱性

  • 杯子的耐寒性

  • 長時間放置水不會漏

  • 杯子上放置重物達到什麼程度杯子會被損壞

  1. 介面
  • 外觀完整、美觀

  • 大小與設計一樣(高、寬、容量、直徑)

  • 拿著舒服

  • 材質與設計一樣

  • 杯子上的圖案掉落

  • 圖案遇水溶解

  1. 安全
  • 杯子使用的材質毒或細菌的驗證

  • 高溫材質釋放毒性

  • 低溫材質釋放毒性

  1. 易用性
  • 倒水方便

  • 喝水方便

  • 攜帶方便

  • 使用簡單,容易操作

  • 防滑措施

  1. 相容性
  • 杯子能夠容納果汁、白水、酒精、汽油等。
  1. 震動測試
  • 杯子加包裝(有填充物),六面震動,檢查產品是否能應對鐵路/公路/航空運輸。
  1. 可移植性
  • 杯子在不同地方、溫度環境下都可以正常使用。

九.字串

手撕程式碼,必不可少,這個不多加贅述了,題目太多,堪稱題海

十.你還有什麼想問的嗎

這個問題估計在面試場景的出現率會有90%以上,面試是一個有來有回的過程,而不是單方面的詢問
我還是挺喜歡在這個環節有不少問題的人,即使他不會選擇我的公司
這裡提出幾個常見提問
1.貴公司目前的專案在做那個階段?
2.貴公司用的測試框架是什麼
3.入職以後我的主要職責在那個方面
4.您對我的這次面試有什麼評價嗎(這個很重要)

後話

以上這些面試題都是非常容易被面試官問到的,建議儲存,面試之前反覆觀看,最後祝願所有的面試者都能夠找到自己滿意的工作。