vlambda博客
学习文章列表

Dubbo测试平台(一)---从1开始搭建测试平台

工作过程中一般都是针对HTTP接口进行测试,做自动化,网上更多的也是针对HTTP的接口测试框架,平台。对于Dubbo测试的貌似很少,正好最近在公司的 中台项目 开始做Dubbo接口测试,然后就想着撸一个Dubbo接口测试平台。

为什么不是从0开始搭建

项目启动准备

  • mysql服务

  • redis

  • mysql脚本
    eladmin.sql 是原项目的mysql文件
    platform.sql 是本项目的sql文件

项目启动

直接拉取本项目master分支代码,修改配置

在application-dev.yml中找到mysql,以及redis配置

#配置mysql数据源将url,username,password改成你的配置
spring:
datasource:
druid:
db-type: com.alibaba.druid.pool.DruidDataSource
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
url: jdbc:log4jdbc:mysql://localhost:3306/eladmin?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false
username: root
password: root

在application.yml中修改redis配置

  redis:
#数据库索引
database: 0
host: 127.0.0.1
port: 6379
password:

springboot项目的启动可直接通过idea启动,如果小伙伴对java项目不熟悉的可以百度一下 “idea启动maven项目”如果无法启动的话,可以给我留言,我会在文章的后面记录大家遇到的问题

第一个功能----MOCK服务

之前在公司有测试过一段时间的三方接口,应为需要对接一些外部的公司。在我方功能已经开发完毕,而对接方还没有开发完成时,通过mock来测试接口是一种非常好的方式。相关mysql表 tt_mock:

CREATE TABLE `tt_mock`  (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`mock_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'mock名称',
`mock_url` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'mock地址',
`mock_data` varchar(2048) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '签名方式',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建日期',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新日期',
PRIMARY KEY (`id`) USING BTREE,
INDEX `mock_name`(`mock_name`) USING BTREE,
INDEX `mock_url`(`mock_url`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = 'mock数据表' ROW_FORMAT = Compact;

其中mock_url用来存储需要调用服务的,这里的命名是不允许重复的。mock_data用来存储需要返回的数据结构体

    @Log("访问mock数据")
@ApiOperation("访问mock数据")
@AnonymousAccess
@GetMapping("/{mockURL}")
public ResponseEntity<Object> getMockData(@PathVariable("mockURL")String mockURL){
MockDto mockDto = mockService.getMockData(mockURL);
String mockData = mockDto.getMockData();
return new ResponseEntity<>(JSONObject.parseObject(mockData),HttpStatus.OK);
}

实例展示

根据上面的代码,我们可以通过:http://localhost:8000/api/inter/mock/ + 你存储的 mock_url即可访问MOCK数据


总结

mock功能实现已上传https://github.com/elunez/eladmincommit记录:84e5ee6ab4809fb29fdadac43c986ae2b2fc8277

下周实现dubbo单接口,多接口请求,以及生成测试报告的功能。前端实现放到后面,尽情期待。您的关注是我继续更新的动力,如有不足还请指出。