modify rendezvous bonudary testcase

Change-Id: I88329ed6007c17be779b9c2845113e5d090671b2
This commit is contained in:
buyuxiang
2022-01-25 19:58:52 +08:00
parent d7ff433818
commit a89d83869c
3 changed files with 68 additions and 8 deletions

View File

@@ -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).

View File

@@ -62,9 +62,7 @@
{
"name": "waiting for all users in the beginning",
"rendezvous": {
"name": "rendezvous0",
"number": 10,
"timeout": 3000
"name": "rendezvous0"
}
},
{

View File

@@ -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)
}
}
}