阅读 60

如何debug排查问题以及解决冲突

本文通过举例子简单分享我在编写接口代码的过程中解决问题的思路和在提交代码时遇到冲突解决的方法,希望对小伙伴们有一点点帮助。

代码调试

背景介绍

最近在从无到有搭建接口测试框架,目前我们用的框架是testng,java语言维护的,如果后期有时间我这个正在摸索阶段的小菜鸡会把这块内容分享出来,或者小伙伴们也可以去CSDN上搜一下,学习下大佬们的沉淀。

以下是最近的成果,其实难主要难在框架的设计以及共用类的编写。 (偷偷告诉大家,其实框架的设计问题不大,因为我抄的我们公司另外一个部门已有的框架,所以代码调试主要集中在common下的类。)

遇到了好几个问题,我就不一一列举了,现在就针对其中的一两个问题,分享下我解决问题的思路和方法。

debug是基操

代码行debug

如下图所示,我开开心心写好一个接口,结果执行的时候不通过。此时在控制台找到报错,开始找bug之旅。

1.点击蓝色区域到达对应的代码行。

2.在对应的代码行前debug(在代码行数处左击鼠标)。

3.在测试类进行debug操作 4.调试中 5.发现异常 6.排查异常原因(这里需要了解代码内容,到对应问题的代码行去找) 7.解决问题 错误的那个路径应该这样才能执行成功,但是这样是不规范的。

打印日志

如下图所示,我又开开心心写了一个接口,结果执行的时候报了500。

很明显这个是服务器内部错误,直接copy请求的URL访问查看报错。 通过报错得知是缺失了secret这个key,所以到对应代码里去加上这个key。 当我开开心心加上这个key之后去执行又报了另一个错,空指针,如下图所示:

ResponseEntity<String> authResp = RequestUtil.sendRequest(authorizationUri, HttpMethod.GET, params, null);
复制代码

查看sendRequest这行代码,基本上可以判断在这里有个参数的值缺失了,此时我们可以把authorizationUri、params这两个字段的值打印出来。

//获取Authorization头
    private HttpHeaders getAuthorizationToken(String yhm, String device) {
        HttpHeaders headers = new HttpHeaders();

        String zrrdah= XmlParserUtil.getZhxx(yhm,env).getZrrdah();
        String zhxh= XmlParserUtil.getZhxx(yhm,env).getZhxh();

        Map<String, String> params = new HashMap<>();
        params.put("zrrdah", zrrdah);
        params.put("zhxh", zhxh);
        params.put("device", device);
        if(device.equals(this.webDevice))params.put("secret", webSecret);
        else params.put("secret", appSecret);

        System.out.println("params is:" + params.toString());
        System.out.println("authorizationUri is:" + authorizationUri);
        ResponseEntity<String> authResp = RequestUtil.sendRequest(authorizationUri, HttpMethod.GET, params, null);
复制代码

此时去测试类执行,在控制台一眼就看到报错的原因了:secret=null 这时候我大概已经知道了为啥没有取到secret的值,因为我的config.properties的配置里secret配的有点问题,经过修改之后,终于成功跑通接口了。

最后记得在提交代码之前把下面这两行代码去掉哦,这个只作为调试用。

System.out.println("params is:" + params.toString());
System.out.println("authorizationUri is:" + authorizationUri);
复制代码

解决冲突

背景是这样的,五一之前我申请转岗了,原来的接口工程有个方法名我一直想改一直没有改,今天得空改一下,结果拉代码的时候发现一堆红(别问我为什么不先pull再改,问就是我忘记了),如图: 既然要提交代码肯定得先解决冲突。

首先找到解决冲突的入口

一本正经Merge 红色是有冲突的地方,因为我改了这行代码,别人也改过这行代码,绿色是新增的内容,蓝色是改动的内容。此处由于我只改了方法名,所以只需要红色的选择我改动的,点击红色箭头,其他的绿色、蓝色直接点击箭头,完成合并代码到中间区域,最后点击Apply。 解决完冲突,这时候再去git pull就不会报错了。 接下来git push,待push successful之后可以在GitLab或者IDEA上查看提交记录。

好啦,本期内容就更新到这。


本期小埋语录(我本人)

ONE.共同成长是最好的守恒。 BY-小埋我本人

TWO.5月5号一大早起床准备回杭州,想到背井离乡就非常伤感,那时也没觉得前程似锦或者未来可期,但就是不去好像也不会更好。

THREE.错误的人一定会分开的,就算不是今天分开,也会在未来的某一天分开。

FOUR.好的人会遇到好的人,过上好的生活。

FIVE:听一个同事的十年职业生涯分享有感:前三年要吃得了苦,中间三年要想得比别人多,后面三年要学会(尝试)技术管理。到了第十年,你就是那个不可或缺、令人信任的人。

文章分类
阅读
文章标签