Python dubbo接口自动化测试的爬坑记!

问题背景

最近公司业务部门来了新需求,主要业务数据需要定期走接口批次上传银行存档以备核查。

公司底层接口是dubbo类型,使用dubbo_telnet一直以来测得也算是顺风顺水,日常接口入参大多以json字符串的格式传入,这次却遇到了一个奇葩问题,传参怎么都传不过去,直接报错找不到接口方法…

下面跟大家分享一下这个坑

问题排查

先来上一下报错截图

Python dubbo接口自动化测试的爬坑记!

直接报错类中找不到此方法,首先确认了ip和端口号没有问题,再来核对一下接口文档中的请求类名和方法名明明有这个接口啊,接口地址也没错。

了解到公司开发一贯的尿性,报错信息从来不写的清楚直白,入参如果传错的话也有可能会这么报。

那么接下来继续排查。

第三方银行接口文档需要json格式入参。

开发提供swagger文档入参也是json数据格式,可以看一下我的入参格式正确,两个参数一个ifCertUserlbfo value是list格式,另一个参数是batchNum,value是字符串格式。

第三方接口文档也是这个格式啊,还能有这个幺蛾子哦…

这…还给我报这个错误怎么忍,我就只能去找开发哥哥了。

Python dubbo接口自动化测试的爬坑记!

根据swagger文档,我的入参格式为

Python dubbo接口自动化测试的爬坑记!

开发哥哥上来第一句就是“哎~怎么会报这个错,你ip和端口号写对没,方法名有没有拼错啊,参数有没有拼错少写漏写的”

以上一段话统统被我以没错我保证回决后,他终于打开日志让我复现问题了。

打开日志一看特喵日志都没进来,当下就说我入参格式有问题,可是swagger文档清清楚楚form-data格式啊。

当下大佬一顿骚操作,接口运行成功了,如下格式。

当时测试任务重,搞了一下午的问题能调通已经很开心了。

Python dubbo接口自动化测试的爬坑记!

本来正常入参如下:

Python dubbo接口自动化测试的爬坑记!

复盘与总结

测试完成后总结时细细想来:

不需要传key值,两个value值一个list一个string以逗号分割放在一个字符串里 为什么要这么传参呢,既不好理解也需要花时间和测试同学讲清楚啊。

又看了下原来是想直接拿到字符串,以逗号分割一下,分割的两个参数便可以直接作为参数传给第三方接口调用!

前因后果梳理一遍,开发为了偷懒期望拿到手的数据做最少的处理便可以传给外部接口,不按规范来开发所有的处理都期望交给上层系统解决。

按照自己最舒服的方式来,实际处理逻辑和接口文档显示的入参格式完全不一样,但是设计逻辑又没有提前和测试讲清楚,给测试造成了误解,浪费了大半个下午时间排查问题调试接口。

处理方案与收获

想明白后这个坑也和技术部领导反应清楚了,对开发提出要求,既然需要我们来测试,那么也要开发来做好配合,如果有特殊变更需要及时通知测试保持信息畅通,一切按照规范来行事。

作为测试我们不能完全被动,遇到阻碍问题时需要向上推动,如果开发有做的不规范影响流程的地方,要及时向领导反映和相关负责人探讨解决方案,改进项目流程。

同时也能体现出自己发现问题解决问题的能力。

工作中除了要努力解决技术性问题外,还需要具备更多软实力还能一步步往上走。

Python dubbo接口自动化测试的爬坑记!
另外,欢迎加入软件测试技术交流群 313782132 ~进群可领取免费软件测试资料以及群内测试大牛解惑!

测试工程师职业发展路线图

功能测试 — 接口测试 — 自动化测试 — 测试开发 — 测试架构师

加油吧,测试人!如果你需要提升规划,那就行动吧,在路上总比在起点观望的要好。事必有法,然后有成。

资源不错就给个推荐吧~