被一个问题卡了近两天,下班后我哭了。。。
写在前面
好像很久没有更文了,感觉有很多想写的,但却又不知道该写些什么了。。。
近阶段,整个人的状态都好,本计划这月想给自己充电,做一些自己想做的事,结果真的就是事与愿违吧。
好像每个人都一样,都是为了生活而疲于奔命,依然忙碌于各种事情之间。
整个过程
没经过深思熟虑的计划制定
两周前,组内同事想让我帮忙做冒烟测试脚本,原因是因为每次发版测试的时间耗时特别长,所以在结束批量测试工具的开发工作后,我便主动和领导请缨做冒烟测试脚本的开发工作。
和领导说,脚本开发需要5天,整个冒烟测试每次需要大约5分钟!
领导听完很吃惊,我自己说应该差不多吧。
迷之自信?
可能很多同学也会和我的领导一样吃惊,为什么?
系统发版后的回归测试,就测试场景和流程来看,工作量肯定不小,姑且不说技术问题,就业务流程的梳理就很费时间了。
而我却说整个过程只需要五天,可见我是多想证明自己了
其实不然,我自己还是有一些考量的,才说出五天,原因有两个:
- 因为信任,所以备受期待,同事信任我,真的感觉自己被需要,并且想为团队贡献出一份自己的力量;
- 因为之前做过测试环境的性能测试脚本,以为很多接口可以直接拿来就用(我天真了,因为改了不少,需要重做)。
理性永远在给感性收拾烂摊子
整个系统总共6个测试流程,也就是说我每天要完成1.2个流程的脚本开发。
我特别喜欢现在团队的氛围,第一天到下班点时,差一个模块就完成了一个流程。
所以在责任心的驱使下,心想加个班吧,今天能赶出来这个模块,明天其他的流程就能复用了。
一切看似很好,也正是这个模块把我彻底卡住了,我遇到了一个让我很抓狂的问题:
打个类比,比如发起申请接口,申请成功了,到领导审批,点击同意的时候报错,而发起申请这个接口却不报错,你在页面同样的操作,领导同意却是正常好用的。
被问题卡住,心态开始崩盘
这个问题,我反复查了近两天......
这期间我积极的找开发同事帮忙排查问题,并确认是否是我的入参不对导致节点数据不正确。
由于开发同事比较忙,能帮我排查问题的时间有限,所以只有在开发稍微有点时间,才能帮忙排查联调。
也正因为开发同事的尽心尽力帮忙,几次下来,让我感觉离问题根源好像又进了一步。
也知道为什么不能审批了,因为虽然请求成功了,但是没走业务逻辑,导致部分数据还是默认值,所以审批报错。
关于入参的排查,暂时告一段落了,因为数据状态不对,无法进行审批,意味着还是没有解决问题。
到这已经是第三天了,一个流程都没整完,感觉整个人都不好了,心态有点崩了......
于是向领导说明原因,领导了解后,并说先把耗时最长的做完,虽然没那么大压力,但是心里还是有些深深地自责。
我还是没忍住,终于哭了出来......
距离周五晚上发版测试还有两天,这个问题不解决,怎么也说不过去,心里一直憋着这个劲特别难受。
当时的想法,真的是谁能帮帮我,帮帮我行么?
但是我也不知道该找谁帮忙,谁又能帮助我?
为什么?说是业务问题吧?还不算?技术问题吧,入参还查不出来啥问题?真的就是进退两难!
因为开发太忙,实在没时间,暂时也没想到什么好的解决办法,我就先下班回了家。
把车停好后,习惯性地给女友打了电话,那天还是我的生日,再加上那阶段烦心事特别多,说着说着我哭了出来,突然感觉好无助而且很没用,最后彻底哭了出来,为什么就那么难?
我以为我很颓废,今天我才知道,原来我早废了。
因为烦心事特别多,导致整个人都不好了,哭出来后,感觉真的很舒服,而且整个人平和了许多。
没人能教你,只有自己能拯救自己
回到家后,搭建好环境,改用工具进行测试,使用jmeter+fiddler
抓包开始,重新调接口来模拟测试,结果居然成功了,真的很意外,难道是我代码写的有问题?
第二天上班,我把自己代码接口调用及入参与昨天做好的jmeter
脚本一一对照,发现入参一模一样,这让我产生了怀疑,是我封装的工具类有问题?
我代码走的HTTP
协议,而jmeter
脚本是HTTPS
协议才成功的。
这让我想到,可能我的httpclient
需要走HTTPS
协议请求会让接口调用后,数据应该会正常显示吧。
有了思路,就开始找httpclient
如何进行HTTPS
请求的相关文章。
经过一番搜索,找到的重点都是围绕使用ssl和根证书的使用的代码片段,我又对httpclient
底层封装进行改造,改造完再次使用封装工具类调用接口,结果还是数据状态不对,我真的彻底绝望了。
于是,我又去找到了强哥(我北京的同事),强哥说你干嘛自己封装,用hutool
呀。
我照着强哥的思路,又去照着hutool
中的工具类,开始写demo,逐一调用接口,结果竟然成功了,这让我欣喜若狂,真的好用。
于是,我对写好的demo,再次进行封装,也就是hutool
中的工具类封装,封装好后,再次使用封装好的工具类调用,结果数据状态又不对了。
我真的服了,这是玩我吗?分开就好使,封装就不行。
有的同学说了,应该是你封装的有问题,那为什么其他模块都好用,就这个模块不行?
后来,我灵机一动,那就都对分开可用这部分代码进行简单封装,保证流程跑通就行,算是退而求其次的解决方法,虽然,它很low,但是能用。
也正因为这个临时解决方案,助力我在周五发版前成功的让同事用上了,一个流程的冒烟测试,跑完这一个流程仅需113秒,比手动回归快了近10倍的时间。
写在最后
整个过程让我记忆深刻,在此特别记录一下,真的是头一次被问题卡的这么难受,那种既生气,又干不掉难题的感觉,太难受了!
你有被难题阻塞,一直无法继续下去的情况吗?
来源:juejin.cn/post/7135473631559811080