舉例說一下你的介面測驗是怎么做的?
我以下單這個介面說下吧:下單這個介面用的是http協議,使用post請求方式,發送給服務器的引數有token,產品ID,購買數量,識訓人地址等等,這些引數都是必傳的引數,我們是使用Jmeter來做介面測驗的,首先,要新建一個執行緒組,在執行緒組下面添加一個http的請求,然后填寫好服務器地址,介面路徑,請求方式,請求引數,由于下單的介面依賴于等于,所以我們會先呼叫登錄介面,從中獲取token值,在下單介面中使用${引數名}的方式參考,接下來還要對其他引數進行引數化,構造各種正常和例外的資料,我們先在本地創建一個txt檔案,把引數填寫到檔案里面,在Jmeter中添加一個csv檔案設定,填寫好txt檔案的路徑,然后在請求引數中使用Json提取器把token值關聯出來,然后在下單介面中使用${引數名}的方式參考;接下來添加斷言,檢查服務器回傳的結果和預期結果是不是一致的,最后,添加查看結果樹查看測驗結果,
JMeter測驗環境怎么搭建
-
因為JMeter是JAVA程式開發的,所以要先安裝JDK;
-
配置JAVA環境變數,包括:JAVA_HOME,PATH,CLASSPATH;
-
雙擊jmeter的bin目錄里面的jmeter.bat檔案,就可以啟動Jmeter,
什么時候會用到使用Fiddler
-
做安全測驗,檢測敏感資訊是否加密,攔截篡改資料;
-
當測驗時發現缺陷,用fiddler抓包,定位該問題是前端還是后臺的問題;
-
模擬弱網環境;
-
統計單個功能的回應時間,
Fiddler怎么攔截篡改資料
-
就拿下單來說吧,點擊下單之前,先啟動Fiddler,按F11打斷點,將請求攔截下來,
-
然后在fiddler中,對攔截下來的請求,修改其中的資料,比如將價格或者商品數量進行修改
- 修改完成后,關閉攔截,繼續請求的發送即可,
Fiddler怎么模擬弱網測驗
步驟:
-
點擊規則-->自定義規則,打開fiddler的腳本編輯器,找到simulateModem
-
設定上傳和下載的延時速度
-
點擊規則-->性能,選模擬帶寬
fiddler如何模擬2g/3G的網路
2G一般上行/下行速率約為:2.7、9.6kbs,模擬設定為:uploaded 約 2962 ms,downloaded 約 833 ms;(弱網一般指2G網路)
3G一般上行/下行速率約為:384、2560kbs,設定為:uploaded 約 2.6 ms,downloaded 約 0.39 ms;
Fiddler怎么抓HTTPS的包
步驟:
-
安裝安全證書;
-
點擊fiddler的Tools-->options-->https
-
勾選上所有選項,更換證書,重啟fiddler
Fiddler的抓包原理
在客戶端和服務器之間建立一個代理,通過監聽埠(默認是 8888),監聽本機發出的請求和服務器回傳的回應結果,
問:用jmeter做介面可以通過,但在手機上用到這介面時用不了,什么原因:
參考答案:抓包,查看從手機發出去的資料有沒有問題,
問:介面測驗的關注點(怎么驗證介面是通過的)
-
發送給服務器的請求資料是否正確;
-
服務器回傳給客戶端的資訊是否和預期結果一致;
-
進入資料庫,檢查介面是否實作的相應的功能;
-
介面的回應時間是否符合需求,
在進行介面的自動化測驗,如果遇到token校驗,你是怎么處理的?
首先需要獲取token,獲取token的整個思路為:
-
先進行登錄
-
登錄成功后
-
獲取token
-
把獲取的token當作下一個介面的請求引數
-
上面這個題目可以這樣延伸:有一個介面A,發送給服務器的資料需要從介面B中獲取,怎樣對A介面進行測驗?
參考答案:
-
在A介面前面添加介面B,在B介面中添加Json提取器,把A介面需要用到的資料關聯出來,保存到引數中;
-
在A介面中使用${引數名}的方式進行參考,
Jmeter的斷言怎么做?
參考答案:選中需要斷言的請求,右鍵,選擇回應斷言,在回應斷言輸入框中添加要斷言的值;如果這個介面有多個請求資料,針對每個請求資料服務器回傳資料都不一樣的,這時候,我們就要把斷言的值進行引數化,步驟是:現在本地添加一個txt檔案,把引數化的值寫入檔案里面,然后再在jmeter選中需要斷言的請求,右鍵,添加CSV檔案設定,把剛才編輯好的txt檔案添加進來,在回應斷言輸入框中使用${欄位名}的方式來參考引數的值,
介面自動化做了多久呢
參考答案:每個版本都會做介面測驗,開發寫好介面,我們拿到介面檔案之后,我們就開始做著,
jenkins怎么做介面自動化?
設定定時任務去跑腳本
介面回傳的資料格式有哪些?
JSON格式 和 文本格式,常用的是JSON格式
什么樣的介面,是個好的介面
功能準確無誤,回應速度快,支持多用戶并發操作,安全性好
面:介面出錯了怎么辦?
首先,我會先檢查一下請求引數啊,還有其他的填入的資料是否有問題,如果這些都沒問題,我會ping一下網路,看網路通不通,如果網路也沒問題的話,我會去看看系統服務器有沒有啟動,如果服務器也沒問題的話,那可能就要發給開發定位一下了,
你一個專案做過哪些介面?
-
每個版本都會新增一些功能,對應的介面也要進行測驗,一個專案的所有介面都要進行測驗,比如,查詢,下單,登陸,修改資訊等等,開發寫好一個介面后,給到我們介面檔案我們就會去測驗,
介面測驗用例怎么寫?
我們每個版本都會有四五個介面需求,有的是新增的介面,有的是原來的介面做了一些調整,我們會查看這些介面有哪些引數,每個引數有什么約束條件,加密方式是什么,正常和例外的回應資訊有哪些,然后撰寫測驗用例來覆寫這些需求,一個版本下來大概有五六十條接口測驗用例,
介面有哪些引數?
比方說:下單介面,會有token,產品ID,購買數量,識訓人地址,收件人電話等等;注冊介面,會有手機號,密碼,驗證碼這些引數;我們專案的介面有五六十個,每個介面實作的功能不一樣,引數是不一樣的,
介面的狀態碼有哪些
介面不一樣,回傳的狀態碼也不一樣,我們介面的狀態碼是由開發統一定義的,比如,我們xxx這個專案,修改昵稱這個介面,成功修改的狀態碼是0,30001表示token無效,30002表示用戶不存在,還有30003等一些其他的狀態碼,具體意思記不太清楚了,
介面是一個一個做,還是系統做?
我們是將這個系統的所有介面,都放在Jmeter的一個執行緒組下一起執行,
介面測驗遇到過什么問題,當時是怎么操作然后出現的問題,后來又是怎么分析處理的?
就比如最近做的這個專案,添加新商品這個介面,當庫存量的值為空,介面報錯了
原因是開發沒有設定當庫存量為空時,自動給一個0的默認值,導致后臺接收不到資料,
你支付功能,付款的介面是怎么測驗的呢?
付款的介面一般是由開發直接除錯的,像支付寶、微信這些第三方支付,開發會直接除錯好,
能說一下第三方支付介面的流程嗎
首先用戶下訂單,網站后臺就會生成一個支付請求發送到第三方支付平臺;支付平臺收到請求后會直接發送回應給用戶,展示金額等,并且要求用戶輸入賬號密碼,用戶輸入資訊直接發送到第三方平臺;付款成功后第三方平臺會回傳支付結果給到網站后臺和用戶;后臺收到付款成功資訊后就會生成付款成功的訂單資訊發給用戶;大概的流程就是這樣,
Fiddler怎么抓手機app的包?
-
手機與fiddler所在的電腦連接到同一網路;
-
在fiddler設定監聽埠,并允許遠程終端連接;
-
在手機上填寫代理服務器的地址和埠,
為什么要做介面測驗 / 介面測驗的目的
-
盡早介入測驗,早發現bug,降低修復成本
-
UI界面測驗無法發現底層問題
介面的加密如何處理
一般來說的話加密都是開發那邊會給到加密的檔案或者腳本給到我們,我們將引數進行加密后,然后再在Jmeter中填寫
Jmeter的腳本怎么在Jenkins上運行的.(run_Jmeter.py)
當時我們老大寫了一個run_jmeter的Python腳本用來執行,我們需要在里面設定好一些路徑,比如Jmeter的路徑,Jmeter的腳本和測驗報告的路徑,

上面是我收集的一些視頻和面試題資料,
對于軟體測驗的的朋友來說應該是最全面最完整的面試備戰倉庫,為了更好地整理每個模塊,我也參考了很多網上的優質博文和專案,力求不漏掉每一個知識點,很多朋友靠著這些內容進行復習,拿到了BATJ等大廠的offer,這個倉庫也已經幫助了很多的軟體測驗的學習者,希望也能幫助到你
關注我的微信公眾號【程式員二黑】免費獲取
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/273655.html
標籤:其他
下一篇:Java多執行緒-任務拒絕策略
