接口测试 请教关于:python 调用 dubbo Hessian 协议

Man · 2017年08月28日 · 最后由 TD 回复于 2020年04月24日 · 2517 次阅读

本人会点简单的 python 代码,最近琢磨: python 调用 dubbo,网上找了个例子 看不懂,请知道的帮忙解释一下。
我对 dubbo 不了解,看过官方的文档也看不懂水平有限。java 一点不懂
感谢!

# -*- coding:utf-8 -*-
from pyhessian.client import HessianProxy
from pyhessian import protocol
import json

def InvokeHessian(service, interface, method, req, retcode='000000'):
    try:
        url = 'http://192.168.0.1:10883/' + service + '.' + interface

        print 'URL:\t%s' % url
        print 'Method:\t%s' % method
        print 'Req:\t%s' % req
        res = getattr(HessianProxy(url), method)(req)
        print 'Res:\t%s' % json.dumps(res, ensure_ascii=False)

    except Exception, e:
        print e


if __name__ == '__main__':
    service = 'com.service.common.api.service'
    interface = 'TestHessianService'
    method = 'testHessian'
    req = protocol.object_factory('com.service.common.api.service.model.req.TestHessianRequest',       
                                  param1='lovesoo', param2=10086)
    # model.req是啥意思?
    # protocol.object_factory构造的 是个什么参数?
    # dubbo 有像 http接口那样的 接口文档吗?
    InvokeHessian(service, interface, method, req)

共收到 3 条回复 时间 点赞

这个示例搞得太麻烦,没有抓住 Hession 接口的关键点。
你只需要知道测试接口的地址和方法、入参及返回结果就行。
proxy = HessianProxy('这里是 hession 接口地址')
res = proxy.‘这里是接口地址下的接口方法 method’(‘接口入参’,'')
这 res 就是返回值了

请问一下 dubbo 使用 telnet 方式调用存在 1)、组合类型入参 2)、接口名称相同而参数不同等情况部分接口不支持 invoke 方式调用,无法进行测试覆盖的问题有什么好的解决办法吗?

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