因组织要求,需要一个 Dubbo 接口的测试工具,经多方研究,遂决定要写一个不需要编写任何代码,直接在页面上填写数据就能直接运行 Dubbo 接口的测试工具,类似于 Postman 编写 http 接口一样简单。

目前实现的功能:

  1. 解析相关 jar 包,把接口、函数、函数参数直接显示在 web 界面
  2. 每个版本接口、函数的对比,并在 web 界面显示差异
  3. 可直接在界面上填写需要的数据,一键完成数据整理、发送,包含返回数据的显示
  4. 现已支持 java 大部分的数据类型,不仅包括基础类型(String、Boolean、Byte、Double、Integer、Date、Void)等;容器类型(Map、HashMap、List、HashSet、Vector)等;还支持 Object 对象的传递,包含 Enum;对于泛型或者一些特殊在运行过程中才知道的对象,web 界面可以支持测试人员自定义对象属性
  5. 用例的创建

后期准备实现的功能:

  1. 用例的断言
  2. 测试计划
  3. 创建 mock 数据服务
  4. 完全自定义接口、函数及函数参数

接口列表界面

函数列表界面

用例添加和调试界面

自定义数据结构界面

需要考虑的点

class PDict(dict):
    def __hash__(self):
        return id(self)

class PList(list):
    def __hash__(self):
        return id(self)

比方说 java 中的数据类型为:
这里表示有三个参数,第一个参数为 Dict 类型,第二个参数为 String 类型,第三个参数为自定义枚举类型

Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;Ljava/lang/String;Lcom/test/enums/DataAPIEnum;

翻译成前后端都认识的类型为:

[{"valueMetaType": "", "keyChildren": [{"children": [], "type": "String", "name": "String", "metaType": ""}], "name": "Map", "keyType": "String", "valueChildren": [{"metaType": "", "type": "Object", "children": [], "name": "Object"}], "keyMetaType": "", "valueType": "Object"}, {"metaType": "", "type": "String", "children": [], "name": "String"}, {"metaType": "com/test/enums/DataAPIEnum", "type": "Enum", "children": [], "name": "Enum"}]

然后把需要的值填入上述 json 里面的 children 字段就好,这个大家看过就好,没准你们就更好的想法也不一定

PS


↙↙↙阅读原文可查看相关链接,并与作者交流