From be31bcf22fea28ca6835a0f46f66f22496db10fe Mon Sep 17 00:00:00 2001 From: Alex Wong Date: Fri, 8 Mar 2019 22:20:29 +0800 Subject: [PATCH] mocked test --- pkg/loadtester/task_ngrinder_test.go | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/pkg/loadtester/task_ngrinder_test.go b/pkg/loadtester/task_ngrinder_test.go index 4487e695..eae2f66e 100644 --- a/pkg/loadtester/task_ngrinder_test.go +++ b/pkg/loadtester/task_ngrinder_test.go @@ -2,30 +2,44 @@ package loadtester import ( "context" + "fmt" "github.com/stefanprodan/flagger/pkg/logging" + "gopkg.in/h2non/gock.v1" "testing" "time" ) func TestTaskNGrinder(t *testing.T) { + server := "http://ngrinder:8080" + cloneId := "960" logger, _ := logging.NewLoggerWithEncoding("debug", "console") canary := "podinfo.default" taskFactory, ok := GetTaskFactory(TaskTypeNGrinder) if !ok { t.Errorf("Failed to get ngrinder task factory") } + + defer gock.Off() + gock.New(server).Post(fmt.Sprintf("perftest/api/%s/clone_and_start", cloneId)). + Reply(200).BodyString(`{"status": "READY","id": 961}`) + gock.New(server).Get("perftest/api/961/status").Reply(200). + BodyString(`{"status": [{"status_id": "FINISHED"}]}`) + gock.New(server).Put("perftest/api/961").MatchParam("action", "stop").Reply(200). + BodyString(`{"success": true}`) + t.Run("NormalRequest", func(t *testing.T) { task, err := taskFactory(map[string]string{ - "server": "http://10.255.254.25:8080", - "clone": "960", - "username": "admin", - "passwd": "YWRtaW4=", + "server": server, + "clone": cloneId, + "username": "admin", + "passwd": "YWRtaW4=", + "pollInterval": "1", }, canary, logger) if err != nil { t.Fatalf("Failed to create ngrinder task: %s", err.Error()) return } - ctx, _ := context.WithTimeout(context.Background(), time.Second*5) + ctx, _ := context.WithTimeout(context.Background(), time.Second*3) task.Run(ctx) <-ctx.Done() })