On 16 August 2013 15:18, Philippe Mouawad <[email protected]> wrote: > Hello sebb, > with this modification, how will you guarantee upward compatibility of Test > Plan ?
The setProperty() method converts the calcMode Strings. > Is there some upgrade procedure or will it be an incompatible change ? Automatic, provided that the current language agrees with the test plan. If not, warning messages are logged. Try it and see. > Thanks > Regards > Philippe > > On Friday, August 16, 2013, wrote: > >> Author: sebb >> Date: Fri Aug 16 13:59:19 2013 >> New Revision: 1514714 >> >> URL: http://svn.apache.org/r1514714 >> Log: >> Constant Throughput Timer bug with localization >> Bugzilla Id: 53679 >> >> Added: >> jmeter/trunk/bin/testfiles/GenTest27_original.jmx (with props) >> Modified: >> jmeter/trunk/bin/testfiles/GenTest210.jmx >> jmeter/trunk/bin/testfiles/GenTest27.jmx >> jmeter/trunk/bin/testfiles/GuiTest231.jmx >> >> jmeter/trunk/src/components/org/apache/jmeter/timers/ConstantThroughputTimer.java >> >> jmeter/trunk/src/components/org/apache/jmeter/timers/ConstantThroughputTimerBeanInfo.java >> jmeter/trunk/test/src/org/apache/jmeter/save/TestSaveService.java >> jmeter/trunk/test/src/org/apache/jmeter/timers/PackageTest.java >> jmeter/trunk/xdocs/changes.xml >> jmeter/trunk/xdocs/usermanual/component_reference.xml >> >> Modified: jmeter/trunk/bin/testfiles/GenTest210.jmx >> URL: >> http://svn.apache.org/viewvc/jmeter/trunk/bin/testfiles/GenTest210.jmx?rev=1514714&r1=1514713&r2=1514714&view=diff >> >> ============================================================================== >> --- jmeter/trunk/bin/testfiles/GenTest210.jmx (original) >> +++ jmeter/trunk/bin/testfiles/GenTest210.jmx Fri Aug 16 13:59:19 2013 >> @@ -1,5 +1,5 @@ >> <?xml version="1.0" encoding="UTF-8"?> >> -<jmeterTestPlan version="1.2" properties="2.5" >> jmeter="2.10-SNAPSHOT.20130730"> >> +<jmeterTestPlan version="1.2" properties="2.5" >> jmeter="2.10-SNAPSHOT.20130816"> >> <hashTree> >> <TestPlan guiclass="TestPlanGui" testclass="TestPlan" >> testname="GuiTest 2.10" enabled="true"> >> <stringProp name="TestPlan.comments">Test Plan including all test >> elements in JMeter 2.19</stringProp> >> @@ -343,7 +343,7 @@ >> </BSFTimer> >> <hashTree/> >> <ConstantThroughputTimer guiclass="TestBeanGUI" >> testclass="ConstantThroughputTimer" testname="Constant Throughput Timer" >> enabled="true"> >> - <stringProp name="calcMode">this thread only</stringProp> >> + <intProp name="calcMode">0</intProp> >> <doubleProp> >> <name>throughput</name> >> <value>0.0</value> >> >> Modified: jmeter/trunk/bin/testfiles/GenTest27.jmx >> URL: >> http://svn.apache.org/viewvc/jmeter/trunk/bin/testfiles/GenTest27.jmx?rev=1514714&r1=1514713&r2=1514714&view=diff >> >> ============================================================================== >> --- jmeter/trunk/bin/testfiles/GenTest27.jmx (original) >> +++ jmeter/trunk/bin/testfiles/GenTest27.jmx Fri Aug 16 13:59:19 2013 >> @@ -324,7 +324,7 @@ >> </BSFTimer> >> <hashTree/> >> <ConstantThroughputTimer guiclass="TestBeanGUI" >> testclass="ConstantThroughputTimer" testname="Constant Throughput Timer" >> enabled="true"> >> - <stringProp name="calcMode">this thread only</stringProp> >> + <intProp name="calcMode">0</intProp> >> <doubleProp> >> <name>throughput</name> >> <value>0.0</value> >> >> Added: jmeter/trunk/bin/testfiles/GenTest27_original.jmx >> URL: >> http://svn.apache.org/viewvc/jmeter/trunk/bin/testfiles/GenTest27_original.jmx?rev=1514714&view=auto >> >> ============================================================================== >> --- jmeter/trunk/bin/testfiles/GenTest27_original.jmx (added) >> +++ jmeter/trunk/bin/testfiles/GenTest27_original.jmx Fri Aug 16 13:59:19 >> 2013 >> @@ -0,0 +1,1415 @@ >> +<?xml version="1.0" encoding="UTF-8"?> >> +<jmeterTestPlan version="1.2" properties="2.3"> >> + <hashTree> >> + <TestPlan guiclass="TestPlanGui" testclass="TestPlan" >> testname="GuiTest 2.7" enabled="true"> >> + <stringProp name="TestPlan.comments">Test Plan including all test >> elements in JMeter 2.7</stringProp> >> + <boolProp name="TestPlan.functional_mode">false</boolProp> >> + <boolProp name="TestPlan.serialize_threadgroups">false</boolProp> >> + <elementProp name="TestPlan.user_defined_variables" >> elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" >> testname="User Defined Variables" enabled="true"> >> + <collectionProp name="Arguments.arguments"/> >> + </elementProp> >> + <stringProp name="TestPlan.user_define_classpath"></stringProp> >> + </TestPlan> >> + <hashTree> >> + <SetupThreadGroup guiclass="SetupThreadGroupGui" >> testclass="SetupThreadGroup" testname="setUp Thread Group" enabled="true"> >> + <stringProp >> name="ThreadGroup.on_sample_error">continue</stringProp> >> + <elementProp name="ThreadGroup.main_controller" >> elementType="LoopController" guiclass="LoopControlPanel" >> testclass="LoopController" testname="Loop Controller" enabled="true"> >> + <boolProp >> name="LoopController.continue_forever">false</boolProp> >> + <stringProp name="LoopController.loops">1</stringProp> >> + </elementProp> >> + <stringProp name="ThreadGroup.num_threads">1</stringProp> >> + <stringProp name="ThreadGroup.ramp_time">1</stringProp> >> + <longProp name="ThreadGroup.start_time">1337352661000</longProp> >> + <longProp name="ThreadGroup.end_time">1337352661000</longProp> >> + <boolProp name="ThreadGroup.scheduler">false</boolProp> >> + <stringProp name="ThreadGroup.duration"></stringProp> >> + <stringProp name="ThreadGroup.delay"></stringProp> >> + </SetupThreadGroup> >> + <hashTree/> >> + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" >> testname="Thread Group" enabled="true"> >> + <stringProp >> name="ThreadGroup.on_sample_error">continue</stringProp> >> + <elementProp name="ThreadGroup.main_controller" >> elementType="LoopController" guiclass="LoopControlPanel" >> testclass="LoopController" testname="Loop Controller" enabled="true"> >> + <boolProp >> name="LoopController.continue_forever">false</boolProp> >> + <stringProp name="LoopController.loops">1</stringProp> >> + </elementProp> >> + <stringProp name="ThreadGroup.num_threads">1</stringProp> >> + <stringProp name="ThreadGroup.ramp_time">1</stringProp> >> + <longProp name="ThreadGroup.start_time">1337300621000</longProp> >> + <longProp name="ThreadGroup.end_time">1337300621000</longProp> >> + <boolProp name="ThreadGroup.scheduler">false</boolProp> >> + <stringProp name="ThreadGroup.duration"></stringProp> >> + <stringProp name="ThreadGroup.delay"></stringProp> >> + </ThreadGroup> >> + <hashTree> >> + <GenericController guiclass="LogicControllerGui" >> testclass="GenericController" testname="Logic Controllers" enabled="true"/> >> + <hashTree> >> + <ForeachController guiclass="ForeachControlPanel" >> testclass="ForeachController" testname="ForEach Controller" enabled="true"> >> + <stringProp name="ForeachController.inputVal"></stringProp> >> + <stringProp name="ForeachController.returnVal"></stringProp> >> + <boolProp >> name="ForeachController.useSeparator">true</boolProp> >> + </ForeachController> >> + <hashTree/> >> + <IfController guiclass="IfControllerPanel" >> testclass="IfController" testname="If Controller" enabled="true"> >> + <stringProp name="IfController.condition"></stringProp> >> + <boolProp name="IfController.evaluateAll">false</boolProp> >> + </IfController> >> + <hashTree/> >> + <IncludeController guiclass="IncludeControllerGui" >> testclass="IncludeController" testname="Include Controller" enabled="true"> >> + <stringProp name="IncludeController.includepath"></stringProp> >> + </IncludeController> >> + <hashTree/> >> + <InterleaveControl guiclass="InterleaveControlGui" >> testclass="InterleaveControl" testname="Interleave Controller" >> enabled="true"> >> + <intProp name="InterleaveControl.style">1</intProp> >> + </InterleaveControl> >> + <hashTree/> >> + <LoopController guiclass="LoopControlPanel" >> testclass="LoopController" testname="Loop Controller" enabled="true"> >> + <boolProp >> name="LoopController.continue_forever">true</boolProp> >> + <stringProp name="LoopController.loops">1</stringProp> >> + </LoopController> >> + <hashTree/> >> + <ModuleController guiclass="ModuleControllerGui" >> testclass="ModuleController" testname="Module Controller" enabled="true"/> >> + <hashTree/> >> + <OnceOnlyController guiclass="OnceOnlyControllerGui" >> testclass="OnceOnlyController" testname="Once Only Controller" >> enabled="true"/> >> + <hashTree/> >> + <RandomController guiclass="RandomControlGui" >> testclass="RandomController" testname="Random Controller" enabled="true"> >> + <intProp name="InterleaveControl.style">1</intProp> >> + </RandomController> >> + <hashTree/> >> + <RandomOrderController guiclass="RandomOrderControllerGui" >> testclass="RandomOrderController" testname="Random Order Controller" >> enabled="true"/> >> + <hashTree/> >> + <RecordingController guiclass="RecordController" >> testclass="RecordingController" testname="Recording Controller" >> enabled="true"/> >> + <hashTree/> >> + <RunTime guiclass="RunTimeGui" testclass="RunTime" >> testname="Runtime Controller" enabled="true"> >> + <stringProp name="RunTime.seconds">1</stringProp> >> + </RunTime> >> + <hashTree/> >> + <GenericController guiclass="LogicControllerGui" >> testclass="GenericController" testname="Simple Controller" enabled="true"/> >> + <hashTree/> >> + <SwitchController guiclass="SwitchControllerGui" >> testclass="SwitchController" testname="Switch Controller" enabled="true"> >> + <stringProp name="SwitchController.value"></stringProp> >> + </SwitchController> >> + <hashTree/> >> + <ThroughputController guiclass="ThroughputControllerGui" >> testclass="ThroughputController" testname="Throughput Controller" >> enabled="true"> >> + <intProp name="ThroughputController.style">0</intProp> >> + <boolProp >> name="ThroughputController.perThread">true</boolProp> >> + <intProp name="ThroughputController.maxThroughput">1</intProp> >> + <FloatProperty> >> + <name>ThroughputController.percentThroughput</name> >> + <value>100.0</value> >> + <savedValue>0.0</savedValue> >> + </FloatProperty> >> + </ThroughputController> >> + <hashTree/> >> + <TransactionController guiclass="TransactionControllerGui" >> testclass="TransactionController" testname="Transaction Controller" >> enabled="true"> >> + <boolProp name="TransactionController.parent">false</boolProp> >> + </TransactionController> >> + <hashTree/> >> + <WhileController guiclass="WhileControllerGui" >> testclass="WhileController" testname="While Controller" enabled="true"> >> + <stringProp name="WhileController.condition"></stringProp> >> + </WhileController> >> + <hashTree/> >> + </hashTree> >> + <GenericController guiclass="LogicControllerGui" >> testclass="GenericController" testname="Config Elements" enabled="true"/> >> + <hashTree> >> + <CounterConfig guiclass="CounterConfigGui" >> testclass="CounterConfig" testname="Counter" enabled="true"> >> + <stringProp name="CounterConfig.start"></stringProp> >> + <stringProp name="CounterConfig.end"></stringProp> >> + <stringProp name="CounterConfig.incr"></stringProp> >> + <stringProp name="CounterConfig.name"></stringProp> >> + <stringProp name="CounterConfig.format"></stringProp> >> + <boolProp name="CounterConfig.per_user">false</boolProp> >> + </CounterConfig> >> + <hashTree/> >> + <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" >> testname= > > > > -- > Cordialement. > Philippe Mouawad.
