暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

写了那么久代码,还不会debug?

全栈测试笔记 2021-01-12
491

点击蓝色“全栈测试笔记”关注我哟

加个“星标”,阅读我的文章,一起学习提升。

热文推荐:2019-2020:测试实用干货精选汇总


前言



当前,随着招聘要求的提高,不少测试都会写一些代码,但是,不少小伙伴在写代码的时候,运行一报错,就头皮发麻,不知所措,到处问是什么原因;然后别人答复说:debug一下!可能部分人连debug是啥都不知道,debug意为排除程序故障的意思,名字的由来可以看下百度百科。
如果你会,那么在遇到代码报错的时候,就可以先自己debug一下,看哪个地方的问题,如果不会,也可以用最简单的方式:打印,但是比较繁琐,代码通了还要去掉打印的代码。

下面简单介绍下debug常用功能。

说明:pycharm和idea都属于JetBrains旗下产品,所以很多类似的地方,本文以idea来演示。


示例代码



如下:
package com.qzcsbj;


import java.util.ArrayList;


/**
* @create : 2021-01-04 21:31
* @description : <描述>
* @博客 : www.cnblogs.com/uncleyong
* @QQ群 : 652122175
* @公众号 : 全栈测试笔记
* @作者微信 : ren168632201
*/
public class TestDebug {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
int res = getSum(list);
System.out.println("sum = " + res);
}


private static int getSum(ArrayList<Integer> list){
int sum = 0;
for (Integer s : list) {
sum +=s;
}
System.out.println("【全栈测试笔记】预祝各位测友2021升职加薪。。。每人加薪" + sum + "k/月+");
return sum;
}
}

 

常用技巧



首先,选中我们演示的类

添加断点

可以鼠标左键,单击代码行左侧,出现小红饼,再点一次消失
也可以快捷键:Ctrl+F8
进入debug模式
快捷键:shift + F9
代码停留在断点处,下方左侧是调用栈(下面调用上面),右侧是变量

单步运行

ctrl + shift + a,搜索mute,必须是off状态
否则,打的断点是灰白色,会被跳过
如果是开启状态,也可以点左下角图标,使其变成off状态
按F8单步调试,如果被调用方法里面没断点,不进入调用的方法
按F7单步调试,哪怕被调用方法里面没断点,也会进入到调用的方法里面
跳转到下一个断点
resume,快捷键:F9,跳到下一个断点,后面没有断点就结束,再按一次,重启程序进入debug状态
运行到指定行(非断点行)
alt + f9,如果后面没有断点,就直接运行到光标所在位置,如果有断点,还是会先运行到断点,光标又点位到断点处,需要重新把光标放到期望的位置 
结束运行
左下角mute breakpoints为on状态时,可以跳过后面所有断点,让所有断点失效
点了mute breakpoints后,所有断点变灰色,然后按F9,就跳过所有断点结束运行

查看断点

断点多的情况下,ctrl+ shift +F8,看所有断点,可以预览断点位置
如果光标在断点行,弹出下图(注意:下图可以给断点加条件,也就是条件断点),可以继续点击More进入下方第二图;如果光标在非断点行,直接弹出下方第二图
右下角可以预览断点位置,还可以新增或者去掉断点

条件断点

使用场景:可能在某个值的时候容易出错 
光标定位到要设置条件断点的位置,按ctrl+ shift +F8,设置条件断点
输入条件:s==2,如果变量是字符串,就用equals
也可以这里设置,勾选,写上条件
按F9,选择我们的测试文件
假设只有一个上面我们设置的条件断点,如果验证条件满足,才停留在断点处

查看表达式值及表达式求值

选中变量
alt + F8
表达式求值
也可以alt + F8,搜索变量,查看值

监控变量的值

右击变量,选择“Add to Watches”
最上面显示监控的变量
如果代码正在变量的作用域内运行,会一直显示变量的当前值;
如果不在变量的作用域内运行,显示如下:
修改变量的值
选中变量,按F2,修改值
按F9,最终返回的是修改后的值

ok,以上就是常用的debug技巧。

抛砖引玉,欢迎交流;
声明:封面图片来源于网络,如有侵权,请联系删除。

END


星标|在看|留言|转发分享,铁粉

长按二维码关注,第一时间获取干货

咨询交流,添


干货精选汇总

点击阅读☞2019-2020:测试实用干货精选汇总

点击阅读☞测试如何拿高薪?


目前10000+人已关注加入我们

       

       


星标|在看|留言|转发分享,铁粉


后台回复资料获取测试资料
后台回复微信可向作者提问
后台回复提升加入提升圈子


分享是一种美德本公众号不开赞赏功能

如有帮助,转发、分享、在看


未来的你,一定会感谢现在拼命的自己!

 点击「阅读原文,查看测试提升圈详情

文章转载自全栈测试笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论