ci: add http load balancing test cases
@@ -67,6 +67,20 @@ custom_domains = test2.com
health_check_type = http
health_check_interval_s = 1
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) {
@@ -124,6 +138,22 @@ func TestHealthCheck(t *testing.T) {
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)
// ****** start frps and frpc ******
@@ -244,4 +274,20 @@ func TestHealthCheck(t *testing.T) {
assert.NoError(err)
assert.Equal(200, code)
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")
}
