ci: add http load balancing test cases

This commit is contained in:
fatedier 2019-08-15 23:36:05 +08:00
parent 1ad50d5982
commit e68012858e

View File

@ -67,6 +67,20 @@ custom_domains = test2.com
health_check_type = http health_check_type = http
health_check_interval_s = 1 health_check_interval_s = 1
health_check_url = /health health_check_url = /health
[http3]
type = http
local_port = 15005
custom_domains = test.balancing.com
group = test-balancing
group_key = 123
[http4]
type = http
local_port = 15006
custom_domains = test.balancing.com
group = test-balancing
group_key = 123
` `
func TestHealthCheck(t *testing.T) { func TestHealthCheck(t *testing.T) {
@ -124,6 +138,22 @@ func TestHealthCheck(t *testing.T) {
defer httpSvc2.Stop() defer httpSvc2.Stop()
} }
httpSvc3 := mock.NewHttpServer(15005, func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("http3"))
})
err = httpSvc3.Start()
if assert.NoError(err) {
defer httpSvc3.Stop()
}
httpSvc4 := mock.NewHttpServer(15006, func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("http4"))
})
err = httpSvc4.Start()
if assert.NoError(err) {
defer httpSvc4.Stop()
}
time.Sleep(200 * time.Millisecond) time.Sleep(200 * time.Millisecond)
// ****** start frps and frpc ****** // ****** start frps and frpc ******
@ -244,4 +274,20 @@ func TestHealthCheck(t *testing.T) {
assert.NoError(err) assert.NoError(err)
assert.Equal(200, code) assert.Equal(200, code)
assert.Equal("http2", body) assert.Equal("http2", body)
// ****** load balancing type http ******
result = make([]string, 0)
code, body, _, err = util.SendHttpMsg("GET", "http://127.0.0.1:14000/xxx", "test.balancing.com", nil, "")
assert.NoError(err)
assert.Equal(200, code)
result = append(result, body)
code, body, _, err = util.SendHttpMsg("GET", "http://127.0.0.1:14000/xxx", "test.balancing.com", nil, "")
assert.NoError(err)
assert.Equal(200, code)
result = append(result, body)
assert.Contains(result, "http3")
assert.Contains(result, "http4")
} }