xfy 2ffcfd782b style(e2e): 清理代码格式和未使用的导入
- 删除 loadbalance_e2e_test.go 中未使用的 encoding/json 导入
- 删除 ssl_e2e_test.go 中未使用的 net/http 导入
- 格式化 testutil/config.go 中的结构体字段对齐
- 为多个文件添加末尾换行符

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-23 15:36:42 +08:00

99 lines
2.2 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//go:build e2e
// Package testutil 提供 E2E 测试的工具函数。
//
// 包含 SSL/TLS 测试辅助函数。
//
// 作者xfy
package testutil
import (
"crypto/tls"
"crypto/x509"
"net/http"
"os"
"time"
)
// CreateTLSClient 创建信任指定证书的 HTTPS 客户端。
//
// 参数:
// - certPath: CA 证书文件路径
//
// 返回配置好的 HTTP 客户端,信任指定的证书。
func CreateTLSClient(certPath string) (*http.Client, error) {
caCert, err := os.ReadFile(certPath)
if err != nil {
return nil, err
}
caCertPool := x509.NewCertPool()
caCertPool.AppendCertsFromPEM(caCert)
return &http.Client{
Timeout: DefaultClientTimeout,
Transport: &http.Transport{
TLSClientConfig: &tls.Config{
RootCAs: caCertPool,
},
},
}, nil
}
// CreateTLSClientWithVersion 创建带版本限制的 HTTPS 客户端。
//
// 参数:
// - certPath: CA 证书文件路径
// - minVersion: 最小 TLS 版本
// - maxVersion: 最大 TLS 版本
func CreateTLSClientWithVersion(certPath string, minVersion, maxVersion uint16) (*http.Client, error) {
caCert, err := os.ReadFile(certPath)
if err != nil {
return nil, err
}
caCertPool := x509.NewCertPool()
caCertPool.AppendCertsFromPEM(caCert)
return &http.Client{
Timeout: DefaultClientTimeout,
Transport: &http.Transport{
TLSClientConfig: &tls.Config{
RootCAs: caCertPool,
MinVersion: minVersion,
MaxVersion: maxVersion,
},
},
}, nil
}
// CreateInsecureTLSClient 创建跳过证书验证的 HTTPS 客户端。
//
// 用于测试自签名证书场景,不应在生产环境使用。
func CreateInsecureTLSClient() *http.Client {
return &http.Client{
Timeout: DefaultClientTimeout,
Transport: &http.Transport{
TLSClientConfig: &tls.Config{
InsecureSkipVerify: true,
},
},
}
}
// CreateDefaultHTTPClient 创建默认 HTTP 客户端。
//
// 用于非 SSL 测试场景。
func CreateDefaultHTTPClient() *http.Client {
return &http.Client{
Timeout: DefaultClientTimeout,
}
}
// CreateHTTPClientWithTimeout 创建带自定义超时的 HTTP 客户端。
func CreateHTTPClientWithTimeout(timeout time.Duration) *http.Client {
return &http.Client{
Timeout: timeout,
}
}