diff --git a/internal/option.go b/internal/option.go index 1d95540..5dc340d 100644 --- a/internal/option.go +++ b/internal/option.go @@ -93,6 +93,7 @@ type OutputOptions struct { Quiet bool `short:"q" long:"quiet" description:"Bool, Quiet" config:"quiet"` NoColor bool `long:"no-color" description:"Bool, no color" config:"no-color"` NoBar bool `long:"no-bar" description:"Bool, No progress bar" config:"no-bar"` + NoStat bool `long:"no-stat" description:"Bool, No stat file output" config:"no-stat"` } type RequestOptions struct { @@ -719,10 +720,13 @@ func (opt *Option) PrepareRunner() (*Runner, error) { if err != nil { return nil, err } - r.StatFile.Mod = os.O_WRONLY | os.O_CREATE - err = r.StatFile.Init() - if err != nil { - return nil, err + + if !opt.NoStat { + r.StatFile.Mod = os.O_WRONLY | os.O_CREATE + err = r.StatFile.Init() + if err != nil { + return nil, err + } } return r, nil } diff --git a/internal/runner.go b/internal/runner.go index 7ff1196..2f232db 100644 --- a/internal/runner.go +++ b/internal/runner.go @@ -154,7 +154,9 @@ func (r *Runner) Prepare(ctx context.Context) error { r.Pools, err = ants.NewPoolWithFunc(r.PoolSize, func(i interface{}) { t := i.(*Task) if t.origin != nil && t.origin.End == t.origin.Total { - r.StatFile.SafeWrite(t.origin.Json()) + if r.StatFile != nil { + r.StatFile.SafeWrite(t.origin.Json()) + } r.Done() return } @@ -231,10 +233,14 @@ Loop: if len(r.taskCh) > 0 { for t := range r.taskCh { stat := pkg.NewStatistor(t.baseUrl) - r.StatFile.SafeWrite(stat.Json()) + if r.StatFile != nil { + r.StatFile.SafeWrite(stat.Json()) + } } } - logs.Log.Importantf("already save all stat to %s", r.StatFile.Filename) + if r.StatFile != nil { + logs.Log.Importantf("already save all stat to %s", r.StatFile.Filename) + } break Loop case t, ok := <-r.taskCh: if !ok { diff --git a/templates b/templates index f1150d0..ebc4dc1 160000 --- a/templates +++ b/templates @@ -1 +1 @@ -Subproject commit f1150d00253e0c888976dbfe55cf2669c51f0b58 +Subproject commit ebc4dc165fccdf3be5745410da7e266fe2135916