From 2be38454a84987a572bb5f5728661c449e16e0c2 Mon Sep 17 00:00:00 2001 From: xucong053 Date: Thu, 31 Mar 2022 14:25:59 +0800 Subject: [PATCH 1/2] fix: failed to run parameters_test.json --- hrp/config.go | 2 +- hrp/parser.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/hrp/config.go b/hrp/config.go index 5af9ae87..7a3683fd 100644 --- a/hrp/config.go +++ b/hrp/config.go @@ -177,7 +177,7 @@ type iteratorStrategyType string const ( strategyRandom iteratorStrategyType = "random" - strategySequential iteratorStrategyType = "Sequential" + strategySequential iteratorStrategyType = "sequential" ) type iteratorParamsType []map[string]interface{} diff --git a/hrp/parser.go b/hrp/parser.go index 4a8126a3..3a7ea231 100644 --- a/hrp/parser.go +++ b/hrp/parser.go @@ -652,7 +652,7 @@ func initParameterIterator(cfg *TConfig, mode string) (err error) { // use strategy if configured cfg.ParametersSetting.Iterators = append( cfg.ParametersSetting.Iterators, - newIterator(v, rawValue.MapIndex(reflect.ValueOf(k)).Interface().(iteratorStrategyType), cfg.ParametersSetting.Iteration), + newIterator(v, iteratorStrategyType(rawValue.MapIndex(reflect.ValueOf(k)).String()), cfg.ParametersSetting.Iteration), ) } else { // use sequential strategy by default @@ -667,7 +667,7 @@ func initParameterIterator(cfg *TConfig, mode string) (err error) { if len(rawValue.String()) == 0 { cfg.ParametersSetting.Strategy = strategySequential } else { - cfg.ParametersSetting.Strategy = strings.ToLower(rawValue.String()) + cfg.ParametersSetting.Strategy = iteratorStrategyType(strings.ToLower(rawValue.String())) } cfg.ParametersSetting.Iterators = append( cfg.ParametersSetting.Iterators, From e7633403702a6930c54aaa6e86a2324372a032f1 Mon Sep 17 00:00:00 2001 From: xucong053 Date: Thu, 31 Mar 2022 17:17:04 +0800 Subject: [PATCH 2/2] fix: failed to parse testcase config while load testing --- hrp/boomer.go | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/hrp/boomer.go b/hrp/boomer.go index 1761169c..9a1d20fa 100644 --- a/hrp/boomer.go +++ b/hrp/boomer.go @@ -95,27 +95,27 @@ func (b *HRPBoomer) convertBoomerTask(testcase *TestCase, rendezvousList []*Rend Name: config.Name, Weight: config.Weight, Fn: func() { - sessionRunner := hrpRunner.NewSessionRunner(testcase) + sessionTestCase := &TestCase{} + // copy testcase to avoid data racing + if err := copier.Copy(sessionTestCase, testcase); err != nil { + log.Error().Err(err).Msg("copy testcase data failed") + return + } + sessionRunner := hrpRunner.NewSessionRunner(sessionTestCase) sessionRunner.parser.plugin = plugin testcaseSuccess := true // flag whole testcase result var transactionSuccess = true // flag current transaction result - cfg := testcase.Config - caseConfig := &TConfig{} - // copy config to avoid data racing - if err := copier.Copy(caseConfig, cfg); err != nil { - log.Error().Err(err).Msg("copy config data failed") - return - } + cfg := sessionTestCase.Config // iterate through all parameter iterators and update case variables - for _, it := range caseConfig.ParametersSetting.Iterators { + for _, it := range cfg.ParametersSetting.Iterators { if it.HasNext() { - caseConfig.Variables = mergeVariables(it.Next(), caseConfig.Variables) + cfg.Variables = mergeVariables(it.Next(), cfg.Variables) } } - if err := sessionRunner.parseConfig(caseConfig); err != nil { + if err := sessionRunner.parseConfig(cfg); err != nil { log.Error().Err(err).Msg("parse config failed") return }