最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

接口測試指南

2023-05-30 08:46 作者:叫我大叼哥  | 我要投稿

1.?接口測試的目的

l?相較手工測試的方式,提升測試效率和質(zhì)量,縮短測試周期 ??

l?更早的發(fā)現(xiàn)問題 ,減少終端問題

l?發(fā)現(xiàn)前端無法測試到的更底層的問題

?

2.?接口測試類型

l?功能測試功能性的業(yè)務(wù)邏輯檢查和參數(shù)檢查

l?異常處理測試:對異常輸入/邏輯的檢查

l?兼容性測試輸入條件的各種組合和制約的關(guān)系進行檢查

l?接口文檔測試:對接口文檔規(guī)范的檢查,通常接口文檔應(yīng)該包含以下幾個部分的信息:請求方式、請求參數(shù)、返回參數(shù)以及描述信息

?

1:前端各個列表頁,統(tǒng)一使get接口,分頁展示,不滿足規(guī)范的接口就 需要整改

中臺獲取角色列表的接口/roles/getRoleList構(gòu)造是合理的,但需要對name 參數(shù)做解釋:

請求網(wǎng)址:

http://192.168.2.11:8086/api/v1/api/roles/getRoleList?pageNum=4 &pageSize=20&name=

反之業(yè)務(wù)端接口獲取新品開發(fā)接口/pdDeve/query構(gòu)造就是不合理的

請求網(wǎng)址:

http://192.168.2.11:8084/api/v1/pdDeve/query

請求方法:

POST


例2:新品開發(fā)-采購組長審批接口/pddvlp/pddvlp/purchaserApprove,接 口同時支持審批通過和不通過,所需要的參數(shù)各不相同。

不通過參數(shù):

dvlpId: 63

reason: "XXXXXX"

state: 0

在參數(shù)描述中則需要對所有參數(shù)都做說明:


l?安全測試:滿足OWASP TOP10的安全要求,列如失效的對象級別授權(quán)、失效的用戶身份驗證、SQL注入等

l?性能測試:1.關(guān)注于接口指標(biāo)的測試,如響應(yīng)時間、吞吐量?2.壓力測試

3.?接口測試用例設(shè)計方法

可以從輸入接口處理和輸出三方面考慮:?

針對輸入,可根據(jù)參數(shù)類型進行測試用例設(shè)計;?

常見的參數(shù)類型有:數(shù)字、字符串、數(shù)組、布爾值等。

針對數(shù)字

等價類?

取值范圍內(nèi)、取值范圍外

邊界值?

取值范圍邊界:邊界值最大、最小、最大+1、最小-1

數(shù)據(jù)類型邊界:數(shù)據(jù)類型的最大值、最小值等

特殊值?

0、負(fù)數(shù)、空

遍歷法?

對取值范圍內(nèi)的所有值進行遍歷

針對字符串類型:

長度?

等價類:取值范圍內(nèi)、取值范圍外

邊界值:規(guī)定范圍邊界

特殊值:空格、空字符串

內(nèi)容?

特定類型:中文、英文、大小寫等

特殊字符:!@#¥%?&等

敏感字:英語法西斯

針對數(shù)組:

數(shù)組成員個數(shù)

等價類:取值范圍內(nèi)、取值范圍外

邊界值:規(guī)定范圍邊界

數(shù)組成員內(nèi)容

等價類:合法和非法成員

重復(fù)值:重復(fù)的成員

例:新品詳情-詳情回顯(采購發(fā)起)接口 /pddvlp/pddvlppurchaser/queryDvlpDetailsByPurchaser

參數(shù)只需要一個ID

則首先參數(shù)類型應(yīng)該為int型更佳

其次考慮測試參數(shù)值:

對應(yīng)token賬號的ID

其他賬號的ID

被刪除賬號的ID

0值,空,負(fù)數(shù)值,超大值,字符串類型值等

異常值不能統(tǒng)一報錯:

針對接口處理,可按照邏輯進行測試用例設(shè)計;

針對業(yè)務(wù)邏輯:

約束條件:數(shù)值限制、狀態(tài)限制、權(quán)限限制等

操作對象:檢查是否能獲取、編輯其他用戶的數(shù)據(jù)

狀態(tài)轉(zhuǎn)換:檢查對象狀態(tài)的轉(zhuǎn)換,狀態(tài)改變后是否還可以繼續(xù)之前的操

時序分析:業(yè)務(wù)包含了多個接口,而這一系列接口通常需要按照指定的 順序來進行

針對輸出,可根據(jù)結(jié)果進行測試用例設(shè)計;

:新品開發(fā)獲取產(chǎn)品類型的get接口/newProduct/list返回:

很明顯json的結(jié)構(gòu)并不統(tǒng)一,且字段children意義不明

接口用例設(shè)計多考慮以下幾點:

1.?是否滿足前提條件:有的接口需要首先滿足一定條件,才可成功獲取數(shù)據(jù),例如需要token

2.?是否攜帶默認(rèn)值參數(shù):存在默認(rèn)值的參數(shù)都不填寫、不傳參,必填參數(shù)都填寫正確并且存在正確的常規(guī)值。

3.?業(yè)務(wù)邏輯、功能需求:根據(jù)具體的業(yè)務(wù)需求設(shè)計用例

4.?參數(shù)是否必填:針對每個必填參數(shù)設(shè)計用例

5.?參數(shù)之間是否存在關(guān)聯(lián)

6.?參數(shù)數(shù)據(jù)類型限制

7.?參數(shù)自身的數(shù)據(jù)范圍值限制校驗

4.?接口測試流程

① 確定測試目標(biāo)和范圍:

確定要測試的接口和功能。

確定測試的重點和優(yōu)先級。

確定測試環(huán)境和配置。

② 收集接口信息:

獲取接口文檔、API規(guī)范或Swagger文檔等。

確定接口的請求方式、請求參數(shù)、返回參數(shù)以及描述信息。

確定接口的身份驗證和授權(quán)方式。

③ 設(shè)計測試用例:

根據(jù)接口規(guī)范和功能需求編寫測試用例。

參照用例設(shè)計方法,確保測試用例全面覆蓋接口的正常、異常輸入和邊界條件。

④ 配置測試環(huán)境:

配置測試環(huán)境,包括服務(wù)器、數(shù)據(jù)庫和必要的測試數(shù)據(jù)。

確保測試環(huán)境的穩(wěn)定性和一致性。

⑤ 執(zhí)行接口測試:

使用接口測試工具或通過編程語言編寫測試腳本執(zhí)行接口用例并記錄測試結(jié)果。

⑥ 處理測試結(jié)果:

對失敗的測試用例進行分析,提交缺陷報告并跟蹤。

⑦ 接口缺陷驗證

針對修復(fù)的缺陷重新執(zhí)行相關(guān)測試用例,確保修復(fù)不引入新的問題。

⑧ 回歸測試:

在接口或系統(tǒng)更新后,執(zhí)行回歸測試以確保接口功能穩(wěn)定。

根據(jù)需求或接口變更,同步更新接口測試用例。

⑨ 文檔編寫和總結(jié):

撰寫接口測試報告,記錄測試內(nèi)容、結(jié)果和缺陷統(tǒng)計。

總結(jié)接口測試經(jīng)驗和教訓(xùn),提出改進建議,以便在將來的項目中應(yīng)用。

?

5.?接口性能測試流程

① 確定性能測試目標(biāo)和范圍:

確定要測試的接口和功能。

定義性能測試的關(guān)注點和指標(biāo),如響應(yīng)時間、吞吐量、并發(fā)用戶數(shù)等。

確定性能測試的環(huán)境和配置。

② 收集接口性能信息:

獲取接口文檔、API規(guī)范或Swagger文檔等。

確定接口的預(yù)期性能指標(biāo),如響應(yīng)時間的閾值。

確定接口的并發(fā)限制和性能約束。

③ 設(shè)計性能測試方案:

確定負(fù)載模型,包括并發(fā)用戶數(shù)、事務(wù)數(shù)和持續(xù)時間。

確定性能測試工具框架,如JMeter、LoadRunner等。

創(chuàng)建性能測試腳本,模擬真實的用戶行為和流量模式。

確定性能測試的數(shù)據(jù)量和數(shù)據(jù)生成方式。

④ 配置性能測試環(huán)境:

配置性能測試環(huán)境,包括服務(wù)器、網(wǎng)絡(luò)和數(shù)據(jù)庫等。

確保性能測試環(huán)境的穩(wěn)定性和一致性。

⑤ 執(zhí)行性能測試:

配置性能測試工具,包括線程數(shù)、并發(fā)數(shù)和監(jiān)控指標(biāo)。

執(zhí)行性能測試并監(jiān)控系統(tǒng)性能和指標(biāo)。

收集性能數(shù)據(jù),包括響應(yīng)時間、吞吐量、錯誤率等。

⑥ 提交性能問題,分析和優(yōu)化性能:

生成性能測試報告,包括測試概述、結(jié)果摘要和性能指標(biāo),提交性能問 。

配合開發(fā)分析性能測試結(jié)果,優(yōu)化接口性能,如代碼調(diào)優(yōu)、數(shù)據(jù)庫優(yōu)化 等。

⑦ 回歸測試:

在接口或系統(tǒng)更新后,執(zhí)行回歸測試以確保接口性能穩(wěn)定。

更新性能測試方案和負(fù)載模型

⑧ 性能監(jiān)控和警報(運維)

配置性能監(jiān)控工具,設(shè)置性能警報和閾值實時監(jiān)測服務(wù)的性能指標(biāo), 及時發(fā)現(xiàn)并解決性能問題。

?

6.?接口自動化測試流程

① 確定自動化測試目標(biāo)和范圍:

自動化測試用例來自于功能測試用例,從用例中選擇需要轉(zhuǎn)換成自動化 腳本的功能用例。

② 選擇適當(dāng)?shù)臏y試工具和框架:

選擇適合項目的自動化測試工具,如Python、SoapUI、Apifox 等。

根據(jù)項目需求選擇適當(dāng)?shù)臏y試框架,如pytest、JUnit、TestNG等。

③ 編寫測試腳本

使用選定的測試工具和框架編寫自動化測試腳本實現(xiàn)測試腳本中的測 試步驟配置測試數(shù)據(jù)、斷言和預(yù)期結(jié)果。

④ 執(zhí)行自動化測試

運行自動化測試腳本并記錄測試結(jié)果,針對異常收集測試日志和錯誤報 告以便排查問題。

⑤ 處理測試結(jié)果:

分析和記錄自動化測試結(jié)果,對失敗的測試用例進行缺陷跟蹤和報告, 缺陷修復(fù)重新執(zhí)行測試。

⑥ 持續(xù)集成:

將自動化測試腳本集成到持續(xù)集成(CI)工具中,如Jenkins,在每次 代碼提交執(zhí)行自動化測試或定期執(zhí)行自動化測試。

⑦ 維護與更新:

定期審查功能測試用例,同步更新對應(yīng)自動化測試腳本,跟隨接口和功 能的變化進行相應(yīng)的調(diào)整和改進,以確保自動化測試的可維護性和可持 續(xù)性。

?

7.?接口測試用例設(shè)計實例

例1:

針對新品開發(fā),新品審批詳情查看接口GET /pddvlp/pddvlppurchaser/queryDvlpDetailsByPurchaser

只有一個參數(shù)


首先從接口文檔測試角度出發(fā),

1.?沒有對接口參數(shù)做說明

2.?沒有對返回響應(yīng)做設(shè)置和說明

其次接口功能測試,我們可以通過下面幾種情況進行驗證:


例2:

轉(zhuǎn)運中心,查看某條轉(zhuǎn)運操作詳情接口GET

/pdTransfer/getInfoBySerialNumber

定義有3個參數(shù)


我們需要對各個參數(shù)分別做單獨的測試以及交集測試,下面列舉一些用例:


例3:

轉(zhuǎn)運中心,審批轉(zhuǎn)運信息接口PUT

/pdTransfer/checkFee

Body參數(shù)是個JSON


我們可以從2塊來考慮

1.?參數(shù)

列舉一些用例:


2.?業(yè)務(wù)邏輯(對同一個id不能反復(fù)修改參數(shù)多次通過審批)

經(jīng)過測試本例接口可以反復(fù)執(zhí)行成功,就有問題

例4:

轉(zhuǎn)運中心,查詢轉(zhuǎn)運列表接口POST(實際可以直接用GET)

/pdTransfer/getPage

Body參數(shù)是個JSON


首先一點,從線上測試環(huán)境可以發(fā)現(xiàn),很明顯前端在接口對接過程中并不清楚sort正確的取值


下面列舉一些用例:

例5:

業(yè)務(wù)端轉(zhuǎn)運中心,接口串聯(lián)測試,從產(chǎn)品列表選擇第一件產(chǎn)品發(fā)起1件的轉(zhuǎn)運,并在轉(zhuǎn)運列表檢查生成的轉(zhuǎn)運單詳情是否一致



首先在APIfox自動化測試中新建一個發(fā)起轉(zhuǎn)運的場景

添加需要串聯(lián)測試的幾條用例,其中登錄接口用于獲取token

細(xì)節(jié):

在獲取產(chǎn)品列表后,添加后置條件獲取第一個商品的PDSKU存為臨時變量

在確認(rèn)轉(zhuǎn)運接口將json數(shù)據(jù)中對應(yīng)參數(shù)改成變量,如果是字符串類型就在兩頭加上””


在轉(zhuǎn)運列表獲取最新的一條數(shù)據(jù)的serialNumber,并通過get接口獲取轉(zhuǎn)運詳情

添加后置斷言,對應(yīng)的PDSKU是否一致,發(fā)貨數(shù)量是否是1


8.?接口測試計劃

1.?接口文檔在Apifox上持續(xù)維護,需要保證接口內(nèi)容與develop環(huán)境中一致,否則測試即視為缺陷處理。

2.?單接口功能測試,在Apifox上進行用例創(chuàng)建與維護,保證所有情況都有用例覆蓋,例:

3.?串聯(lián)接口功能測試,在Apifox上通過添加不同的測試場景,關(guān)聯(lián)多條測試用例來實現(xiàn)。

4.?接口自動化測試,計劃使用開源框架:基于 Python + pytest + allure + log + yaml + mysql + redis + 企業(yè)微信通知 + Jenkins 實現(xiàn)的接口自動化框架。

可以通過將接口用例按規(guī)定格式稍作轉(zhuǎn)換成yaml文件,即可自動生成腳 本并執(zhí)行。例:

編寫Ymal文件

Yaml文件生成對應(yīng)的test_的py文件,包含對應(yīng)條數(shù)的測試用例

點擊執(zhí)行,會遍歷執(zhí)行所有用例,生成對應(yīng)的測試報告并發(fā)送結(jié)果通知。

9.?tips

連接開發(fā)本地環(huán)境進行接口測試,暫時無法正常注冊登錄,拿不到token時

找到密碼模式獲取token的接口,執(zhí)行



"token_type": "Bearer",

"access_token": "cc523de4-ff74-4a3c-8711-c0a155031101"

獲得上面2個字段的信息

將其拼接后賦值給Authorization即可



接口測試指南的評論 (共 條)

分享到微博請遵守國家法律
尚义县| 二连浩特市| 太和县| 九龙城区| 民和| 迭部县| 弋阳县| 太仆寺旗| 武义县| 南充市| 来安县| 岳阳县| 红原县| 兰州市| 海晏县| 闸北区| 施甸县| 巴中市| 伽师县| 巨鹿县| 神农架林区| 镇沅| 丽水市| 东安县| 永仁县| 古田县| 塔河县| 义乌市| 信宜市| 淮滨县| 榕江县| 开封市| 和顺县| 宁陵县| 临桂县| 太仓市| 安塞县| 红安县| 封开县| 郴州市| 化德县|