mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-12 02:21:29 +08:00
feat: data-driven.
This commit is contained in:
@@ -4,7 +4,7 @@ config:
|
||||
user_agent: [ "iOS/10.1", "iOS/10.2" ]
|
||||
username-password: ${parameterize(examples/account.csv)}
|
||||
parameters_setting:
|
||||
strategy: ["random", "sequential"]
|
||||
strategy: ""
|
||||
iteration: 10
|
||||
variables:
|
||||
app_version: v1
|
||||
|
||||
26
parser.go
26
parser.go
@@ -613,16 +613,6 @@ func initParameterIterator(cfg *TConfig, mode string) (err error) {
|
||||
}
|
||||
rawValue := reflect.ValueOf(cfg.ParametersSetting.Strategy)
|
||||
switch rawValue.Kind() {
|
||||
case reflect.String:
|
||||
if len(rawValue.String()) == 0 {
|
||||
cfg.ParametersSetting.Strategy = strategySequential
|
||||
} else {
|
||||
cfg.ParametersSetting.Strategy = strings.ToLower(rawValue.String())
|
||||
}
|
||||
cfg.ParametersSetting.Iterator = append(
|
||||
cfg.ParametersSetting.Iterator,
|
||||
newIterator(genCartesianProduct(parameters), cfg.ParametersSetting.Strategy.(string), cfg.ParametersSetting.Iteration),
|
||||
)
|
||||
case reflect.Slice:
|
||||
if len(parameters) != rawValue.Len() {
|
||||
return errors.New("parameters and strategy should have the same length")
|
||||
@@ -634,6 +624,22 @@ func initParameterIterator(cfg *TConfig, mode string) (err error) {
|
||||
)
|
||||
}
|
||||
}
|
||||
case reflect.String:
|
||||
if len(rawValue.String()) == 0 {
|
||||
cfg.ParametersSetting.Strategy = strategySequential
|
||||
} else {
|
||||
cfg.ParametersSetting.Strategy = strings.ToLower(rawValue.String())
|
||||
}
|
||||
cfg.ParametersSetting.Iterator = append(
|
||||
cfg.ParametersSetting.Iterator,
|
||||
newIterator(genCartesianProduct(parameters), cfg.ParametersSetting.Strategy.(string), cfg.ParametersSetting.Iteration),
|
||||
)
|
||||
default:
|
||||
cfg.ParametersSetting.Strategy = strategySequential
|
||||
cfg.ParametersSetting.Iterator = append(
|
||||
cfg.ParametersSetting.Iterator,
|
||||
newIterator(genCartesianProduct(parameters), cfg.ParametersSetting.Strategy.(string), cfg.ParametersSetting.Iteration),
|
||||
)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user