接口测试 Dubbo 接口自动化除了使用 telnetlib invoke,常用的方式还有哪些?

TD · 2020年04月26日 · 最后由 TD 回复于 2020年08月13日 · 2718 次阅读

目前我们的接口自动化测试中使用的 dubbo 接口的调用均采用 invoke 的方式调用,但 存在下面两种问题:1)、组合类型入参 2)、接口名称相同而参数不同等情况部分接口不支持 invoke 方式调用,导致无法进行测试覆盖,期望有相应的 python 接口解决以上问题。

最佳回复

你们的 dubbo 接口是 dubbo 协议么?是的话,目前开源的实现并不好使,我们是单独起了一个 java web 服务,作 dubbo 泛化调用的代理

共收到 12 条回复 时间 点赞

你们的 dubbo 接口是 dubbo 协议么?是的话,目前开源的实现并不好使,我们是单独起了一个 java web 服务,作 dubbo 泛化调用的代理

TD #2 · 2020年04月29日 Author
lofbat-github 回复

我搜了一下 dubbo 泛化调用好像和我想要的不一样,我这边主要是 robot framework 里面做接口自动化,需要把 dubbo 请求封装成一个关键字,传入 dubbo 的待测类、方法、和输入参数,类似 http 的调用。目前通过 python 的 telnetlib 的库封装了一个,但是存在复杂组合类型入参 、接口名称相同而参数不同等情况的 dubbo 接口调用不成功,所以想问下还有没有什么其他的方法可以 python 实现的?

可以再了解下 dubbo 的泛化调用。现在大部分的应该都是用这种当时自动化的。我们公司也是跟一楼一样

TD #4 · 2020年04月30日 Author
saii 回复

好的,谢谢

TD #5 · 2020年05月09日 Author
lofbat-github 回复

单独起了一个 java web 服务,作 dubbo 泛化调用的代理这个具体怎么做的能说一下吗?我问了一下我们的开发,他说比较麻烦的是参数的类型的获取,要我去解析 jar 包的 class 文件,然后 zk 服务中心去发现服务地址什么的,我有点不太清楚,能看下你们是怎么具体实现的吗?

TD 回复

参数类型是在调用时就要带上的一个必备字段,我们没做自动获取的功能;

具体实现可参考:http://dubbo.apache.org/zh-cn/docs/user/demos/generic-reference.html
官方的缓存实现在多 zk、容量限制上做的都不理想,需要自己实现;

TD #8 · 2020年05月23日 Author
lofbat-github 回复

好的,那我们手动传入吧,还有一个问题想请教一下。我在网上搜了一下资料都是通过 application.setName 和 provide 建立联系的(我理解的,不知道对不对),我们这边有 zk 注册中心,然后我领导说可以解析出来接口对应的 IP 的端口号。我现在的疑问是怎么让这两个建立连接。还是根本不需要解析出来 IP 和端口号?还请详细说明一下哈,谢谢了

jmeter+mock+dubbo,可以了解下

TD #9 · 2020年05月26日 Author

好的,我看下,谢谢啦

TD 回复

dubbo 框架都封装好了的,不需要你自己去解析 zk provider

TD #11 · 2020年08月13日 Author
lofbat-github 回复

你好,我们之前用 dubbo 泛化写了一个接口供大家使用,但是发现一个问题,就是部署到 web 服务上面一段时间后就会遇到有的接口请求失败,提示 500, No provider available from 注册的 zk 地址,(但是 zk 地址没错,去看了也有注册)。然后我本地调试起了本地的接口发现是可以请求通的,然后重启了 java -jar 我的包也可以了。上个月也遇到一次就是有请求是通的但是返回数据为空也是重启后可以了,请问一下大家知道这是什么原因吗?和缓存有关系吗?

TD #12 · 2020年08月13日 Author
lofbat-github 回复

请教一下你们的缓存是怎么实现的?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册