接口測試:如何定位BUG的產生原因

1小時postman接口測試從入門到精通教程

我們從在日常功能測試過程中對UI的每一次操作說白了就是對一個或者多個接口的一次調用,接口的返回的內容(移動端一般為json)經過前端代碼的處理最終展示在頁面上。http接口是離我們最近的一層接口,web端和移動端所展示的數據就來自于這層,那么我們如何知道在測試過成功UI上的每一次點擊都觸發調用了那些接口呢?請在下面的場景中找答案。

如下場景:

你負責測試某一個電商網站一個用戶的訂單列表功能,測試過程中你發現頁面上展示的訂單數量與實際數據庫里的數量不一致,請大家結合自己平時的工作方式回憶下如何快速的定位該問題是不是BUG或者BUG產生的原因是什么。

下面說下我認為比較合適的定位方式:
1、 用chrome瀏覽器打開你正在測試的項目 F12打開開發者工具,切到network 標簽,訪問訂單列表頁面,如下圖
?



抓取到展示訂單列表的接口,可以看出本次請求一共傳遞了9個參數,此時打開RD提供的接口文檔確認需要傳遞的參數是否傳遞的正確,或者參數個數一致,如果不正確,那可以判斷是前端的Bug。
有人說如果沒有接口文檔怎么辦?能看得懂代碼的直接去看這個接口的定義或者實現,看不懂的就只能找后端開發去確認了
2、 點擊Response標簽將標簽內的內容復制出來,問了更好的查看可以將其粘貼到格式化json的工具上(如果返回類型是json)工具地址:http://json.parser.online.fr/,然后查看這里面展示的記錄數是不是跟UI上展示的一致,如果不一致可以判斷是前端的Bug
?



3、 如果上一步沒有問題,請打開系統的debug日志,獲取訂單的操作說白了最后落到數據庫層面就是一條帶條件的select 查詢語句,我們從日志中可以獲取到select 語句的參數,這個參數一般情況下就是在調用接口時傳遞的那9個,此時抓取到本次接口調用產生的sql語句然后放到數據庫客戶端上執行,分析查詢條件和執行結果的關系,這個過程就是找出錯誤參數的過程。類似的debug日志如下:

從截圖可以看出有一些select 語句如:select * from model where id = ??

總結:測試過程遇到問題時先別急著喊開發,先自己有個初步的判斷,或者直接定位到Bug產生的原因,這樣既可以減少一些不必要的溝通還可以讓開發直奔Bug的產生原因,提高問題的解決速度。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/95166.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/95166.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/95166.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

GPIO的8種工作方式

GPIO的8種工作方式:一、4 種輸入模式1.1 Floating Input 浮空輸入1.2 Pull-up Input 上拉輸入1.3 Pull-down Input 下拉輸入1.4 Analog Input 模擬輸入二、4種輸出模式2.1 General Push-Pull Output 推挽輸出2.2 General Open-Drain Output 開漏輸出2.3…

LeetCode算法日記 - Day 29: 重排鏈表、合并 K 個升序鏈表

目錄 1. 重排鏈表 1.1 題目解析 1.2 解法 1.3 代碼實現 2. 合并 K 個升序鏈表 2.1 題目解析 2.2 解法 2.3 代碼實現 1. 重排鏈表 143. 重排鏈表 - 力扣(LeetCode) 給定一個單鏈表 L 的頭節點 head ,單鏈表 L 表示為: L…

算法模板(Java版)_前綴和與差分

ZZHow(ZZHow1024) 💡 差分是前綴和的逆運算。 前綴和 💡 前綴和作用:快速求出 [l, r] 區間的和。 一維前綴和 例題:AcWing 795. 前綴和 import java.util.Scanner;public class Main {public static void main(String[] args)…

openssl使用SM2進行數據加密和數據解密

一、準備工作 1. 安裝依賴 sudo apt-get update sudo apt-get install libssl-dev2. 確認 OpenSSL 版本 openssl version如果是 1.1.1 或 3.0,就支持 SM2/SM3/SM4。二、C 語言示例代碼 這個程序會: 生成 SM2 密鑰對使用公鑰加密一段明文使用私鑰解密恢復…

用滑動窗口與線性回歸將音頻信號轉換為“Token”序列:一種簡單的音頻特征編碼方法

在深度學習和語音處理領域,如何將原始音頻信號有效地表示為離散的“Token”序列,是語音識別、音頻生成等任務中的關鍵問題。常見的方法如Mel頻譜圖向量量化(VQ)、wav2vec等已經非常成熟,但這些模型通常依賴復雜的神經網…

Vue開發準備

vs code VSCode的下載地址https://code.visualstudio.com/Download Node.js node.js的下載地址 https://nodejs.org/zh-cn/download 注意:nodejs安裝路徑不要和vscode安裝到同一個文件夾,兩個應用分別裝到兩個不同的文件夾 npm config set cache &q…

QT6(QFileSystemModel和QTreeView)

QT6QFileSystemModel和QTreeView QFileSystemModel為本機的文件系統提供一個模型,QFileSystemModelt和QTreeView結合使用,可以用目錄樹的形式顯示本機的文件系統,如同Windows的資源管理器一樣使用QFileSystemModel提供的接口函數,…

【開題答辯全過程】以 基于Spring Boot的房屋租賃系統的設計與實現為例,包含答辯的問題和答案

個人簡介一名14年經驗的資深畢設內行人,語言擅長Java、php、微信小程序、Python、Golang、安卓Android等開發項目包括大數據、深度學習、網站、小程序、安卓、算法。平常會做一些項目定制化開發、代碼講解、答辯教學、文檔編寫、也懂一些降重方面的技巧。感謝大家的…

構建下一代智能金融基礎設施

1. 行業背景:從數字支付到可編程金融的范式躍遷全球數字支付市場正以萬億美元的規模持續擴張,但其底層系統仍受限于傳統金融的清算、結算延遲和高昂的中間成本。盡管互聯網技術提升了支付的便捷性,但其核心仍是中心化賬戶體系的延伸。Web3 技…

【C++】深入解析C++嵌套依賴類型與typename關鍵字

什么是嵌套依賴類型?嵌套依賴類型(Nested Dependent Type)是指在一個模板中,一個類型名稱依賴于模板參數,并且是該模板參數內部的嵌套類型。具體來說,當一個類型滿足以下兩個條件時,它就是嵌套依…

管網信息化監測主要的內容

管網信息化監測是指通過現代信息技術手段對管網系統進行實時監控和數據采集的管理方式。其背景源于城市化進程加快以及基礎設施建設規模不斷擴大,傳統的管網管理模式已無法滿足現代化需求。管網信息化監測主要內容包括以下幾個方面:█管網運行狀態監測&a…

數據泄露代價千萬,PII 保護你真的做對了嗎?

一、PII—數據隱私的核心概念解析 在大多數數據隱私法律中,可識別個人信息(PII, Personally Identifiable Information)是指任何可以用來識別個人身份的信息。然而,PII 的定義并非由單一法律統一規定,不同國家和地區的法律對其定義略有差異: 各國對 PII 的定義 美國 20…

【數據結構】八大排序之快速排序:分而治之的藝術

文章目錄快速排序1.hoare版本算法優化三數取中法小區間優化完整代碼如下算法分析時間復雜度空間復雜度2.前后指針法排序過程3.非遞歸(棧模擬)實現思路總結快速排序 快速排序是Hoare于1962年提出的一種二叉樹結構的交換排序方法,其基本思想為…

在ROS中獲取并發布UBS式傳感器的溫濕度

哈嘍大家好,我是鋼板獸! 今天更新一篇和ROS相關的文章,有個項目需求是在ROS中獲取并發布UBS式傳感器的溫濕度,我使用的溫濕度傳感器簡介如下:DL11- MC-S1 溫濕度傳感器通過USB 接口采用標準MODBUS RTU 協議通信&#x…

【圖論】 Graph.jl 操作匯總

文章目錄圖論的集合類操作Base.getindexBase.intersectBase.joinBase.reverseBase.reverse!Base.sizeBase.sumBase.sumBase.union圖生成與轉換Graphs.cartesian_productGraphs.complementGraphs.compute_shiftsGraphs.crosspathGraphs.differenceGraphs.egonetGraphs.induced_s…

【鏈表 - LeetCode】146. LRU 緩存

146. LRU 緩存 題解&#xff1a; class LRUCache {list<pair<int,int>>v;unordered_map<int,list<pair<int,int>>::iterator>idx;int capacity; public:LRUCache(int capacity):capacity(capacity){}int get(int key) {if(idx.count(key) 0) …

Elasticsearch vs Solr vs OpenSearch:搜索引擎方案對比與索引設計最佳實踐

Elasticsearch vs Solr vs OpenSearch&#xff1a;搜索引擎方案對比與索引設計最佳實踐 隨著大數據和實時分析需求的爆發&#xff0c;搜索引擎已成為許多業務系統中的核心組件。本篇文章將從“技術方案對比分析型”角度切入&#xff0c;重點比較三大主流搜索引擎&#xff1a;El…

光頡科技)Viking)的CS25FTFR009 1225 0.009R/9mR 3W電阻介紹-華年商城

“**華年商城”**小編為您介紹&#xff1a;光頡科技&#xff08;Viking&#xff09;的CS25FTFR009 1225 0.009R/9mR 3W電阻 光頡CS25FTFR009合金電阻&#xff1a;0.009Ω/9mΩ 3W 1%精密采樣電阻 光頡科技&#xff08;Viking&#xff09;的CS25FTFR009是一款高性能的電流檢測電…

港科大開放世界長時域具身導航!LOVON:足式機器人開放詞匯目標導航

作者&#xff1a;Daojie Peng1^{1}1, Jiahang Cao1,2^{1,2}1,2, Qiang Zhang1,2^{1,2}1,2, Jun Ma1,3^{1,3}1,3單位&#xff1a;1^{1}1香港科技大學&#xff08;廣州&#xff09;&#xff0c;2^{2}2北京人形機器人創新中心&#xff0c;3^{3}3香港科技大學論文標題&#xff1a;L…

【前端教程】JavaScript 數組對象遍歷與數據展示實戰

在前端開發中&#xff0c;處理數組和對象是日常工作的基礎。無論是篇文章將通過一個具體案例&#xff0c;詳細講解如何使用JavaScript遍歷包含對象的數組&#xff0c;并將數據以清晰的格式展示在頁面上。我們會從基礎語法開始&#xff0c;逐步優化代碼&#xff0c;最終實現一個…