Skip to content

Commit 689c5ce

Browse files
author
xuguang
committed
增加单元测试和集成测试文档 & 问题修改
1 parent e120b32 commit 689c5ce

File tree

3 files changed

+51
-4
lines changed

3 files changed

+51
-4
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
2+
---
3+
4+
![kafka-manager-logo](../assets/images/common/logo_name.png)
5+
6+
**一站式`Apache Kafka`集群指标监控与运维管控平台**
7+
8+
---
9+
10+
11+
# LogiKM单元测试和集成测试
12+
13+
## 1、单元测试
14+
### 1.1 单元测试介绍
15+
单元测试又称模块测试,是针对软件设计的最小单位——程序模块进行正确性检验的测试工作。
16+
其目的在于检查每个程序单元能否正确实现详细设计说明中的模块功能、性能、接口和设计约束等要求,
17+
发现各模块内部可能存在的各种错误。单元测试需要从程序的内部结构出发设计测试用例。
18+
多个模块可以平行地独立进行单元测试。
19+
20+
### 1.2 LogiKM单元测试思路
21+
LogiKM单元测试思路主要是测试Service层的方法,通过罗列方法的各种参数,
22+
判断方法返回的结果是否符合预期。单元测试的基类加了@SpringBootTest注解,即每次运行单测用例都启动容器
23+
24+
### 1.3 LogiKM单元测试注意事项
25+
1. 单元测试用例在kafka-manager-core以及kafka-manager-extends下的test包中
26+
2. 配置在resources/application.yml,包括运行单元测试用例启用的数据库配置等等
27+
3. 编译打包项目时,加上参数-DskipTests可不执行测试用例,例如使用命令行mvn -DskipTests进行打包
28+
29+
30+
31+
32+
## 2、集成测试
33+
### 2.1 集成测试介绍
34+
集成测试又称组装测试,是一种黑盒测试。通常在单元测试的基础上,将所有的程序模块进行有序的、递增的测试。
35+
集成测试是检验程序单元或部件的接口关系,逐步集成为符合概要设计要求的程序部件或整个系统。
36+
37+
### 2.2 LogiKM集成测试思路
38+
LogiKM集成测试主要思路是对Controller层的接口发送Http请求。
39+
通过罗列测试用例,模拟用户的操作,对接口发送Http请求,判断结果是否达到预期。
40+
本地运行集成测试用例时,无需加@SpringBootTest注解(即无需每次运行测试用例都启动容器)
41+
42+
### 2.3 LogiKM集成测试注意事项
43+
1. 集成测试用例在kafka-manager-web的test包下
44+
2. 因为对某些接口发送Http请求需要先登陆,比较麻烦,可以绕过登陆,方法可见教程见docs -> user_guide -> call_api_bypass_login
45+
3. 集成测试的配置在resources/integrationTest-settings.properties文件下,包括集群地址,zk地址的配置等等
46+
4. 如果需要运行集成测试用例,需要本地先启动LogiKM项目
47+
5. 编译打包项目时,加上参数-DskipTests可不执行测试用例,例如使用命令行mvn -DskipTests进行打包

kafka-manager-web/src/test/java/com/xiaojukeji/kafka/manager/web/api/versionone/op/OpTopicControllerTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ private TopicDeletionDTO getTopicDeletionDTO() {
7272
return deletionDTO;
7373
}
7474

75-
@Test
75+
@Test(description = "测试创建Topic")
7676
public void createCommonTopicTest() {
7777
String url = baseUrl + "/api/v1/op/topics";
7878

@@ -115,7 +115,7 @@ private void createCommonTopic(String url) {
115115
Assert.assertEquals(result.getBody().getCode(), ResultStatus.SUCCESS.getCode());
116116
}
117117

118-
@Test
118+
@Test(description = "测试删除Topic")
119119
public void deleteTopicsTest() {
120120
String url = baseUrl + "/api/v1/op/topics";
121121
// PARAM_ILLEGAL

kafka-manager-web/src/test/resources/integrationTest-settings.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ alive-brokerId = 1
88
# 集群名称
99
cluster.name = integrationTestCluster
1010
# 集群地址
11-
cluster.bootstrap.address = 10.190.46.198:9093,10.190.14.237:9093,10.190.50.65:9093
11+
cluster.bootstrap.address = 127.0.0.1
1212
# zk地址
13-
cluster.zookeeper.address = 10.190.46.198:2181,10.190.14.237:2181,10.190.50.65:2181/xg
13+
cluster.zookeeper.address = 127.0.0.1
1414
# 物理集群在数据库中的Id
1515
physicalCluster.id.in.mysql = 1
1616
# 逻辑集群在数据库中的Id(新创建的逻辑集群并不能立即加载到缓存中,所以需要用已创建好的)

0 commit comments

Comments
 (0)