中午时间去原来的项目组解决一个自动化运行过程中的异常错误,先说下我的排查过程:
12:20 到项目组,在电脑上启动Pycharm工具,最后发现没有chrome浏览器,没法调试;
12:30 到运行环境电脑上,重建任务,开始运行测试任务,然后等着报错......;
12:50 出现错误信息,发现是在send_keys之前不能clear错误,回忆了下之前遇到过这个问题,于是找到代码中对应的处理方法,发现没加异常处理机制,加上异常处理;
1:00 debug任务,咦......send_keys成功了呀,怎么输入框中没有内容呢?有点懵逼。于是看了遍代码,没发现问题啊......
1:10 突然想起来是不是页面元素定位有问题呢,F12查看页面元素,我擦,原来是依据class_name查找到了3个元素,但是提供的索引值指向的元素并不是输入框。尴尬了,于是修改了下索引值,由1改成2;
1:15 再次运行,一切ok。
总结耗时55分钟,中午也没休息,现在跟小鸡打昏了头一样。
。
。
。
走在回来的路上我就发现我错了,犯了很严重的错误,本来只需要10分钟就可以解决的问题,我犯了在排查问题时的通病——先复现再去解决。
。
。
。
反思后问题的处理流程应该是这样的:
1.查日志,日志都有记录的,能看到错误信息,和自己复现时错误是一样的;
2.不要先怀疑代码问题,先想是不是配置、用例问题,页面元素的获取的对不对,我这里用到了索引,所以都要先排查一遍(如果我先走了这一步,估计问题在这里就解决了)
3.最后才是debug代码
通过这个问题,更深层次的原因可能是这些:
1.撸代码前必要的业务逻辑设计不够,导致边撸代码边想逻辑,最后整个业务处理逻辑不是特别清晰;
2.日常调试和解决问题时没有记录的习惯,导致出现问题时思路不清晰;