自動化工程師面試常見問題

  • Python相關的問題
    • 語法基礎知識,常見的數據類型、語句表達、異常處理等
    • 經常使用的模塊要熟悉,seleniumweb自動化框架、unittest單元測試模塊、appium模塊、HTMLTestRunner模塊、HTMLReport模塊、操做系統相關osplatform模塊、re模塊
    • 遇到其餘的模塊ini文件解析、csv文件讀取、Excel文件讀寫模塊(xlrd、xlwt等),若是不會,就必應搜索。
  • HTTP協議及其經常使用頭信息。
    • HTTP協議是一種超文本傳輸協議,處在OSI七層協議的應用層。是一種最經常使用的無狀態協議。
    • 主要涉及兩種動做GetPost,有什麼區別?
    • URL(網址)的地址格式是什麼?協議名稱、域名/ip、端口號、資源路徑、多個參數,用&符合鏈接
    • 訪問一個網址,會經歷什麼狀態轉換?輸入地址、域名解析、發送Get請求報文、等待、收取相應報文,考點包括Fiddler抓包、Httpwatch等抓包工具。
    • 域名解析DNS作什麼的?怎麼查?本地域名解析應該怎麼配置?配置C:\Windows\System32\drivers\etc\hosts文件

    • 你常用哪些工具查看HTTP報文?Chrome檢查、FiddlerHttpWatch(只支持ieFirefox)等工具。
    • 發送Get請求,請舉出一些報文的字段名,並解釋其意義

      原始格式: html

      GET / HTTP/1.1 android

      Host: www.baidu.com web

      Connection: keep-alive 面試

      User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36 算法

      Upgrade-Insecure-Requests: 1 sql

      Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 shell

      Accept-Encoding: gzip, deflate, br 數據庫

      Accept-Language: zh-CN,zh;q=0.9,en;q=0.8 瀏覽器

      Cookie: BAIDUID=2104300EC605A9E08EA32612A01F262F:FG=1; BIDUPSID=2104300EC605A9E08EA32612A01F262F; PSTM=1509085581; FP_UID=fa3fdfd3b09abd048258f11bda75d52b; BD_UPN=12314353; ispeed_lsm=20 安全

      整理之後,以下圖所示:

    • 解析Response響應報文,主要包括響應頭+響應體。請舉出一些響應頭字段。

    • 請列舉一些HTTP code(狀態碼),分別表明什麼意義?
  • 常見端口有哪些?
    • HTTP協議80HTTPS協議,443
    • ssh協議默認是22
    • Ftp協議默認是21
    • Oracle默認端口1521
    • MySQL默認端口3306
    • SQL Server默認端口1433
  • 接口測試如何批量造測試數據?(高頻)
    • 少許數據,用數據庫的存儲過程、SQL語句,適用於造的數據量比較小,(使用Excel作規劃)
    • (經常使用,有效)從生產環境導出之後作"脫敏"處理,再導入測試數據庫。
    • 使用JmeterJDBC Sampler,編寫SQL語句,使用函數助手生成隨機參數,設置迭代次數,執行。參考連接:使用Jmeter造數據 http://blog.csdn.net/benpaobagzb/article/details/48036905
    • 大量數據,編寫Python的腳本,生成一個sql的腳本,包括不少Insert into table_name (字段1) values (值1,); 用sql語句或者工具,導入文件便可。MySQL裏有load data infile *.sql文件
  • 列舉一個你印象中最深的bug。列舉你在作自動化過程當中遇到的問題,以及是怎麼解決的?
    • 印象中最深的bug,不表明是最難的,有多是最近的。
    • 低級錯誤。例如:配置文件配置錯誤、網絡iptables防火牆端口被封、打包不完整。
    • 高端的bug,例如:app耗電量比較高、內存使用比較高,內存泄漏、FPS手機流暢度,默認刷新頻率60/秒,20-30次/秒。

      參考連接: https://tech.meituan.com/Dianping_Shortvideo_Battery_TestCase.html

    • 重要的是把"奇怪問題"的排查思路、方法給出來,最後肯定出問題(發現重要的bug)。
    • 面試官考察的是,應聘者的解決問題的能力。
  • Postman 工具作接口測試,主要用於作接口的功能測試。
    • 接口測試的通常流程。肯定接口文檔:地址、輸入參數、輸出參數、錯誤參照碼、接口用途、示例。
    • 在沒有接口文檔的時候怎麼作接口測試?
      • 首先你要知道爲何必須須要接口文檔。
      • 若是沒有的話,就須要協助開發人員把文檔整理出來。
      • 對接口進行優先級處理,而且使用適當的工具進行測試。
  • Jmeter作接口測試或者壓力測試。
    • 你常常用的Jmeter元件有哪些?Jmeter元件的做用域是什麼?
    • 須要設置什麼類型的配置元件,設置cookies管理器、http頭信息等。
    • 設置項目結構,以及添加相應的Sampler(採樣器)
    • 添加斷言與監聽器,方便調試。
    • 分佈式環境的搭建(僞分佈式)
    • 命令行的使用並生成報告(jmeter3.1之後的版本)
    • 如何與持續集成相結合
  • Robot Framework作自動化項目
    • 搭建環境,一步一步搭建,平安、移動,環境部署是開發寫的一鍵部署包。
    • 優勢:適合技術功底比較弱、項目週期比較短、也須要快速自動化一批用例。
    • robot的項目目錄的組織結構,測試計劃、測試套件、測試用例的組織
    • 資源文件的組織,三層架構的組織模型。
    • 裏面會涉及到經常使用庫Selenium2LibraryDatabaseProcess等。
    • 這個項目裏寫了多少條測試用例,幾我的作的、用了多長時間,寫的是什麼類型的自動化。

      冒煙測試:打出包來,先用冒煙測試跑一邊。運行時間3~5分鐘,測試用例(不一樣邏輯)50條之內、編寫1~2周完成。

      專項測試:對某一部分的功能邏輯、用例深度比較大,須要人力2人,測試用例100條左右。場景會更加豐富,好比垃圾清理功能會準備不少種環境、app啓動時間的測試

      全功能測試:迴歸測試,耗費時間可能要40分鐘以上,測試用例數1000條以上,投入3~4人,週期3~4個月,主要完成全部測試用例的跑通,防止bug迴歸。

  • Python+Selenium+Unittest+HTMLReport作自動化項目
    • 項目間週期要足夠長>=8個月,人力安排3~4人、技術積累。
    • 後續的迭代很頻繁。重複性勞動比較多。
    • Python經常使用的數據結構有哪些?舉出一些例子來。
    • Python經常使用的模塊有哪些?舉例說明,怎麼安裝?pip在線安裝/離線安裝。發揮ddt在項目中應用,裝飾器(語法糖);讀Excel表格(xlrd)、csv文件到程序中、數據庫的鏈接等。
    • 寫一個Python的腳本,打印9*9乘法表,算法。【殺傷指數*****
    • 寫一個Python腳本,算法題
    • Selenium經常使用API,並不難
    • 異常處理,try … except …. 等等
    • web元素的定位、使用了哪些工具?Chrome檢查、Firefox查看元素/FirePath
    • 定位經常使用的方法?xpath必定要熟練掌握。如://*[@id='username and @name='yonghuming']
  • 單線程、多線程與多進程的區別
    • 線程和進程的區別,線程優缺點:線程是cpu調度的最小單元,調度成本很低、線程共享變量也更加方便,建立線程的成本很低。缺點是,多線程程序一旦一個線程出現問題,很容易影響其餘線程。
    • 進程優缺點:進程是資源調度的最小單元,進程裏至少包含一個線程,進程的獨立性比較好。缺點:進程的建立成本比較高,佔用資源也比較高、共享資源的時候不太方便。
  • Linux 查看CPU的使用狀況

    Top sar

    參考資料: http://jingyan.baidu.com/article/4d58d5412917cb9dd4e9c0ed.html

  • Linux命令相關
    • 用Linux命令操做另一臺服務器

      Xshell工具使用的是SSH協議,

      ssh root@192.168.2.37 鏈接

    • 從一臺Linux拷貝一個tar包到另一臺Linux機器上

      scp ping.log root@192.168.2.171:/root/rs.log

    • 如何查看進程監聽的端口?

      netstat -an | grep httpd

      ss

    • 如何查看進程的id,並殺死進程

      ps -ef | grep httpd

      Kill -9 pid

    • 可能會要求你編寫一些shell腳本(Linux命令有必定的語法規則等)
  • http與HTTPS的區別,加密的原理,怎麼用抓包工具去看數據
    • 區別:httpshttp+ssl)安全性更高、端口不同,443SSL加密
    • HTTPS的請求響應流程(SSL協議)

       

    • 使用抓包工具(如Fiddler)去檢查
    • 若是要測試你本身的網站,https的加密方式,須要導入網站的證書。

    參考連接:   http://www.jianshu.com/p/54dd21c50f21

  • tcp/ip協議族,三次握手、四次握手原理和區別

  • 數據庫裏索引的好處、如何建立、刪除索引?考察語法、以及索引的優點。

    建立/刪除索引的語法:

    CREATE INDEX 索引名稱 on GC_DFSS(no);

    DROP INDEX 索引名稱;

    建立索引的好處:

    • 幫助用戶提升查詢速度
    • 利用索引的惟一性來控制記錄的惟一性
    • 能夠加速表與表之間的鏈接
    • 下降查詢中分組和排序的時間

       

    建立索引的壞處:

    • 存儲索引佔用磁盤空間
    • 執行數據修改操做(INSERT、UPDATE、DELETE)增長索引維護成本

       

  • 存儲過程是怎麼寫的,考察語法規則

    ------------存儲過程定義開始-------------------

    CREATE OR REPLACE PROCEDURE sp_update_sal(name in varchar)

    --通知Oracle數據庫去建立一個名叫 sp_update_sal 的存儲過程,若是已經存在,就覆蓋

    IS

    -- is關鍵字代表後面跟隨的是一個 PL/SQL

    BEGIN

    -- begin關鍵字代表 PL/SQL 體的開始

    UPDATE emp SET sal = sal + 1 WHERE ename = name;

    COMMIT;

    END sp_update_sal;

    --end關鍵字代表 PL/SQL 體 結束

    ------------存儲過程定義結束-------------------

       

    select * from emp;

       

    ---存儲過程的執行,須要在命令窗口執行

    exec sp_update_sal('andy');

       

  • cookies、sessionid,token的原理和區別

    Cookies,指某些網站爲了辨別用戶身份,寫在客戶端瀏覽器的cookies裏,每次請求都會自動添加到Request Header裏。

    Session:進行session跟蹤而儲存在用戶本地終端上的數據(一般通過加密),服務器端也會存放session

    Token(相似於Appkey):是爲了替代用戶名、密碼在傳輸中不安全,而特定生成的一串字符。每次登陸後會動態生成一個token值,通常有效期30分鐘,超時之後會自動化再生成一個值。

  • HTTPHTTPS的區別
  • Adb命令大全

    https://blog.csdn.net/androidstar_cn/article/details/52782863

  • 簡述自動化測試框架

  • 簡述如何把自動化測試腳本集成到Jenkins 系統中?

相關文章
相關標籤/搜索