From a89d83869c1ec4fef0b2166b153fb9643b91f5b9 Mon Sep 17 00:00:00 2001 From: buyuxiang <347586493@qq.com> Date: Tue, 25 Jan 2022 19:58:52 +0800 Subject: [PATCH] modify rendezvous bonudary testcase Change-Id: I88329ed6007c17be779b9c2845113e5d090671b2 --- examples/rendezvous_test.go | 6 +--- examples/rendezvous_test.json | 4 +-- runner_test.go | 66 +++++++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+), 8 deletions(-) diff --git a/examples/rendezvous_test.go b/examples/rendezvous_test.go index 3b546ae5..091df3f6 100644 --- a/examples/rendezvous_test.go +++ b/examples/rendezvous_test.go @@ -15,7 +15,6 @@ var rendezvousTestcase = &hrp.TestCase{ "b": 3.45, }), TestSteps: []hrp.IStep{ - // rendezvous boundary test hrp.NewStep("test negative number"). Rendezvous("test negative number"). WithUserNumber(-1), @@ -38,11 +37,8 @@ var rendezvousTestcase = &hrp.TestCase{ hrp.NewStep("test negative timeout"). Rendezvous("test negative timeout"). WithTimeout(-1000), - // rendezvous normal test hrp.NewStep("waiting for all users in the beginning"). - Rendezvous("rendezvous0"). - WithUserNumber(10). - WithTimeout(3000), + Rendezvous("rendezvous0"), hrp.NewStep("rendezvous before get"). Rendezvous("rendezvous1"). WithUserNumber(10). diff --git a/examples/rendezvous_test.json b/examples/rendezvous_test.json index ea560725..390bd346 100644 --- a/examples/rendezvous_test.json +++ b/examples/rendezvous_test.json @@ -62,9 +62,7 @@ { "name": "waiting for all users in the beginning", "rendezvous": { - "name": "rendezvous0", - "number": 10, - "timeout": 3000 + "name": "rendezvous0" } }, { diff --git a/runner_test.go b/runner_test.go index 2fb64fcf..8996a56c 100644 --- a/runner_test.go +++ b/runner_test.go @@ -1,6 +1,7 @@ package hrp import ( + "math" "os" "os/exec" "testing" @@ -54,3 +55,68 @@ func TestHttpRunner(t *testing.T) { t.Fatalf("run testcase error: %v", err) } } + +func TestInitRendezvous(t *testing.T) { + rendezvousBonudaryTestcase := &TestCase{ + Config: NewConfig("run request with functions"). + SetBaseURL("https://postman-echo.com"). + WithVariables(map[string]interface{}{ + "n": 5, + "a": 12.3, + "b": 3.45, + }), + TestSteps: []IStep{ + NewStep("test negative number"). + Rendezvous("test negative number"). + WithUserNumber(-1), + NewStep("test overflow number"). + Rendezvous("test overflow number"). + WithUserNumber(1000000), + NewStep("test negative percent"). + Rendezvous("test very low percent"). + WithUserPercent(-0.5), + NewStep("test very low percent"). + Rendezvous("test very low percent"). + WithUserPercent(0.00001), + NewStep("test overflow percent"). + Rendezvous("test overflow percent"). + WithUserPercent(1.5), + NewStep("test conflict params"). + Rendezvous("test conflict params"). + WithUserNumber(1). + WithUserPercent(0.123), + NewStep("test negative timeout"). + Rendezvous("test negative timeout"). + WithTimeout(-1000), + }, + } + + type rendezvousParam struct { + number int64 + percent float32 + timeout int64 + } + expectedRendezvousParams := []rendezvousParam{ + {number: 100, percent: 1, timeout: 5000}, + {number: 100, percent: 1, timeout: 5000}, + {number: 100, percent: 1, timeout: 5000}, + {number: 0, percent: 0.00001, timeout: 5000}, + {number: 100, percent: 1, timeout: 5000}, + {number: 100, percent: 1, timeout: 5000}, + {number: 100, percent: 1, timeout: 5000}, + } + + rendezvousList := initRendezvous(rendezvousBonudaryTestcase, 100) + + for i, r := range rendezvousList { + if r.Number != expectedRendezvousParams[i].number { + t.Fatalf("run rendezvous %v error: expected number: %v, real number: %v", r.Name, expectedRendezvousParams[i].number, r.Number) + } + if math.Abs(float64(r.Percent-expectedRendezvousParams[i].percent)) > 0.001 { + t.Fatalf("run rendezvous %v error: expected percent: %v, real percent: %v", r.Name, expectedRendezvousParams[i].percent, r.Percent) + } + if r.Timeout != expectedRendezvousParams[i].timeout { + t.Fatalf("run rendezvous %v error: expected timeout: %v, real timeout: %v", r.Name, expectedRendezvousParams[i].timeout, r.Timeout) + } + } +}