<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          接口自動化精選面試干貨,助你離Offer又近一步!

          共 3769字,需瀏覽 8分鐘

           ·

          2021-07-27 10:11

          只要技術過硬,準備充分,任何時候都是找工作的黃金時期。



          請問你是如何做接口測試的?


          大體來說,經(jīng)歷以下過程:接口需求調(diào)研、接口測試工具選擇、接口測試用例編寫、接口測試執(zhí)行、接口測試回歸、接口測試自動化持續(xù)集成。具體來說,接口測試流程分成以下步:

          第一步:分析出測試需求,并請開發(fā)提供接口說明文檔;
          第二步:從接口說明文檔中整理出接口測試用例,里面要包括詳細的入?yún)?span style="max-width: 100%;color: rgb(61, 70, 77);font-family: -apple-system, system-ui, 'Helvetica Neue', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei UI', 'Microsoft YaHei', Arial, sans-serif;letter-spacing: 0.12px;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important;">(正常情況,異常情況包括輸入?yún)?shù)個數(shù),類型,可選/必選,考慮參數(shù)有互斥或關聯(lián)的情況)
          和出參數(shù)據(jù)(符合接口文檔需求)以及明確的格式和檢查點;
          第三步:與開發(fā)一起對接口測試用例進行評審;
          第四步:結(jié)合開發(fā)庫,準備接口測試用例中的入?yún)?shù)據(jù)和出參數(shù)據(jù),并整理成Excel格式的文件;
          第五步:結(jié)合接口測試用例文檔和Excel格式的數(shù)據(jù)文檔,編寫接口自動化測試的業(yè)務邏輯代碼;
          第六步:開始執(zhí)行接口自動化測試用例;
          第七步:執(zhí)行如有bug,提交至缺陷管理平臺;
          第八步:開發(fā)修改完成后,回歸bug,跟蹤狀態(tài)
          第九步:完成后進行自動化持續(xù)集成;



          接口測試如何設計測試用例?


          主要從個方面來設計接口用例:功能,業(yè)務邏輯,異常,安全。

          功能:是否符合需求

          1)從用戶角度出發(fā)看接口能否實現(xiàn)業(yè)務需求,功能是否正常;

          2)功能是否按照接口文檔實現(xiàn);

          舉例:比如博客園添加隨筆,需要登錄才能添加。也就是業(yè)務要求不支持游客添加隨筆功能,如果設計一個沒有登錄的用戶,然后去測試添加隨筆接口,結(jié)果接口能添加到隨筆,說明功能不正常,不符合需求和接口文檔描述。

          業(yè)務邏輯:是否依賴業(yè)務

          1)接口實現(xiàn)邏輯;

          2)業(yè)務邏輯覆蓋(語句/條件/分支/判定/…);

          舉例:該接口調(diào)用之前,需要調(diào)用登錄接口,如果不登錄也能請求數(shù)據(jù),不符合業(yè)務邏輯。

          異常:參數(shù)異常和數(shù)據(jù)異常

          1)參數(shù)異常:關鍵字參數(shù),參數(shù)為空,多,少參數(shù),錯誤參數(shù);

          2)數(shù)據(jù)異常:關鍵字數(shù)據(jù),數(shù)據(jù)為空,長度不一致,錯誤數(shù)據(jù);

          舉例:不管數(shù)據(jù)異常還是參數(shù)異常,測試點差不多,一個參數(shù)有key和value,key表示參數(shù),value表示數(shù)據(jù)。第一,看看參數(shù)和數(shù)據(jù)能不能支持關鍵字,例如Java中的保留關鍵字等等;第二就是參數(shù)和數(shù)據(jù)都為空,看看是否做了判斷;第三,參數(shù)多和少,例如有兩個參數(shù)的接口,需要設計一個包含三個參數(shù)的用例,一個只有一個參數(shù)的用例。數(shù)據(jù)長度不一致,例如設計很長的字符串是否支持,因為數(shù)據(jù)庫創(chuàng)建表過程都設置好了每個字段的長度。輸入錯誤的參數(shù)和數(shù)據(jù),如故意輸錯單詞等等。

          安全測試用例設計:

          1)cookie:有cookie才能獲取數(shù)據(jù),如果不帶cookie還有信息返回,說明有問題;
          2)header:正常接口帶header信息,刪除header看是否能夠返回數(shù)據(jù);
          3)唯一識別碼:app手機識別碼,一般是唯一的;

          4)文本輸入框sql注入和xss攻擊。



          接口測試執(zhí)行中需要比對數(shù)據(jù)庫嗎?


          接口的返回關鍵字段和字段值是需要校驗的,不然接口測試就沒有意義了。
          一般有
          種方式:

          1)數(shù)據(jù)庫預置數(shù)據(jù),接口校驗返回; 

          2)接口調(diào)用,比對數(shù)據(jù)庫查詢結(jié)果。



          接口測試質(zhì)量評估標準是什么?

          一般來說,從以下個方面評估:

          1) 業(yè)務功能覆蓋是否完整;
          2) 業(yè)務規(guī)則覆蓋是否完整;
          3) 參數(shù)驗證是否達到要求(邊界、業(yè)務規(guī)則);
          4) 接口異常場景覆蓋是否完整;
          5) 接口覆蓋率是否達到要求;
          6) 代碼覆蓋率是否達到要求;
          7) 性能指標是否滿足要求;
          8) 安全指標是否滿足要求;


          接口產(chǎn)生的垃圾數(shù)據(jù)如何清理


          造數(shù)據(jù)和數(shù)據(jù)清理,需用Python連數(shù)據(jù)庫了,做增刪改查的操作測試用例前置操作。

          • setUp做數(shù)據(jù)準備后置操作;

          • tearDown做數(shù)據(jù)清理;



          其他接口要先獲取接口信息,如何讓登錄的接口只在其他接口調(diào)用一次?

          解決方法如下:

          • 使用單例模式;

          • 使用自定義緩存機制;

          • 使用測試框架中的 setup 機制;

          • pytest 中 fixture 機制;




          接口測試斷言從哪些方面去設計?

          接口測試斷言可以從以下個方面進行設計:

          1)響應碼:檢查響應碼是否符合預期,用來判斷測試用例是否執(zhí)行成功(針對http接口);

          2)關鍵字:驗證關鍵字是否符合預期,用來判斷測試用例是否執(zhí)行成功;

          3)正則匹配:當一個接口返回的內(nèi)容較多,并且有一定規(guī)律時,可通過正則表達式來校驗接口返回的信息來判定測試用例是否執(zhí)行成功;

          4)數(shù)據(jù)庫匹配核對:比如對查詢一個接口返回的數(shù)據(jù)進行驗證時,可通過編寫sql語句查詢結(jié)果,然后將sql語句執(zhí)行后數(shù)據(jù)庫返回的結(jié)果與接口返回的結(jié)果進行核對,以此來判定測試用例是否執(zhí)行成功;

          5)通過相關接口進行輔助驗證:比如,當測試一個刪除接口時,刪除一條記錄后,想驗證這條記錄真的被刪除,可調(diào)用查詢接口,若刪除的記錄沒被查詢到,則說明刪除這條記錄成功。




          依賴于第三方數(shù)據(jù)的接口如何進行測試?


          可以利用一些Mock工具(如:JSON Server、Easy Mock)來模擬第三方的數(shù)據(jù)返回,最大限度的降低對第三方數(shù)據(jù)接口的依賴。Mock服務是指在測試過程中對于某些復雜(或者不太好構造)的對象,用一個虛擬的對象替代它。如現(xiàn)在有A和B兩個接口, A需要調(diào)用接口B才能完成業(yè)務需求。這個時候B接口有如下三種情況:

          1)B接口還沒有開發(fā)完成:需要等待接口的數(shù)據(jù)來進行開發(fā),這時候完善的接口Mock服務能大大縮短開發(fā)聯(lián)調(diào)等待時間。

          2)B的某些場景很難去模擬:比如超時、未知錯誤或者不穩(wěn)定的第三方接口。

          3)性能測試中隔離B接口(第三方接口):在進行壓測的時候就會遇到問題。




          API測試有哪些優(yōu)勢?


          API是(Application Programming Interface),即應用程序編程接口。API是一組用于構建軟件應用程序的規(guī)程,協(xié)議和工具。API充當軟件應用程序之間的接口,并允許兩個軟件應用程序相互通信。API是一組軟件功能,可以由其他軟件執(zhí)行。API測試具備如下優(yōu)勢:

          • 更快及更高的測試覆蓋率。

          • API測試有助于我們降低測試成本。通過API測試,我們可以在GUI測試之前找到小錯誤。在GUI測試期間,這些小錯誤將變得更大。因此,在API測試中發(fā)現(xiàn)這些錯誤將對公司具有成本效益。

          • API測試與語言無關。

          • API測試在測試核心功能方面非常有用。我們可以在沒有用戶界面的情況下測試API。在GUI測試中,我們需要等到應用程序可用于測試核心功能。

          • API測試有助于我們降低風險。




          接口調(diào)不通,如何去排查?

          接口調(diào)不通的原因:

          1)接口沒有任何響應

          很多時候在做接口測試時,會發(fā)現(xiàn)接口沒有任何返回,比如瀏覽器一直在轉(zhuǎn)圈,或者返回一個空白頁面。用接口測試工具時,工具報錯,提示“no response”。

          ??排查思路:

          1.先檢查接口ip是否正確,可以通過在本機ping 接口的ip,檢查網(wǎng)絡是否通暢;

          2. 檢查接口的端口號是否正確,可以通過在本機telnet接口的ip和端口號,檢查端口是否能連通;

          3.檢查項目是否啟動或者部署成功,可以找研發(fā)確認,或者自己登錄到服務器上,通過ps命令檢查項目的進程是否存在,然后用tail命令查看部署日志;

          4.檢查服務器防火墻是否關閉,如果因為安全或者權限問題不能關閉,需要找運維進行策略配置,開放對應的ip和端口號;

          5.檢查你的客戶端(瀏覽器/測試工具),是否設置了網(wǎng)絡代理,網(wǎng)絡代理可能會造成請求失??;

          6.檢查操作系統(tǒng)的host文件,是否綁定了一個錯誤的ip映射;


          2)接口有響應但是返回了錯誤的狀態(tài)碼

          有些時候接口會返回一些錯誤的HTTP狀態(tài)碼,需要根據(jù)不同的狀態(tài)碼來確定具體的原因。

          ??排查思路:

          400:客戶端請求錯誤,比如請求參數(shù)格式錯誤(如json字符串不合法);

          401:未授權,比如在請求header里,缺乏必要的信息頭(如token、auth等字段);

          403:禁止,常見的原因是用戶的賬號沒有對應的url權限,還有就是項目所用的中間件,不允許遠程訪問(比如Apache);

          404:資源未找到,導致這種情況的原因很多,比如:

          • url拼寫錯誤;

          • url后有空格;

          • 項目沒有啟動成功;

          • 請求協(xié)議不對,如http/https;

          405:方法不允許,常見的原因是請求方式不正確,比如GET類型接口,使用POST方式去請求;

          415:不支持的媒體類型,常見原因是請求數(shù)據(jù)的類型和服務端支持的類型不匹配,比如json接口,需要添加一個信息頭Content-type:application/json;

          500:服務器內(nèi)部錯誤,出現(xiàn)這種情況,說明服務端內(nèi)部報錯了,需要登錄到服務器上,檢查錯誤日志,根據(jù)具體的提示信息再進行排查;

          502/503/504(Bad Gateway/錯誤的網(wǎng)關、Service Unavailable/服務無法獲得、Gateway Timeout/網(wǎng)關超時)。從以下兩種情況分析:

          • 如果單次調(diào)用接口就報該錯誤,說明是后端服務器配置有問題,或者服務不可用,掛掉了;

          • 如果并發(fā)壓測時出現(xiàn)此錯誤,說明是后端壓力太大,出現(xiàn)異常,此問題一般是后端出現(xiàn)響應時間過長或者無響應造成。


          end



          瀏覽 40
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  自拍视频在线网址 | 影音先锋家庭乱伦 | 亚洲一级二级片 | 国产一纹黄片 | 日韩AⅤ无码一区二区三区 |