balance/balance_test.go
2025-05-23 21:59:30 +08:00

68 lines
1.4 KiB
Go

// Package dispatch...
//
// Description : dispatch...
//
// Author : go_developer@163.com<张德满>
//
// Date : 2021-04-01 6:48 下午
package balance
import (
"fmt"
"testing"
"github.com/go-playground/assert/v2"
"git.zhangdeman.cn/gateway/balance/dispatch"
"git.zhangdeman.cn/gateway/balance/define"
)
var list = []*define.SeverNode{
{"127.0.0.1:8080", "127.0.0.1", 8080, 0, 1},
{"127.0.0.1:8081", "127.0.0.1", 8081, 0, 1},
{"127.0.0.1:8082", "127.0.0.1", 8082, 0, 1},
{"127.0.0.1:8083", "127.0.0.1", 8083, 0, 1},
}
// TestRand 测试随机选节点
//
// Author : go_developer@163.com<张德满>
//
// Date : 6:48 下午 2021/4/1
func TestRand(t *testing.T) {
result := make(map[string]int)
s := NewServer(list, dispatch.NewRand())
for i := 0; i < 10000; i++ {
node, _ := s.Get()
if _, exist := result[node]; !exist {
result[node] = 0
}
result[node]++
}
fmt.Printf("%+v", result)
}
// TestRoundRobin 轮询测试
//
// Author : go_developer@163.com<张德满>
//
// Date : 8:12 下午 2021/4/1
func TestRoundRobin(t *testing.T) {
result := make(map[string]int)
s := NewServer(list, dispatch.NewRoundRobin())
for i := 0; i < 10000; i++ {
node, _ := s.Get()
if _, exist := result[node]; !exist {
result[node] = 0
}
result[node]++
}
assert.Equal(t, 2500, result["127.0.0.1:8080"])
assert.Equal(t, 2500, result["127.0.0.1:8081"])
assert.Equal(t, 2500, result["127.0.0.1:8082"])
assert.Equal(t, 2500, result["127.0.0.1:8083"])
}