当前位置: 首页 > news >正文

【接口测试】如何定位BUG的产生原因

我们从在日常功能测试过程中对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的产生原因,提高问题的解决速度。

2023最新Jmeter接口测试从入门到精通(全套项目实战教程)

http://www.lryc.cn/news/266827.html

相关文章:

  • JavaScript 中的短路求值(if语句简洁写法--逻辑运算符||和的高级用法)
  • 普本毕业,还有逆风翻盘的机会吗?
  • spark:RDD编程(Python版)
  • 中国元宇宙论坛暨常孝元宇宙发布会即将在京举行
  • 华为认证 | 云计算方向HCIE有效期多久?实验报名费多少?
  • 动物分类识别教程+分类释义+界面展示
  • 【Java动态代理如何实现】
  • 数据库(部分函数)
  • 基于Vite+Vue3 给项目引入Axios
  • 为什么查企业的时候有的公司没有显示注册资金?
  • DataProcess-VOC数据图像和标签一起进行Resize
  • MultiValueMap
  • 山西电力市场日前价格预测【2023-12-25】
  • 【华为OD机试真题2023CD卷 JAVAJS】5G网络建设
  • OSI 七层参考模型及TCP/IP 四层模型
  • 【面向对象】对比JavaScript、Go、Ada、Python、C++、Java、PHP的访问限制。
  • 力扣(leetcode)第26题删除有序数组中的重复项(Python)
  • 【内存泄漏】内存泄漏及常见的内存泄漏检测工具介绍
  • FPGA-ZYNQ-7000 SoC在嵌入式系统中的优势
  • 如何在Vue3中实现无缝热重载:提升你的开发效率
  • 盒子 Box
  • uni-app附件下载预览 并解决打开附件时黑屏
  • 卸载了Visual Studio后,在vscode中执行npm i或npm i --force时报错,该怎么解决?
  • 渗透测试 | 信息收集常用方法合集
  • 使用 ElementUI 组件构建无边框 Window 桌面应用(WinForm/WPF)
  • JavaScript中数组的方法和函数作用域问题
  • nodejs设置x-xss-protection解决xss问题
  • C/C++不同整数类型的区别
  • 如何理解JDK、JRE、JVM区别与联系
  • 用友GRP-U8 SmartUpload01 文件上传漏洞