<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>

          面試必備:接口自動(dòng)化測(cè)試精選面試干貨

          共 4063字,需瀏覽 9分鐘

           ·

          2021-07-27 11:33

          關(guān)注上方“測(cè)試開(kāi)發(fā)技術(shù)”,選擇星標(biāo),

          干貨技術(shù),第一時(shí)間送達(dá)!

          上課通知重磅消息 | 2021年最新全棧測(cè)試開(kāi)發(fā)技能實(shí)戰(zhàn)指南(第2期)


          請(qǐng)問(wèn)你是如何做接口測(cè)試的?


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

          第一步:分析出測(cè)試需求,并請(qǐng)開(kāi)發(fā)提供接口說(shuō)明文檔;
          第二步:從接口說(shuō)明文檔中整理出接口測(cè)試用例,里面要包括詳細(xì)的入?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;box-sizing: border-box !important;overflow-wrap: break-word !important;">(正常情況,異常情況包括輸入?yún)?shù)個(gè)數(shù),類(lèi)型,可選/必選,考慮參數(shù)有互斥或關(guān)聯(lián)的情況)
          和出參數(shù)據(jù)(符合接口文檔需求)以及明確的格式和檢查點(diǎn);
          第三步:與開(kāi)發(fā)一起對(duì)接口測(cè)試用例進(jìn)行評(píng)審;
          第四步:結(jié)合開(kāi)發(fā)庫(kù),準(zhǔn)備接口測(cè)試用例中的入?yún)?shù)據(jù)和出參數(shù)據(jù),并整理成Excel格式的文件;
          第五步:結(jié)合接口測(cè)試用例文檔和Excel格式的數(shù)據(jù)文檔,編寫(xiě)接口自動(dòng)化測(cè)試的業(yè)務(wù)邏輯代碼;
          第六步:開(kāi)始執(zhí)行接口自動(dòng)化測(cè)試用例;
          第七步:執(zhí)行如有bug,提交至缺陷管理平臺(tái);
          第八步:開(kāi)發(fā)修改完成后,回歸bug,跟蹤狀態(tài)
          第九步:完成后進(jìn)行自動(dòng)化持續(xù)集成;



          接口測(cè)試如何設(shè)計(jì)測(cè)試用例?


          主要從四個(gè)方面來(lái)設(shè)計(jì)接口用例:功能,業(yè)務(wù)邏輯,異常,安全。

          功能:是否符合需求

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

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

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

          業(yè)務(wù)邏輯:是否依賴(lài)業(yè)務(wù)

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

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

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

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

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

          2)數(shù)據(jù)異常:關(guān)鍵字?jǐn)?shù)據(jù),數(shù)據(jù)為空,長(zhǎng)度不一致,錯(cuò)誤數(shù)據(jù);

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

          安全測(cè)試用例設(shè)計(jì):

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

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


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


          接口的返回關(guān)鍵字段和字段值是需要校驗(yàn)的,不然接口測(cè)試就沒(méi)有意義了。
          一般有兩
          種方式:

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

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



          接口測(cè)試質(zhì)量評(píng)估標(biāo)準(zhǔn)是什么?

          一般來(lái)說(shuō),從以下八個(gè)方面評(píng)估:

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


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


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

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

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



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

          解決方法如下:

          • 使用單例模式;

          • 使用自定義緩存機(jī)制;

          • 使用測(cè)試框架中的 setup 機(jī)制;

          • pytest 中 fixture 機(jī)制;


            接口測(cè)試斷言從哪些方面去設(shè)計(jì)?

            接口測(cè)試斷言可以從以下五個(gè)方面進(jìn)行設(shè)計(jì):

            1)響應(yīng)碼:檢查響應(yīng)碼是否符合預(yù)期,用來(lái)判斷測(cè)試用例是否執(zhí)行成功(針對(duì)http接口);

            2)關(guān)鍵字:驗(yàn)證關(guān)鍵字是否符合預(yù)期,用來(lái)判斷測(cè)試用例是否執(zhí)行成功;

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

            4)數(shù)據(jù)庫(kù)匹配核對(duì):比如對(duì)查詢(xún)一個(gè)接口返回的數(shù)據(jù)進(jìn)行驗(yàn)證時(shí),可通過(guò)編寫(xiě)sql語(yǔ)句查詢(xún)結(jié)果,然后將sql語(yǔ)句執(zhí)行后數(shù)據(jù)庫(kù)返回的結(jié)果與接口返回的結(jié)果進(jìn)行核對(duì),以此來(lái)判定測(cè)試用例是否執(zhí)行成功;

            5)通過(guò)相關(guān)接口進(jìn)行輔助驗(yàn)證:比如,當(dāng)測(cè)試一個(gè)刪除接口時(shí),刪除一條記錄后,想驗(yàn)證這條記錄真的被刪除,可調(diào)用查詢(xún)接口,若刪除的記錄沒(méi)被查詢(xún)到,則說(shuō)明刪除這條記錄成功。




            依賴(lài)于第三方數(shù)據(jù)的接口如何進(jìn)行測(cè)試?


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

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

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

            3)性能測(cè)試中隔離B接口(第三方接口):在進(jìn)行壓測(cè)的時(shí)候就會(huì)遇到問(wèn)題。




            API測(cè)試有哪些優(yōu)勢(shì)?


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

            API測(cè)試具備如下優(yōu)勢(shì):

            • 更快及更高的測(cè)試覆蓋率。

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

            • API測(cè)試與語(yǔ)言無(wú)關(guān)。

            • API測(cè)試在測(cè)試核心功能方面非常有用。我們可以在沒(méi)有用戶(hù)界面的情況下測(cè)試API。在GUI測(cè)試中,我們需要等到應(yīng)用程序可用于測(cè)試核心功能。

            • API測(cè)試有助于我們降低風(fēng)險(xiǎn)。




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

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

            1)接口沒(méi)有任何響應(yīng)

            很多時(shí)候在做接口測(cè)試時(shí),會(huì)發(fā)現(xiàn)接口沒(méi)有任何返回,比如瀏覽器一直在轉(zhuǎn)圈,或者返回一個(gè)空白頁(yè)面。用接口測(cè)試工具時(shí),工具報(bào)錯(cuò),提示“no response”。

            排查思路:

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

            2. 檢查接口的端口號(hào)是否正確,可以通過(guò)在本機(jī)telnet接口的ip和端口號(hào),檢查端口是否能連通;

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

            4.檢查服務(wù)器防火墻是否關(guān)閉,如果因?yàn)榘踩蛘邫?quán)限問(wèn)題不能關(guān)閉,需要找運(yùn)維進(jìn)行策略配置,開(kāi)放對(duì)應(yīng)的ip和端口號(hào);

            5.檢查你的客戶(hù)端(瀏覽器/測(cè)試工具),是否設(shè)置了網(wǎng)絡(luò)代理,網(wǎng)絡(luò)代理可能會(huì)造成請(qǐng)求失敗;

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


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

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

            排查思路:

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

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

            403:禁止,常見(jiàn)的原因是用戶(hù)的賬號(hào)沒(méi)有對(duì)應(yīng)的url權(quán)限,還有就是項(xiàng)目所用的中間件,不允許遠(yuǎn)程訪問(wèn)(比如Apache);

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

            • url拼寫(xiě)錯(cuò)誤;

            • url后有空格;

            • 項(xiàng)目沒(méi)有啟動(dòng)成功;

            • 請(qǐng)求協(xié)議不對(duì),如http/https;

            405:方法不允許,常見(jiàn)的原因是請(qǐng)求方式不正確,比如GET類(lèi)型接口,使用POST方式去請(qǐng)求;

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

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

            502/503/504(Bad Gateway/錯(cuò)誤的網(wǎng)關(guān)、Service Unavailable/服務(wù)無(wú)法獲得、Gateway Timeout/網(wǎng)關(guān)超時(shí))。

            從以下兩種情況分析:

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

            • 如果并發(fā)壓測(cè)時(shí)出現(xiàn)此錯(cuò)誤,說(shuō)明是后端壓力太大,出現(xiàn)異常,此問(wèn)題一般是后端出現(xiàn)響應(yīng)時(shí)間過(guò)長(zhǎng)或者無(wú)響應(yīng)造成。


            PS:  最近由狂師老師授課主講的「全棧測(cè)試開(kāi)發(fā)技能訓(xùn)練營(yíng)」正在招生,課程內(nèi)容深入淺出非常值得推薦,課程大綱:重磅消息 | 2021年最新全棧測(cè)試開(kāi)發(fā)技能實(shí)戰(zhàn)指南(第2期)


            推薦閱讀
            重磅消息 | 2021年最新全棧測(cè)試開(kāi)發(fā)技能實(shí)戰(zhàn)指南(第2期)

            測(cè)試開(kāi)發(fā):推薦一款阿里最新 Python 自動(dòng)化開(kāi)源工具!

            測(cè)試開(kāi)發(fā)進(jìn)階:一文教你從0到1搞懂大數(shù)據(jù)測(cè)試!

            全新升級(jí) | 2021年全棧測(cè)試開(kāi)發(fā)實(shí)戰(zhàn)訓(xùn)練營(yíng)(第2期)


            END

            所有原創(chuàng)文章
            第一時(shí)間發(fā)布至此公眾號(hào)「測(cè)試開(kāi)發(fā)技術(shù)」

            長(zhǎng)按二維碼/微信掃碼  添加作者


            瀏覽 51
            點(diǎn)贊
            評(píng)論
            收藏
            分享

            手機(jī)掃一掃分享

            分享
            舉報(bào)
            評(píng)論
            圖片
            表情
            推薦
            點(diǎn)贊
            評(píng)論
            收藏
            分享

            手機(jī)掃一掃分享

            分享
            舉報(bào)
            <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>
                    999激情 | 人人射人人爱 | 91爱福利 | 久久精品电影无码 | 欧美大黑吊插老女人肛门 |