Skip to content

Commit 95a15c7

Browse files
committed
feat:添加测试用例
添加了CPU使用率检查和内存使用率检查的测试用例
1 parent 093bd66 commit 95a15c7

File tree

2 files changed

+94
-0
lines changed

2 files changed

+94
-0
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package io.dongtai.iast.agent.fallback.checker;
2+
3+
import com.alibaba.fastjson2.JSONObject;
4+
import io.dongtai.iast.agent.IastProperties;
5+
import io.dongtai.iast.agent.fallback.checker.impl.CpuUsageChecker;
6+
import io.dongtai.iast.common.entity.performance.PerformanceMetrics;
7+
import io.dongtai.iast.common.entity.performance.metrics.CpuInfoMetrics;
8+
import io.dongtai.iast.common.enums.MetricsKey;
9+
import org.junit.Assert;
10+
import org.junit.Test;
11+
12+
import java.util.Properties;
13+
14+
/**
15+
* 检查CPU使用率
16+
*/
17+
public class CpuUsageCheckerTest {
18+
19+
@Test
20+
public void testIsPerformanceOverLimit() {
21+
22+
23+
// 创建配置参数对象
24+
Properties cfg = new Properties();
25+
cfg.setProperty("iast.remoteSync.performanceLimit.maxThreshold.cpuUsage", "{\"cpuUsagePercentage\":80.0}");
26+
27+
//初始化临时目录
28+
IastProperties.initTmpDir();
29+
30+
// 创建测试用例对象
31+
CpuUsageChecker cpuUsageChecker = new CpuUsageChecker();
32+
// 创建模拟性能指标对象
33+
PerformanceMetrics nowMetrics = new PerformanceMetrics();
34+
CpuInfoMetrics cpuInfoMetrics = new CpuInfoMetrics();
35+
cpuInfoMetrics.setCpuUsagePercentage(81.0);
36+
37+
nowMetrics.setMetricsKey(MetricsKey.CPU_USAGE);
38+
nowMetrics.setMetricsValue(cpuInfoMetrics);
39+
40+
// CPU使用率超过阈值,应该返回true
41+
Assert.assertTrue(cpuUsageChecker.isPerformanceOverLimit(nowMetrics, cfg));
42+
43+
// 修改性能指标对象的CPU使用率为70%
44+
cpuInfoMetrics.setCpuUsagePercentage(70.0);
45+
// CPU使用率未超过阈值,应该返回false
46+
Assert.assertFalse(cpuUsageChecker.isPerformanceOverLimit(nowMetrics, cfg));
47+
}
48+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package io.dongtai.iast.agent.fallback.checker;
2+
3+
import com.alibaba.fastjson2.JSONObject;
4+
import io.dongtai.iast.agent.IastProperties;
5+
import io.dongtai.iast.agent.fallback.FallbackConfig;
6+
import io.dongtai.iast.agent.fallback.checker.impl.MemUsageChecker;
7+
import io.dongtai.iast.common.entity.performance.PerformanceMetrics;
8+
import io.dongtai.iast.common.entity.performance.metrics.MemoryUsageMetrics;
9+
import io.dongtai.iast.common.enums.MetricsKey;
10+
import org.junit.Assert;
11+
import org.junit.Test;
12+
13+
import java.util.Properties;
14+
15+
public class MemUsageCheckerTest {
16+
17+
18+
/**
19+
* 测试内存检查
20+
*/
21+
@Test
22+
public void testIsPerformanceOverLimit() {
23+
// 配置参数
24+
Properties cfg = new Properties();
25+
// 设置配置内存阈值
26+
cfg.setProperty("iast.remoteSync.performanceLimit.maxThreshold.memoryUsage", "{\"committed\":1024," +
27+
"\"init\":1024,\"max\":1024,\"memUsagePercentage\":80.0,\"systemMaxLimit\":-1," +
28+
"\"trulyMaxMem\":1024,\"used\":1024}\n");
29+
//初始化临时目录
30+
IastProperties.initTmpDir();
31+
// 创建检查器对象
32+
MemUsageChecker memUsageChecker = new MemUsageChecker();
33+
// 创建模拟性能指标对象
34+
PerformanceMetrics nowMetrics = new PerformanceMetrics();
35+
nowMetrics.setMetricsKey(MetricsKey.MEM_USAGE);
36+
nowMetrics.setMetricsValue(new MemoryUsageMetrics(1024L, 1024L, 1024L, 1024L));
37+
// 内存使用率超过阈值,应该返回true
38+
Assert.assertTrue(memUsageChecker.isPerformanceOverLimit(nowMetrics, cfg));
39+
40+
41+
// 修改性能指标对象的内存使用率为70%
42+
nowMetrics.setMetricsValue(new MemoryUsageMetrics(1024L, 500L, 1024L, 1024L));
43+
// 内存使用率未超过阈值,应该返回false
44+
Assert.assertFalse(memUsageChecker.isPerformanceOverLimit(nowMetrics, cfg));
45+
}
46+
}

0 commit comments

Comments
 (0)