mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-31 05:19:38 +08:00
feat: support rendezvous after spawn done
Change-Id: I4b07a88b61da4dc1863b189db9eb831ffb14130a
This commit is contained in:
91
examples/rendezvous_test.go
Normal file
91
examples/rendezvous_test.go
Normal file
@@ -0,0 +1,91 @@
|
||||
package examples
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/httprunner/hrp"
|
||||
)
|
||||
|
||||
var rendezvousTestcase = &hrp.TestCase{
|
||||
Config: hrp.NewConfig("run request with functions").
|
||||
SetBaseURL("https://postman-echo.com").
|
||||
WithVariables(map[string]interface{}{
|
||||
"n": 5,
|
||||
"a": 12.3,
|
||||
"b": 3.45,
|
||||
}),
|
||||
TestSteps: []hrp.IStep{
|
||||
// rendezvous boundary test
|
||||
hrp.NewStep("test negative number").
|
||||
Rendezvous("test negative number").
|
||||
WithUserNumber(-1),
|
||||
hrp.NewStep("test overflow number").
|
||||
Rendezvous("test overflow number").
|
||||
WithUserNumber(1000000),
|
||||
hrp.NewStep("test negative percent").
|
||||
Rendezvous("test very low percent").
|
||||
WithUserPercent(-0.5),
|
||||
hrp.NewStep("test very low percent").
|
||||
Rendezvous("test very low percent").
|
||||
WithUserPercent(0.00001),
|
||||
hrp.NewStep("test overflow percent").
|
||||
Rendezvous("test overflow percent").
|
||||
WithUserPercent(1.5),
|
||||
hrp.NewStep("test conflict params").
|
||||
Rendezvous("test conflict params").
|
||||
WithUserNumber(1).
|
||||
WithUserPercent(0.123),
|
||||
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),
|
||||
hrp.NewStep("rendezvous before get").
|
||||
Rendezvous("rendezvous1").
|
||||
WithUserNumber(10).
|
||||
WithTimeout(3000),
|
||||
hrp.NewStep("get with params").
|
||||
GET("/get").
|
||||
WithParams(map[string]interface{}{"foo1": "foo1", "foo2": "foo2"}).
|
||||
WithHeaders(map[string]string{"User-Agent": "HttpRunnerPlus"}).
|
||||
Extract().
|
||||
WithJmesPath("body.args.foo1", "varFoo1").
|
||||
Validate().
|
||||
AssertEqual("status_code", 200, "check status code"),
|
||||
hrp.NewStep("rendezvous before post").
|
||||
Rendezvous("rendezvous2").
|
||||
WithUserNumber(20).
|
||||
WithTimeout(2000),
|
||||
hrp.NewStep("post json data with functions").
|
||||
POST("/post").
|
||||
WithHeaders(map[string]string{"User-Agent": "HttpRunnerPlus"}).
|
||||
WithBody(map[string]interface{}{"foo1": "foo1", "foo2": "foo2"}).
|
||||
Validate().
|
||||
AssertEqual("status_code", 200, "check status code").
|
||||
AssertLengthEqual("body.json.foo1", 4, "check args foo1").
|
||||
AssertEqual("body.json.foo2", "foo2", "check args foo2"),
|
||||
hrp.NewStep("waiting for all users in the end").
|
||||
Rendezvous("rendezvous3"),
|
||||
},
|
||||
}
|
||||
|
||||
func TestRendezvous(t *testing.T) {
|
||||
err := hrp.NewRunner(t).Run(rendezvousTestcase)
|
||||
if err != nil {
|
||||
t.Fatalf("run testcase error: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestRendezvousDump2JSON(t *testing.T) {
|
||||
tCase, err := rendezvousTestcase.ToTCase()
|
||||
if err != nil {
|
||||
t.Fatalf("ToTCase error: %v", err)
|
||||
}
|
||||
err = tCase.Dump2JSON("rendezvous_test.json")
|
||||
if err != nil {
|
||||
t.Fatalf("dump to json error: %v", err)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user