• 被一个问题卡了近两天,下班后我哭了。。。


    写在前面

    好像很久没有更文了,感觉有很多想写的,但却又不知道该写些什么了。。。

    近阶段,整个人的状态都好,本计划这月想给自己充电,做一些自己想做的事,结果真的就是事与愿违吧。

    好像每个人都一样,都是为了生活而疲于奔命,依然忙碌于各种事情之间。

    整个过程

    没经过深思熟虑的计划制定

    两周前,组内同事想让我帮忙做冒烟测试脚本,原因是因为每次发版测试的时间耗时特别长,所以在结束批量测试工具的开发工作后,我便主动和领导请缨做冒烟测试脚本的开发工作。

    和领导说,脚本开发需要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倍的时间。

    写在最后

    整个过程让我记忆深刻,在此特别记录一下,真的是头一次被问题卡的这么难受,那种既生气,又干不掉难题的感觉,太难受了!

    现在我邀请你进入我们的软件测试学习交流群:746506216】,备注“入群”, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路。

    喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!

    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    Docker以只读挂载磁盘命令
    【构建ML驱动的应用程序】第 5 章 :训练和评估模型
    Spring – 记录传入请求
    input空格回车输入标签
    爬虫练习题(二)
    http协议简介:http各个版本的区别,http与https的区别,http与websocket的区别
    2022.11.20 学习周报
    vivo 容器平台资源运营实践
    论文阅读 | RAFT: Recurrent All-Pairs Field Transforms for Optical Flow
    EasyCVR云端录像模块无法进行下载是什么原因?该如何解决该问题?
  • 原文地址:https://blog.csdn.net/m0_67695717/article/details/126753074