mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-27 03:10:08 +08:00
feat: runStepRequest
This commit is contained in:
@@ -37,8 +37,7 @@ func convertBoomerTask(testcase *TestCase) *boomer.Task {
|
|||||||
config := &testcase.Config
|
config := &testcase.Config
|
||||||
for _, step := range testcase.TestSteps {
|
for _, step := range testcase.TestSteps {
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
tStep := parseStep(step, config)
|
err := runner.runStep(step, config)
|
||||||
err := runner.runStep(tStep)
|
|
||||||
elapsed := time.Since(start).Nanoseconds() / int64(time.Millisecond)
|
elapsed := time.Since(start).Nanoseconds() / int64(time.Millisecond)
|
||||||
|
|
||||||
if err == nil {
|
if err == nil {
|
||||||
|
|||||||
40
runner.go
40
runner.go
@@ -36,25 +36,32 @@ func (r *Runner) runCase(testcase *TestCase) error {
|
|||||||
config := &testcase.Config
|
config := &testcase.Config
|
||||||
log.Printf("Start to run testcase: %v", config.Name)
|
log.Printf("Start to run testcase: %v", config.Name)
|
||||||
for _, step := range testcase.TestSteps {
|
for _, step := range testcase.TestSteps {
|
||||||
if tc, ok := step.(*testcaseWithOptionalArgs); ok {
|
r.runStep(step, config)
|
||||||
// run referenced testcase
|
|
||||||
log.Printf("run referenced testcase: %v", tc.step.Name)
|
|
||||||
if err := r.runCase(tc.step.TestCase); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// run request
|
|
||||||
tStep := parseStep(step, config)
|
|
||||||
if err := r.runStep(tStep); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Runner) runStep(step *TStep) error {
|
func (r *Runner) runStep(step IStep, config *TConfig) error {
|
||||||
log.Printf("run step begin: %v >>>>>>", step.Name)
|
log.Printf("run step begin: %v >>>>>>", step.Name())
|
||||||
|
if tc, ok := step.(*testcaseWithOptionalArgs); ok {
|
||||||
|
// run referenced testcase
|
||||||
|
log.Printf("run referenced testcase: %v", tc.step.Name)
|
||||||
|
// TODO: override testcase config
|
||||||
|
if err := r.runCase(tc.step.TestCase); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// run request
|
||||||
|
tStep := parseStep(step, config)
|
||||||
|
if err := r.runStepRequest(tStep); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
log.Printf("run step end: %v <<<<<<\n", step.Name())
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *Runner) runStepRequest(step *TStep) error {
|
||||||
var v []interface{}
|
var v []interface{}
|
||||||
v = append(v, req.Header(step.Request.Headers))
|
v = append(v, req.Header(step.Request.Headers))
|
||||||
v = append(v, req.Param(step.Request.Params))
|
v = append(v, req.Param(step.Request.Params))
|
||||||
@@ -73,8 +80,7 @@ func (r *Runner) runStep(step *TStep) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
resp.Response().Body.Close()
|
defer resp.Response().Body.Close()
|
||||||
log.Printf("run step end: %v <<<<<<\n", step.Name)
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -73,10 +73,10 @@ func TestRunRequestRun(t *testing.T) {
|
|||||||
config := &TConfig{
|
config := &TConfig{
|
||||||
BaseURL: "https://postman-echo.com",
|
BaseURL: "https://postman-echo.com",
|
||||||
}
|
}
|
||||||
if err := defaultRunner.runStep(parseStep(stepGET, config)); err != nil {
|
if err := defaultRunner.runStep(stepGET, config); err != nil {
|
||||||
t.Fatalf("tStep.Run() error: %s", err)
|
t.Fatalf("tStep.Run() error: %s", err)
|
||||||
}
|
}
|
||||||
if err := defaultRunner.runStep(parseStep(stepPOSTData, config)); err != nil {
|
if err := defaultRunner.runStep(stepPOSTData, config); err != nil {
|
||||||
t.Fatalf("tStepPOSTData.Run() error: %s", err)
|
t.Fatalf("tStepPOSTData.Run() error: %s", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user