92 lines
2.6 KiB
Go
92 lines
2.6 KiB
Go
package monitoring_test
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/user-management-system/internal/monitoring"
|
|
)
|
|
|
|
// TestNewMetrics 测试监控指标初始化
|
|
func TestNewMetrics(t *testing.T) {
|
|
m := monitoring.NewMetrics()
|
|
if m == nil {
|
|
t.Fatal("NewMetrics() returned nil")
|
|
}
|
|
}
|
|
|
|
// TestMetricsGetCollectors 测试获取 Prometheus 收集器列表不为空
|
|
func TestMetricsGetCollectors(t *testing.T) {
|
|
m := monitoring.NewMetrics()
|
|
collectors := m.GetMetrics()
|
|
if len(collectors) == 0 {
|
|
t.Error("GetMetrics() should return non-empty collector list")
|
|
}
|
|
}
|
|
|
|
// TestIncHTTPRequest 测试HTTP请求计数不 panic
|
|
func TestIncHTTPRequest(t *testing.T) {
|
|
m := monitoring.NewMetrics()
|
|
m.IncHTTPRequest("GET", "/api/v1/users", 200)
|
|
m.IncHTTPRequest("POST", "/api/v1/users", 201)
|
|
m.IncHTTPRequest("GET", "/api/v1/users", 500)
|
|
}
|
|
|
|
// TestObserveHTTPRequestDuration 测试HTTP请求耗时记录不 panic
|
|
func TestObserveHTTPRequestDuration(t *testing.T) {
|
|
m := monitoring.NewMetrics()
|
|
m.ObserveHTTPRequestDuration("GET", "/api/v1/users", 50*time.Millisecond)
|
|
m.ObserveHTTPRequestDuration("POST", "/api/v1/auth/login", 200*time.Millisecond)
|
|
}
|
|
|
|
// TestIncDBQuery 测试数据库查询计数不 panic
|
|
func TestIncDBQuery(t *testing.T) {
|
|
m := monitoring.NewMetrics()
|
|
m.IncDBQuery("SELECT", "users")
|
|
m.IncDBQuery("INSERT", "users")
|
|
m.IncDBQuery("UPDATE", "users")
|
|
m.IncDBQuery("DELETE", "users")
|
|
}
|
|
|
|
// TestObserveDBQueryDuration 测试数据库查询耗时记录不 panic
|
|
func TestObserveDBQueryDuration(t *testing.T) {
|
|
m := monitoring.NewMetrics()
|
|
m.ObserveDBQueryDuration("SELECT", "users", 5*time.Millisecond)
|
|
m.ObserveDBQueryDuration("INSERT", "users", 10*time.Millisecond)
|
|
}
|
|
|
|
// TestIncUserRegistration 测试用户注册计数不 panic
|
|
func TestIncUserRegistration(t *testing.T) {
|
|
m := monitoring.NewMetrics()
|
|
m.IncUserRegistration("normal")
|
|
m.IncUserRegistration("oauth")
|
|
}
|
|
|
|
// TestIncUserLogin 测试用户登录计数不 panic
|
|
func TestIncUserLogin(t *testing.T) {
|
|
m := monitoring.NewMetrics()
|
|
m.IncUserLogin("password", "success")
|
|
m.IncUserLogin("password", "fail")
|
|
m.IncUserLogin("oauth", "success")
|
|
}
|
|
|
|
// TestSetActiveUsers 测试活跃用户数设置不 panic
|
|
func TestSetActiveUsers(t *testing.T) {
|
|
m := monitoring.NewMetrics()
|
|
m.SetActiveUsers("daily", 1000)
|
|
m.SetActiveUsers("weekly", 5000)
|
|
}
|
|
|
|
// TestSetMemoryUsage 测试内存使用量设置不 panic
|
|
func TestSetMemoryUsage(t *testing.T) {
|
|
m := monitoring.NewMetrics()
|
|
m.SetMemoryUsage(1024 * 1024 * 100) // 100MB
|
|
}
|
|
|
|
// TestSetGoroutines 测试协程数设置不 panic
|
|
func TestSetGoroutines(t *testing.T) {
|
|
m := monitoring.NewMetrics()
|
|
m.SetGoroutines(50)
|
|
m.SetGoroutines(100)
|
|
}
|