549
549
<stringProp name =" Argument.value" >${__P(scenario,)}</stringProp >
550
550
<stringProp name =" Argument.metadata" >=</stringProp >
551
551
</elementProp >
552
+ <elementProp name =" seedForRandom" elementType =" Argument" >
553
+ <stringProp name =" Argument.name" >seedForRandom</stringProp >
554
+ <stringProp name =" Argument.value" >${__P(seedForRandom,1)}</stringProp >
555
+ <stringProp name =" Argument.metadata" >=</stringProp >
556
+ </elementProp >
552
557
<elementProp name =" searchQuick" elementType =" Argument" >
553
558
<stringProp name =" Argument.name" >searchQuick</stringProp >
554
559
<stringProp name =" Argument.value" >${__P(searchQuick,0)}</stringProp >
732
737
<stringProp name =" ThreadGroup.delay" />
733
738
</SetupThreadGroup >
734
739
<hashTree >
735
- <BeanShellSampler guiclass =" BeanShellSamplerGui" testclass =" BeanShellSampler" testname =" SetUp - BeanShell Sampler: Clear properties" enabled =" true" >
736
- <stringProp name =" BeanShellSampler.query" >props.remove("category_url_key");
740
+ <BeanShellSampler guiclass =" BeanShellSamplerGui" testclass =" BeanShellSampler" testname =" SetUp - BeanShell Sampler: Initialize" enabled =" true" >
741
+ <stringProp name =" BeanShellSampler.query" >
742
+ // Init and save random object for get random values with/without seed
743
+ import java.util.Random;
744
+ Random random = new Random();
745
+ if (${seedForRandom} > 0) {
746
+ random.setSeed(${seedForRandom});
747
+ }
748
+ props.put("RandomObject", random);
749
+
750
+ props.remove("category_url_key");
737
751
props.remove("category_url_keys_list");
738
752
props.remove("category_name");
739
753
props.remove("category_names_list");
@@ -2230,57 +2244,28 @@ if ("${cache_indicator}" == "1") {
2230
2244
<stringProp name =" ThreadGroup.delay" />
2231
2245
</ThreadGroup >
2232
2246
<hashTree >
2233
- <RandomVariableConfig guiclass =" TestBeanGUI" testclass =" RandomVariableConfig" testname =" Random Variable 1" enabled =" true" >
2234
- <stringProp name =" variableName" >rv1</stringProp >
2235
- <stringProp name =" outputFormat" >'.'</stringProp >
2236
- <stringProp name =" minimumValue" >1</stringProp >
2237
- <stringProp name =" maximumValue" >999999</stringProp >
2238
- <stringProp name =" randomSeed" >1</stringProp >
2239
- <boolProp name =" perThread" >true</boolProp >
2240
- </RandomVariableConfig >
2241
- <hashTree />
2242
-
2243
- <RandomVariableConfig guiclass =" TestBeanGUI" testclass =" RandomVariableConfig" testname =" Random Variable 2" enabled =" true" >
2244
- <stringProp name =" variableName" >rv2</stringProp >
2245
- <stringProp name =" outputFormat" >'.'</stringProp >
2246
- <stringProp name =" minimumValue" >1</stringProp >
2247
- <stringProp name =" maximumValue" >999999</stringProp >
2248
- <stringProp name =" randomSeed" >2</stringProp >
2249
- <boolProp name =" perThread" >true</boolProp >
2250
- </RandomVariableConfig >
2251
- <hashTree />
2252
-
2253
- <RandomVariableConfig guiclass =" TestBeanGUI" testclass =" RandomVariableConfig" testname =" Random Variable 3" enabled =" true" >
2254
- <stringProp name =" variableName" >rv3</stringProp >
2255
- <stringProp name =" outputFormat" >'.'</stringProp >
2256
- <stringProp name =" minimumValue" >1</stringProp >
2257
- <stringProp name =" maximumValue" >999999</stringProp >
2258
- <stringProp name =" randomSeed" >3</stringProp >
2259
- <boolProp name =" perThread" >true</boolProp >
2260
- </RandomVariableConfig >
2261
- <hashTree />
2262
-
2263
2247
<BeanShellSampler guiclass =" BeanShellSamplerGui" testclass =" BeanShellSampler" testname =" Get arguments${__property(activeAdminThread)}(CatProdBrows)" enabled =" true" >
2264
2248
<stringProp name =" TestPlan.comments" >Passing arguments between threads</stringProp >
2265
- <stringProp name =" BeanShellSampler.query" >number = (int)(${rv1} * props.get("simple_products_list").size());
2249
+ <stringProp name =" BeanShellSampler.query" >
2250
+ number = props.get("RandomObject").nextInt(props.get("simple_products_list").size());
2266
2251
simpleList = props.get("simple_products_list").get(number);
2267
2252
vars.put("simple_product_1_url_key", simpleList.get("url_key"));
2268
2253
vars.put("simple_product_1_name", simpleList.get("title"));
2269
2254
vars.put("simple_product_1_id", simpleList.get("id"));
2270
2255
2271
- number1 = (int)(${rv2} * props.get("simple_products_list").size());
2256
+ number1 = props.get("RandomObject").nextInt( props.get("simple_products_list").size());
2272
2257
simpleList = props.get("simple_products_list").get(number1);
2273
2258
vars.put("simple_product_2_url_key", simpleList.get("url_key"));
2274
2259
vars.put("simple_product_2_name", simpleList.get("title"));
2275
2260
vars.put("simple_product_2_id", simpleList.get("id"));
2276
2261
2277
- number = (int)(${rv3} * props.get("configurable_products_list").size());
2262
+ number = props.get("RandomObject").nextInt( props.get("configurable_products_list").size());
2278
2263
configurableList = props.get("configurable_products_list").get(number);
2279
2264
vars.put("configurable_product_1_url_key", configurableList.get("url_key"));
2280
2265
vars.put("configurable_product_1_name", configurableList.get("title"));
2281
2266
vars.put("configurable_product_1_id", configurableList.get("id"));
2282
2267
2283
- number = (int)(Math.random() * props.get("category_url_keys_list").size());
2268
+ number = props.get("RandomObject").nextInt( props.get("category_url_keys_list").size());
2284
2269
vars.put("category_url_key", props.get("category_url_keys_list").get(number));
2285
2270
vars.put("category_name", props.get("category_names_list").get(number));
2286
2271
vars.put("testLabel", "CatProdBrows");</stringProp >
@@ -2609,53 +2594,23 @@ vars.put("testLabel", "CatProdBrows");</stringProp>
2609
2594
<stringProp name =" ThreadGroup.delay" />
2610
2595
</ThreadGroup >
2611
2596
<hashTree >
2612
- <RandomVariableConfig guiclass =" TestBeanGUI" testclass =" RandomVariableConfig" testname =" Random Variable 1" enabled =" true" >
2613
- <stringProp name =" variableName" >rv1</stringProp >
2614
- <stringProp name =" outputFormat" >'.'</stringProp >
2615
- <stringProp name =" minimumValue" >1</stringProp >
2616
- <stringProp name =" maximumValue" >999999</stringProp >
2617
- <stringProp name =" randomSeed" >1</stringProp >
2618
- <boolProp name =" perThread" >true</boolProp >
2619
- </RandomVariableConfig >
2620
- <hashTree />
2621
-
2622
- <RandomVariableConfig guiclass =" TestBeanGUI" testclass =" RandomVariableConfig" testname =" Random Variable 2" enabled =" true" >
2623
- <stringProp name =" variableName" >rv2</stringProp >
2624
- <stringProp name =" outputFormat" >'.'</stringProp >
2625
- <stringProp name =" minimumValue" >1</stringProp >
2626
- <stringProp name =" maximumValue" >999999</stringProp >
2627
- <stringProp name =" randomSeed" >2</stringProp >
2628
- <boolProp name =" perThread" >true</boolProp >
2629
- </RandomVariableConfig >
2630
- <hashTree />
2631
-
2632
- <RandomVariableConfig guiclass =" TestBeanGUI" testclass =" RandomVariableConfig" testname =" Random Variable 3" enabled =" true" >
2633
- <stringProp name =" variableName" >rv3</stringProp >
2634
- <stringProp name =" outputFormat" >'.'</stringProp >
2635
- <stringProp name =" minimumValue" >1</stringProp >
2636
- <stringProp name =" maximumValue" >999999</stringProp >
2637
- <stringProp name =" randomSeed" >3</stringProp >
2638
- <boolProp name =" perThread" >true</boolProp >
2639
- </RandomVariableConfig >
2640
- <hashTree />
2641
-
2642
2597
<BeanShellSampler guiclass =" BeanShellSamplerGui" testclass =" BeanShellSampler" testname =" Get arguments${__property(activeAdminThread)}(BrowsAddToCart)" enabled =" true" >
2643
2598
<stringProp name =" TestPlan.comments" >Passing arguments between threads</stringProp >
2644
- <stringProp name =" BeanShellSampler.query" >number = (int)(${rv1} * props.get("simple_products_list").size());
2599
+ <stringProp name =" BeanShellSampler.query" >number = props.get("RandomObject").nextInt( props.get("simple_products_list").size());
2645
2600
simpleList = props.get("simple_products_list").get(number);
2646
2601
vars.put("simple_product_1_url_key", simpleList.get("url_key"));
2647
2602
vars.put("simple_product_1_name", simpleList.get("title"));
2648
2603
vars.put("simple_product_1_id", simpleList.get("id"));
2649
2604
vars.put("simple_product_1_uenc", simpleList.get("uenc"));
2650
2605
2651
- number1 = (int)(${rv2} * props.get("simple_products_list").size());
2606
+ number1 = props.get("RandomObject").nextInt( props.get("simple_products_list").size());
2652
2607
simpleList = props.get("simple_products_list").get(number1);
2653
2608
vars.put("simple_product_2_url_key", simpleList.get("url_key"));
2654
2609
vars.put("simple_product_2_name", simpleList.get("title"));
2655
2610
vars.put("simple_product_2_id", simpleList.get("id"));
2656
2611
vars.put("simple_product_2_uenc", simpleList.get("uenc"));
2657
2612
2658
- number = (int)(${rv3} * props.get("configurable_products_list").size());
2613
+ number = props.get("RandomObject").nextInt( props.get("configurable_products_list").size());
2659
2614
configurableList = props.get("configurable_products_list").get(number);
2660
2615
vars.put("configurable_product_1_url_key", configurableList.get("url_key"));
2661
2616
vars.put("configurable_product_1_name", configurableList.get("title"));
@@ -2664,7 +2619,7 @@ vars.put("configurable_attribute_id", configurableList.get("attribute_id"));
2664
2619
vars.put("configurable_option_id", configurableList.get("attribute_option_id"));
2665
2620
vars.put("configurable_product_1_uenc", simpleList.get("uenc"));
2666
2621
2667
- number = (int)(Math.random() * props.get("category_url_keys_list").size());
2622
+ number = props.get("RandomObject").nextInt( props.get("category_url_keys_list").size());
2668
2623
vars.put("category_url_key", props.get("category_url_keys_list").get(number));
2669
2624
vars.put("category_name", props.get("category_names_list").get(number));
2670
2625
vars.put("testLabel", "BrowsAddToCart");
@@ -3691,53 +3646,24 @@ vars.put("loadType", "Guest");</stringProp>
3691
3646
<stringProp name =" ThreadGroup.delay" />
3692
3647
</ThreadGroup >
3693
3648
<hashTree >
3694
- <RandomVariableConfig guiclass =" TestBeanGUI" testclass =" RandomVariableConfig" testname =" Random Variable 1" enabled =" true" >
3695
- <stringProp name =" variableName" >rv1</stringProp >
3696
- <stringProp name =" outputFormat" >'.'</stringProp >
3697
- <stringProp name =" minimumValue" >1</stringProp >
3698
- <stringProp name =" maximumValue" >999999</stringProp >
3699
- <stringProp name =" randomSeed" >1</stringProp >
3700
- <boolProp name =" perThread" >true</boolProp >
3701
- </RandomVariableConfig >
3702
- <hashTree />
3703
-
3704
- <RandomVariableConfig guiclass =" TestBeanGUI" testclass =" RandomVariableConfig" testname =" Random Variable 2" enabled =" true" >
3705
- <stringProp name =" variableName" >rv2</stringProp >
3706
- <stringProp name =" outputFormat" >'.'</stringProp >
3707
- <stringProp name =" minimumValue" >1</stringProp >
3708
- <stringProp name =" maximumValue" >999999</stringProp >
3709
- <stringProp name =" randomSeed" >2</stringProp >
3710
- <boolProp name =" perThread" >true</boolProp >
3711
- </RandomVariableConfig >
3712
- <hashTree />
3713
-
3714
- <RandomVariableConfig guiclass =" TestBeanGUI" testclass =" RandomVariableConfig" testname =" Random Variable 3" enabled =" true" >
3715
- <stringProp name =" variableName" >rv3</stringProp >
3716
- <stringProp name =" outputFormat" >'.'</stringProp >
3717
- <stringProp name =" minimumValue" >1</stringProp >
3718
- <stringProp name =" maximumValue" >999999</stringProp >
3719
- <stringProp name =" randomSeed" >3</stringProp >
3720
- <boolProp name =" perThread" >true</boolProp >
3721
- </RandomVariableConfig >
3722
- <hashTree />
3723
-
3724
3649
<BeanShellSampler guiclass =" BeanShellSamplerGui" testclass =" BeanShellSampler" testname =" Get arguments${__property(activeAdminThread)}(GuestChkt)" enabled =" true" >
3725
3650
<stringProp name =" TestPlan.comments" >Passing arguments between threads</stringProp >
3726
- <stringProp name =" BeanShellSampler.query" >number = (int)(${rv1} * props.get("simple_products_list").size());
3651
+ <stringProp name =" BeanShellSampler.query" >
3652
+ number = props.get("RandomObject").nextInt(props.get("simple_products_list").size());
3727
3653
simpleList = props.get("simple_products_list").get(number);
3728
3654
vars.put("simple_product_1_url_key", simpleList.get("url_key"));
3729
3655
vars.put("simple_product_1_name", simpleList.get("title"));
3730
3656
vars.put("simple_product_1_id", simpleList.get("id"));
3731
3657
vars.put("simple_product_1_uenc", simpleList.get("uenc"));
3732
3658
3733
- number1 = (int)(${rv2} * props.get("simple_products_list").size());
3659
+ number1 = props.get("RandomObject").nextInt( props.get("simple_products_list").size());
3734
3660
simpleList = props.get("simple_products_list").get(number1);
3735
3661
vars.put("simple_product_2_url_key", simpleList.get("url_key"));
3736
3662
vars.put("simple_product_2_name", simpleList.get("title"));
3737
3663
vars.put("simple_product_2_id", simpleList.get("id"));
3738
3664
vars.put("simple_product_2_uenc", simpleList.get("uenc"));
3739
3665
3740
- number = (int)(${rv3} * props.get("configurable_products_list").size());
3666
+ number = props.get("RandomObject").nextInt( props.get("configurable_products_list").size());
3741
3667
configurableList = props.get("configurable_products_list").get(number);
3742
3668
vars.put("configurable_product_1_url_key", configurableList.get("url_key"));
3743
3669
vars.put("configurable_product_1_name", configurableList.get("title"));
@@ -3746,7 +3672,7 @@ vars.put("configurable_attribute_id", configurableList.get("attribute_id"));
3746
3672
vars.put("configurable_option_id", configurableList.get("attribute_option_id"));
3747
3673
vars.put("configurable_product_1_uenc", simpleList.get("uenc"));
3748
3674
3749
- number = (int)(Math.random() * props.get("category_url_keys_list").size());
3675
+ number = props.get("RandomObject").nextInt( props.get("category_url_keys_list").size());
3750
3676
vars.put("category_url_key", props.get("category_url_keys_list").get(number));
3751
3677
vars.put("category_name", props.get("category_names_list").get(number));
3752
3678
vars.put("testLabel", "GuestChkt");
@@ -5170,55 +5096,25 @@ vars.put("loadType", "Guest");</stringProp>
5170
5096
<stringProp name =" ThreadGroup.delay" />
5171
5097
</ThreadGroup >
5172
5098
<hashTree >
5173
- <RandomVariableConfig guiclass =" TestBeanGUI" testclass =" RandomVariableConfig" testname =" Random Variable 1" enabled =" true" >
5174
- <stringProp name =" variableName" >rv1</stringProp >
5175
- <stringProp name =" outputFormat" >'.'</stringProp >
5176
- <stringProp name =" minimumValue" >1</stringProp >
5177
- <stringProp name =" maximumValue" >999999</stringProp >
5178
- <stringProp name =" randomSeed" >1</stringProp >
5179
- <boolProp name =" perThread" >true</boolProp >
5180
- </RandomVariableConfig >
5181
- <hashTree />
5182
-
5183
- <RandomVariableConfig guiclass =" TestBeanGUI" testclass =" RandomVariableConfig" testname =" Random Variable 2" enabled =" true" >
5184
- <stringProp name =" variableName" >rv2</stringProp >
5185
- <stringProp name =" outputFormat" >'.'</stringProp >
5186
- <stringProp name =" minimumValue" >1</stringProp >
5187
- <stringProp name =" maximumValue" >999999</stringProp >
5188
- <stringProp name =" randomSeed" >2</stringProp >
5189
- <boolProp name =" perThread" >true</boolProp >
5190
- </RandomVariableConfig >
5191
- <hashTree />
5192
-
5193
- <RandomVariableConfig guiclass =" TestBeanGUI" testclass =" RandomVariableConfig" testname =" Random Variable 3" enabled =" true" >
5194
- <stringProp name =" variableName" >rv3</stringProp >
5195
- <stringProp name =" outputFormat" >'.'</stringProp >
5196
- <stringProp name =" minimumValue" >1</stringProp >
5197
- <stringProp name =" maximumValue" >999999</stringProp >
5198
- <stringProp name =" randomSeed" >3</stringProp >
5199
- <boolProp name =" perThread" >true</boolProp >
5200
- </RandomVariableConfig >
5201
- <hashTree />
5202
-
5203
5099
<BeanShellSampler guiclass =" BeanShellSamplerGui" testclass =" BeanShellSampler" testname =" Get arguments${__property(activeAdminThread)}(CustomerChkt)" enabled =" true" >
5204
5100
<stringProp name =" TestPlan.comments" >Passing arguments between threads</stringProp >
5205
5101
<stringProp name =" BeanShellSampler.query" >import org.apache.jmeter.samplers.SampleResult;
5206
5102
5207
- number = (int)(${rv1} * props.get("simple_products_list").size());
5103
+ number = props.get("RandomObject").nextInt( props.get("simple_products_list").size());
5208
5104
simpleList = props.get("simple_products_list").get(number);
5209
5105
vars.put("simple_product_1_url_key", simpleList.get("url_key"));
5210
5106
vars.put("simple_product_1_name", simpleList.get("title"));
5211
5107
vars.put("simple_product_1_id", simpleList.get("id"));
5212
5108
vars.put("simple_product_1_uenc", simpleList.get("uenc"));
5213
5109
5214
- number1 = (int)(${rv2} * props.get("simple_products_list").size());
5110
+ number1 = props.get("RandomObject").nextInt( props.get("simple_products_list").size());
5215
5111
simpleList = props.get("simple_products_list").get(number1);
5216
5112
vars.put("simple_product_2_url_key", simpleList.get("url_key"));
5217
5113
vars.put("simple_product_2_name", simpleList.get("title"));
5218
5114
vars.put("simple_product_2_id", simpleList.get("id"));
5219
5115
vars.put("simple_product_2_uenc", simpleList.get("uenc"));
5220
5116
5221
- number = (int)(${rv3} * props.get("configurable_products_list").size());
5117
+ number = props.get("RandomObject").nextInt( props.get("configurable_products_list").size());
5222
5118
configurableList = props.get("configurable_products_list").get(number);
5223
5119
vars.put("configurable_product_1_url_key", configurableList.get("url_key"));
5224
5120
vars.put("configurable_product_1_name", configurableList.get("title"));
@@ -5227,7 +5123,7 @@ vars.put("configurable_attribute_id", configurableList.get("attribute_id"));
5227
5123
vars.put("configurable_option_id", configurableList.get("attribute_option_id"));
5228
5124
vars.put("configurable_product_1_uenc", simpleList.get("uenc"));
5229
5125
5230
- number = (int)(Math.random() * props.get("category_url_keys_list").size());
5126
+ number = props.get("RandomObject").nextInt( props.get("category_url_keys_list").size());
5231
5127
vars.put("category_url_key", props.get("category_url_keys_list").get(number));
5232
5128
vars.put("category_name", props.get("category_names_list").get(number));
5233
5129
0 commit comments