使用 Fiddler+Linux 日志 + 数据库,搞懂3个问题,强势回怼开发!

测试过程中有没有遇到过什么问题是你解决的?

遇到bug怎么分析是前端bug还是后端bug?

测试的时候怎么确认你的测试结果是正确的?

定位分析问题的能力是测试不可或缺的,而且这个能力需要项目经验积累以及需要丰富的知识面才能达到的。企业需要这样的人才,因为他们需要会解决问题的人,而不仅仅是发现问题的人!

所以,想要提升自己的职场价值,以及定位问题、分析问题的能力是必须具备的!

问题的确是好问题,那么…

1 如何进行问题的定位和分析呢?

正常工作的数据交互情况:

要能分析项目出了问题的场景,我们需要先清楚的知道正常场景下前端和后端分别是怎么工作和进行数据交互的:

我们现在看一个项目注册页面功能,通过Fiddler抓包来进行分析,如图:

图片

一个注册的过程,包括了一下三个步骤:

1) 校验验证码的正确性;

2)检查用户名是否重复;

3)注册用户名和密码,添加用户信息到数据库;

并且每个步骤前端请求和后端响应消息,也是要清楚知道怎么交互的。

当注册失败了,到底是前端问题还是后端问题呢?

比如开发升级了版本,当我们做回归测试的时候,发现了如下bug:

图片

发现这个bug后,很多测试会截图+记录bug,然后指派给开发,因为页面无响应,会认为是页面的问题,就会指派给前端开发。

如此操作,会引起以下现象:

1、前端开发和后端开发相互踢皮球,前端开发说不是自己的bug,后端开发也说不是自己的问题,测试很被动,因为自己也无法判断;

2、开发频繁来找你收集日志 ,看数据库,增加了开发和测试的沟通成本,这也是导致了工作效率低下的原因!

其实再很多公司的测试都说开发人不好,说公司测试跟开发相处不好,测试没有地位,但是其实要在自己身上找原因:

如果你是这样的一个甩手测试,怎么可能会赢得开发的尊重呢?!

所以,发现这个bug怎么去定位和分析以及尽可能多的提供有效的信息给开发修复bug呢?

第一步:通过抓包分析,这个错误信息是前端还是后端提示的?

以下是Fiddler抓包的结果:

图片

从抓包结果可以看到,前端正确的发送了用户名密码和验证等数据,但是后端服务器的响应结果为空。所以,这个bug肯定是后端的开发的问题。

但是,确定了是后端的问题,那么注册的用户信息有存到数据库里么?是数据库的问题么?所以要确认这个问题,需要继续进行定位。

第二步:使用数据库进行测试结果确认和排查

连上这个项目的数据库找到对应的表,进行数据库的结果确认,这里就需要使用SQL 语法进行数据的查询操作了。

图片

看结果是空的,说明还没有入!那么问题就应该在前端发送之后,存入数据库之前,具体是什么原因呢?需要看服务器日志定位!

第三步:Linux日志分析bug的根本原因。

使用远程链接工具连上后端服务器,找到项目的日志对应目录,然后查看日志分析错误的根源原因:

使用tail -f 命令查看实时刷新的日志:

图片

找到ERROR级别的日志,以及下面的具体java代码报错信息:

图片

就可以看到根本原因啦!通过日志分析,发现这个注册失败的根本原因是因为数据的username字段长度被截断了,所以数据存储失败了,导致注册失败了!这个错误日志贴到bug里,开发修复bug就轻轻松松了。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/272166.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

k8s---kubernets

目录 一、Kurbernetes 1.2、K8S的特性: 1.3、docker和K8S: 1.4、K8S的作用: 1.5、K8S的特性: 二、K8S集群架构与组件: 三、K8S的核心组件: 一、master组件: 1、kube-apiserver&#xff1…

NET中使用SQLSugar操作sqlserver数据库

目录 一、SqlSugar是什么? 二、迁移和建表 1.建立实体 2.创建上下文类 3.在Program中添加SqlSugar服务 4.在控制器中注入上下文类 三、简单实现CURD功能 总结 一、SqlSugar是什么? SqlSugar是一款老牌 .NET 开源ORM框架。 主要特点&#xff1a…

JVM入门到入土-Java虚拟机寄存器指令集与栈指令集

JVM入门到入土-Java虚拟机寄存器指令集与栈指令集 HotSpot虚拟机中的任何操作都需要入栈和出栈的步骤。 由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。优点是跨平台,指令集小&#x…

华为设备VRP系统管理

为了满足企业业务对网络的需求,网络设备中的系统文件需要不断进行升级。另外,网络设备中的配置文件也需要时常进行备份,以防设备故障或其他灾害给业务带来损害。在升级和备份系统文件或配置文件时,经常会使用FTP和TFTP来传输文件。…

系统学习Python——装饰器:函数装饰器-[跟踪调用]

分类目录:《系统学习Python》总目录 如下的代码定义并使用了一个函数装饰器,统计对被装饰函数的调用次数,并且针对每一次调用打印跟踪信息: class tracer:def __init__(self, func):self.calls 0self.func funcdef __call__(se…

【Linux驱动】最基本的驱动框架 | LED驱动

🐱作者:一只大喵咪1201 🐱专栏:《Linux驱动》 🔥格言:你只管努力,剩下的交给时间! 目录 🏀最基本的驱动框架⚽驱动程序框架⚽编程 🏀LED驱动⚽配置GPIO⚽编程…

Python 高级(四):线程池 ThreadPoolExecutor

大家好,我是水滴~~ 当涉及到需要同时处理多个任务的情况时,使用线程池是一种高效的方法。Python提供了concurrent.futures模块,其中的ThreadPoolExecutor类使得使用线程池变得非常方便。本文将详细介绍Python线程池的概念、使用方法和示例代…

【网络安全 | SQL注入】一文讲清预编译防御SQL注入原理

在防止SQL注入的方法中,预编译是十分有效的,它在很大程度上解决了SQL注入问题。 SQL注入简析 数据库查询语句未对SQL注入做任何防护时,语句基本如下: $name$_POST[name]; $pass$_POST[pass]; $sql"SELECT * FROM user W…

展望2024的区块链世界,铭文将是绕不开的话题

近期,加密领域的热点焦点不断涌现,但毫无疑问,"铭文"这个词汇已经成为了近两个月内广受瞩目的关键词之一。像ORDI、SATS、RATS等铭文项目在比特币区块链上获得了惊人的增长,为持有者带来了巨大的财富效应。铭文热潮已经…

图片批量处理:图片批量缩放,高效调整尺寸的技巧

在数字媒体时代,图片处理已是日常生活和工作中不可或缺的一部分。有时候要批量处理图片,如缩放图片尺寸,以满足不同的应用需求。现在一起来看看办公提效式具如何高效的将图片批量处理方法,快速、准确地批量调整图片尺寸操作。 下…

SQL server 数据库练习题及答案(练习2)

使用你的名字创建一个数据库 创建表: 数据库中有三张表,分别为student,course,SC(即学生表,课程表,选课表) 问题: --1.分别查询学生表和学生修课表中的全部数据。--2.查询成绩在70到80分之间…

封装map和set

文章目录 封装mapset红黑树成员变量节点定义KeyOfTMapKeyOfTSetKeyOfT begin() && end()迭代器迭代器类operatoroperator- - insert 封装 map和set的底层都是通过红黑树来实现的,那么是怎么做到共用同一份代码,但让map存储的是键值对&#xff0…

多功能演示工具ProVideoPlayer2 mac特色介绍

ProVideoPlayer2 mac是用于大多数任何生产的首选多功能演示工具。ProVideoPlayer 2是一种动态视频播放和处理媒体服务器,可将视频映射(包括播放和实时视频输入)实时控制到一个或多个输出。包括实时效果,调度,网络同步和…

(AntV X6)vue2项目流程图实现

(AntV X6)vue2流程图实现 项目:gitLab/zhengzhouyuan 效果: 一、项目引入X6 npm install antv/x6 --save 二、引入相关插件 npm install --save antv/x6-plugin-clipboard antv/x6-plugin-history antv/x6-plugin-keyboard antv/x6-plugin-selection an…

海云安亮相2023北京国际金融安全论坛,助力金融企业数字化转型降本增效

近日,2023北京国际金融安全论坛暨金融科技标准认证生态大会在北京金融安全产业园成功举办。深圳海云安网络安全技术有限公司(以下简称“海云安”)受邀参展亮相此次大会。海云安作为国内领先的金融科技服务商,展示了开发安全系列产…

数据结构:图文详解 树与二叉树(树与二叉树的概念和性质,存储,遍历)

目录 一.树的概念 二.树中重要的概念 三.二叉树的概念 满二叉树 完全二叉树 四.二叉树的性质 五.二叉树的存储 六.二叉树的遍历 前序遍历 中序遍历 后序遍历 一.树的概念 树是一种非线性数据结构,它由节点和边组成。树的每个节点可以有零个或多个子节点…

输入两个时间,判断时间是否为非工作日,并且是日期否为同一天。是的话返回true,否返回false

工作遇到这么一个逻辑,前端回传两个时间(必须是两个那一种)。然后,我后端需要判断这两个时间是否为同一天,并且这个时间是否为非工作日,是的话返回true,反之返回false 代码: packa…

2023/12/26 work

1. 定义自己的命名空间myspace&#xff0c;并在myspace中定义一个字符串&#xff0c;实现求字符串大小的函数。 #include <iostream>using namespace std;namespace mynamespace {string name;unsigned int strlen(string name){return name.size();} }using namespace…

面试题之二HTTP和RPC的区别?

面试题之二 HTTP和RPC的区别&#xff1f; Ask范围&#xff1a;分布式和微服务 难度指数&#xff1a;4星 考察频率&#xff1a;70-80% 开发年限&#xff1a;3年左右 从三个方面来回答该问题&#xff1a; 一.功能特性 1)HTTP是属于应用层的协议&#xff1a;超文本传输协议…

手机蓝牙在物联网超市中的应用

超市一站式购物已进入城市的千家万户。然而人们在选购时却采用直接翻阅商品的方式&#xff0c;既不方便又不卫生甚至大大缩短食品类商品保质期&#xff0c;也给超市商品管理造成很大难度。物联网(The Internet of things)基于射频识别(RFID)、红外感应等技术&#xff0c;把物品…