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


  • 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請求,請舉出一些報文的字段名,並解釋其意義

      原始格式:

      GET / HTTP/1.1

      Host: www.baidu.com

      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

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

      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 系統中?

       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM