【工具推荐】自己封装的 dubbo 接口测试库(dubborequests)

random
random
订阅者
10532
文章
0
粉丝
测试交流10202字数 548阅读1分49秒阅读模式

一、安装(python 版本建议 3.7 以上)

pip install dubborequests

二、升级包

pip install --upgrade dubborequests

三、示例

获取 dubbo 服务详情

# 导入
import dubborequests
from dubborequests.config import Config
Config.zookeeper_url_list = ['192.168.240.15:2181', '192.168.240.15:2182', '192.168.240.15:2183']
# 获取dubbo服务详情
data = dubborequests.search('cn.com.xxx.sso.ehr.api.dubbo.SsoEmpInfoService')

获取服务下的所有方法

# 导入
import dubborequests
from dubborequests.config import Config
Config.zookeeper_url_list = ['192.168.240.15:2181', '192.168.240.15:2182', '192.168.240.15:2183']
# 获取dubbo服务下的所有方法
service_data = dubborequests.list('cn.com.xxx.sso.ehr.api.dubbo.SsoEmpInfoService')
# 获取dubbo服务指定的方法
method_data = dubborequests.list('cn.com.xxx.sso.ehr.api.dubbo.SsoEmpInfoService', 'login')

通过 zookeeper 获取服务的 ip 和端口, Telnet 命令测试 dubbo 接口

import dubborequests
from dubborequests import Config
# 先配置zookeeper中心地址
Config.zookeeper_url_list = ['192.168.240.15:2181', '192.168.240.15:2182', '192.168.240.15:2183']
service_name = "cn.com.xxxxx.sso.ehr.api.dubbo.SsoEmpInfoService"
method_name = "login"
data = {
"account": "xxxx",
"password": "xxxx"
}
# 通过zookeeper获取服务的ip和端口, Telnet命令测试dubbo接口
res_data = dubborequests.zk_invoke(service_name, method_name, data)
# 如果入参类型是java.lang.String
invoke_data1 = {
"account": "xxxx"
}
# 如果入参类型是java.util.List
invoke_data2 = {
"list_": ['数组的内容']
}
# 如果入参类型是java.util.Map、java.util.HashMap或者自定义对象名(com.your.package.BeanName)
invoke_data3 = {
"map_": {
"age":27,
"name": "clearlove7"
}
}
# 如果无需入参类型, data为空dict即可
invoke_data4 = {}
# 组合入参类型1, java.lang.String、java.lang.String
invoke_data5 = {
"account": "xxxx",
"password": "xxxx"
}
# 组合入参类型2, java.lang.String、java.util.List
invoke_data6 = {
"account": "xxxx",
"list_": ['数组的内容']
}
# 组合入参类型3, cn.com.xxx.xxx.dto.xxx.ProductQuery、java.util.Map
invoke_data7 = {
"map1": {
"product": 10086,
"num": 1
},
"map2": {
"age": 27,
"name": "clearlove7"
}
}
# 注意:
#1、len(data)必须等于方法入参个数
#2、data里面的key可以随意命名,data必须为dict类型
#3、data里面的key-value排序必须按照方法定义的入参顺序
# 详细可参照:https://github.com/thubbo/jmeter-plugins-for-apache-dubbo/wiki/ParameterComparisonTable

Telnet 命令测试 dubbo 接口

import dubborequests
invoke_data = {
"ip": 'xxxx',
"port": 7777,
"service_name": "cn.com.xxxxx.sso.ehr.api.dubbo.SsoEmpInfoService",
"method_name": "login",
"data": {
"account": "xxxx",
"password": "xxxx"
}
}
# Telnet命令测试dubbo接口
res_data = dubborequests.telnet_invoke(*invoke_data)
# 入参例子参考上面👆🏻

四、dubborequests PyPi 地址

PyPi 地址:https://pypi.org/project/dubborequests/

五、基于 dubbo 接口测试库转换成 http 便捷请求

项目地址:https://github.com/JokerChat/dubbo_fastapi文章源自玩技e族-https://www.playezu.com/297946.html 文章源自玩技e族-https://www.playezu.com/297946.html

 
评论  10  访客  10
    • 底层贫困人员
      底层贫困人员 9

      没试过依赖环境这种情况,不过一般都可以用 Telnet 命令调用

      • Mr0Simple
        Mr0Simple 9

        大佬 dubbo 存在依赖环境的 怎么处理才能用 dubborequests 库呀,
        dependency

        • tester
          tester 9

          好的,谢谢大佬

          • 底层贫困人员
            底层贫困人员 9

            已经新增好了,telnet_list 方法,下载最新包即可

            • tester
              tester 9

              好的,谢谢

              • 底层贫困人员
                底层贫困人员 9

                可以,需要改造一下,新增一个方法,入参是 ip、端口、服务名、方法名 (非必填)

                • tester
                  tester 9

                  仅楼主可见

                  • 底层贫困人员
                    底层贫困人员 9

                    这种暂时没遇到过

                    • van
                      van 9

                      dubbo 有上下文参数 attachment 怎么传呢

                      • 麻薯
                        麻薯 9

                        牛蛙笋货大佬

                      匿名

                      发表评论

                      匿名网友
                      确定

                      拖动滑块以完成验证