属性断点
作用:查看属性值是如何变化和赋值情况
- 首先在属性定义所在行的左边打一个断点(会展示一个小眼睛)
点击断点右键可以选择监听属性的获取和修改 - 然后调用方法发起请求,所有属性发生变化的地方都会自动断下来
- 按F8继续让下走,可以看到
name
字段的字段值随着程序的赋值而变化
方法断点
作用:可以监听方法的进入和退出
- 在方法名所在行的左边打上一个断点(展示一个菱形)
- 在断点处点击右键,可以选择是否监控方法的进入和退出,这里进入和退出都勾选
- 调用请求,会发现每次进入方法和退出方法时候都会自动打上断点
条件断点
查看达到某一个条件时候程序的运行状态,比如循环里面,需要查看当满足某一个条件时候的程序运行状态
- 首先在需要调试行前打一个断点,然后在断点上点击右键,在condition的输入框输入条件,比如本例中我需要查看当i等于15的运行情况,则输入
i==15
- 输入完成后点Done,然后会发现断点右下角多了一个问号,表示这里是有条件的
- 此时调用接口,看程序执行情况。如图所示,程序在
i==15
时候断了下来
异常断点
程序执行到某一步抛出了异常,但是不知道哪一步抛的异常,这种情况如何快速定位异常的位置呢?
- 首先去掉所有断点,我这里制造一个异常
- 点击查看断点
- 点击加号,点击异常断点
- 输入异常类的名称,然后选中
- 这时候会发现断点这里多了一个
RuntimeException
的断点,这样就算是把断点加上了 - 调用请求可以看到当i等于9的时候系统为我们自动打了一个断点,表示这里符合
RuntimeException
条件
源断点
用于不在代码里写打印语句而在控制台打印变量内容
- 首先在变量所在行打上断点,然后右键点击左下角的more
- 勾选这两个选项,并在
Evaluate and log
下面输入i - 调用方法,这个变量就会被输出到控制台了
执行到光标所在行
debug时有时候想要程序直接跳转执行到某一行
- 首先打一个断点
- 调用方法发起请求,程序会停在第一个断点位置
- 现在想要实现依次运行到21行和27行,其实只需要先将光标停留在21行,然后点击这个按钮就行
- 看效果
断点回退
比如当前debug到了第20行,但是想回去看debug到第15行的程序状态;
一般情况可能是越过所有断点重新发起请求,简单的请求还可以这样,但是实际测试环境中,好不容易造了一条满足条件的测试用例,结果结束请求后用例不满足条件了,无法直接重新调用,又得手动修改数据状态,重复做无用功
- 比如这里我已经执行到了27行,现在想重新回到第20行,怎么做呢?
- 首先在需要回退的行位置打一个断点,比如我这里在20行打一个断点,然后找到debug的堆栈区,点击当前方法名,然后右键,点击
Reset Frame
重置帧,就会回退到 - 点击
Reset Frame
重置帧后,程序回退到了controller的方法入口,然后按F8执行下一步,程序会停留到程序的第一个断点处