jmeter-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Milamber <milam...@apache.org>
Subject Re: svn commit: r1509971 - in /jmeter/trunk/bin/templates: build-web-test-plan.jmx build-webservice-test-plan.jmx templates.xml
Date Mon, 05 Aug 2013 23:48:11 GMT

Le 05/08/2013 07:41, Philippe Mouawad a ecrit :
> Agree.
> But no computer access these days, will do as soon as I have one.

I've get back the simple web test plan and add the advanced web test 
plan in templates folder.
Still adv doc update

Milamber

> Regards
>
> On Monday, August 5, 2013, Milamber wrote:
>
>> Le 03/08/2013 13:27, Philippe Mouawad a ecrit :
>>
>>> Hello Milamber,
>>> But don't you find the "simple" test plan is really too simple to be
>>> realistic ? and might be misleading as is ?
>>>
>> Yes and no. This simple test is a 'simple' introduction to web test plan,
>> it's not perfect but allow to the beginner to see how JMeter works.
>> Your advanced test plan may be to complex for a beginner for the first
>> time (a very lot of things to understand: cookies, assertion, header,
>> timers, regexp, CSV file, command line with parameter, etc.!)
>>
>> I thinks it will be better to have 2 templates :
>> * Building a (simple) web test plan (same as the doc)
>> * Building an advanced web test plan (your test plan, with some comments
>> in elements (why you should use this element? see this link, etc.) and/or
>> an update of the section 6 Building an Advanced Web Test Plan in User's
>> manual.
>>
>> If your are agree, please revert the simple test plan and and your
>> advanced test plan in templates folder.
>>
>>
>>
>>
>>> I see in previous one lots of common misuse:
>>>
>> Perhaps, add some warning/sentences in the section 6 in user's manual to
>> prevent these not optimal usages for a test plan in common conditions
>>
>> Milamber
>>
>>
>>>      - No pause
>>>      - No response checks
>>>      - No variabilisation
>>>      - No example of regexp which is almost always necessary
>>>
>>>
>>> I agree we should update manual anyway.
>>>
>>> Regards
>>>
>>> Philippe
>>>
>>> On Sat, Aug 3, 2013 at 3:25 PM, Milamber <milamber@apache.org> wrote:
>>>
>>>   Le 03/08/2013 12:41, pmouawad@apache.org a ecrit :
>>>>    Author: pmouawad
>>>>
>>>>> Date: Sat Aug  3 12:41:36 2013
>>>>> New Revision: 1509971
>>>>>
>>>>> URL: http://svn.apache.org/r1509971
>>>>> Log:
>>>>> Bug 55085 - UX Improvement : Ability to create New Test Plan from
>>>>> Templates
>>>>> Add Webservice Template (not using deprecated Webservice Sampler)
>>>>> Enhance web test plan to show more features
>>>>>
>>>>>   Perhaps, we must keep the "simple" web test plan template (in sync
with
>>>> the docs), and add an advanced web test plan template.
>>>> Otherwise, you must update the user's manual section to build a web test
>>>> plan to match with your jmx file.
>>>>
>>>> Milamber
>>>>
>>>>
>>>>
>>>>    Bugzilla Id: 55085
>>>>
>>>>> Added:
>>>>>        jmeter/trunk/bin/templates/****build-webservice-test-plan.jmx
>>>>> Modified:
>>>>>        jmeter/trunk/bin/templates/****build-web-test-plan.jmx
>>>>>        jmeter/trunk/bin/templates/****templates.xml
>>>>>
>>>>> Modified: jmeter/trunk/bin/templates/****build-web-test-plan.jmx
>>>>> URL: http://svn.apache.org/viewvc/****jmeter/trunk/bin/templates/**<http://svn.apache.org/viewvc/**jmeter/trunk/bin/templates/**>
>>>>> build-web-test-plan.jmx?rev=****1509971&r1=1509970&r2=1509971&**
>>>>> **view=diff<http://svn.apache.**org/viewvc/jmeter/trunk/bin/**
>>>>> templates/build-web-test-plan.**jmx?rev=1509971&r1=1509970&r2=**
>>>>> 1509971&view=diff<http://svn.apache.org/viewvc/jmeter/trunk/bin/templates/build-web-test-plan.jmx?rev=1509971&r1=1509970&r2=1509971&view=diff>
>>>>> ==============================****============================**==**
>>>>> ==================
>>>>> --- jmeter/trunk/bin/templates/****build-web-test-plan.jmx (original)
>>>>> +++ jmeter/trunk/bin/templates/****build-web-test-plan.jmx Sat Aug  3
>>>>> 12:41:36 2013
>>>>> @@ -11,13 +11,77 @@
>>>>>           <stringProp name="TestPlan.user_define_****
>>>>> classpath"></stringProp>
>>>>>         </TestPlan>
>>>>>         <hashTree>
>>>>> +      <Arguments guiclass="ArgumentsPanel" testclass="Arguments"
>>>>> testname="User Defined Variables" enabled="true">
>>>>> +        <collectionProp name="Arguments.arguments">
>>>>> +          <elementProp name="resources_folder" elementType="Argument">
>>>>> +            <stringProp name="Argument.name">**
>>>>> resources_folder</stringProp>
>>>>> +            <stringProp name="Argument.value">${__P(****
>>>>> resources_folder,
>>>>> CHANGE_FOLDER)}</stringProp>
>>>>> +            <stringProp name="Argument.desc">Change this value
to
>>>>> folder
>>>>> containing your CSV files</stringProp>
>>>>> +            <stringProp name="Argument.metadata">=</****stringProp>
>>>>> +          </elementProp>
>>>>> +          <elementProp name="host" elementType="Argument">
>>>>> +            <stringProp name="Argument.name">host</****stringProp>
>>>>> +            <stringProp name="Argument.value">jmeter.****apache.org<
>>>>> http://jmeter.**apache.org <http://jmeter.apache.org>>
>>>>> </stringProp>
>>>>> +            <stringProp name="Argument.metadata">=</****stringProp>
>>>>> +          </elementProp>
>>>>> +          <elementProp name="bugzilla_host" elementType="Argument">
>>>>> +            <stringProp name="Argument.name">bugzilla_****
>>>>> host</stringProp>
>>>>> +            <stringProp name="Argument.value">issues.****apache.org<
>>>>> http://issues.**apache.org <http://issues.apache.org>>
>>>>> </stringProp>
>>>>> +            <stringProp name="Argument.metadata">=</****stringProp>
>>>>> +          </elementProp>
>>>>> +        </collectionProp>
>>>>> +      </Arguments>
>>>>> +      <hashTree/>
>>>>> +      <CookieManager guiclass="CookiePanel" testclass="CookieManager"
>>>>> testname="HTTP Cookie Manager" enabled="true">
>>>>> +        <collectionProp name="CookieManager.cookies"/>
>>>>> +        <boolProp name="CookieManager.****clearEachIteration">true</**
>>>>> boolProp>
>>>>> +        <stringProp name="CookieManager.****
>>>>> implementation">org.apache.**
>>>>> jmeter.protocol.http.control.****HC4CookieHandler</stringProp>
>>>>> +      </CookieManager>
>>>>> +      <hashTree/>
>>>>> +      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager"
>>>>> testname="HTTP Header Manager" enabled="true">
>>>>> +        <collectionProp name="HeaderManager.headers">
>>>>> +          <elementProp name="User-Agent" elementType="Header">
>>>>> +            <stringProp name="Header.name">User-Agent<****/stringProp>
>>>>> +            <stringProp name="Header.value">Mozilla/5.****0
>>>>> (Macintosh;
>>>>> Intel Mac OS X 10.6; rv:22.0) Gecko/20100101 Firefox/22.0</stringProp>
>>>>> +          </elementProp>
>>>>> +          <elementProp name="Connection" elementType="Header">
>>>>> +            <stringProp name="Header.name">Connection<****/stringProp>
>>>>> +            <stringProp name="Header.value">keep-****
>>>>> alive</stringProp>
>>>>> +          </elementProp>
>>>>> +          <elementProp name="Accept-Language" elementType="Header">
>>>>> +            <stringProp name="Header.name">Accept-**
>>>>> Language</stringProp>
>>>>> +            <stringProp name="Header.value">fr,en;q=0.****
>>>>> 8,fr-fr;q=0.5,en-us;q=0.3</****stringProp>
>>>>> +          </elementProp>
>>>>> +          <elementProp name="Accept-Encoding" elementType="Header">
>>>>> +            <stringProp name="Header.name">Accept-**
>>>>> Encoding</stringProp>
>>>>> +            <stringProp name="Header.value">gzip, deflate</stringProp>
>>>>> +          </elementProp>
>>>>> +          <elementProp name="Accept" elementType="Header">
>>>>> +            <stringProp name="Header.name">Accept</****stringProp>
>>>>> +            <stringProp name="Header.value">text/html,****
>>>>> application/xhtml+xml,****application/xml;q=0.9,*/*;q=0.**
>>>>> **8</stringProp>
>>>>> +          </elementProp>
>>>>> +        </collectionProp>
>>>>> +      </HeaderManager>
>>>>> +      <hashTree/>
>>>>> +      <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet"
>>>>> testname="loginData" enabled="true">
>>>>> +        <stringProp name="TestPlan.comments">CSV file that must
>>>>> contains
>>>>> rows with 2 columns separated by comma, first column will be mapped to
>>>>> login, second one to password</stringProp>
>>>>> +        <stringProp name="delimiter">,</****stringProp>
>>>>> +        <stringProp name="fileEncoding">UTF-8</****stringProp>
>>>>> +        <stringProp name="filename">${resources_**
>>>>> folder}/login.csv</stringProp>
>>>>> +        <boolProp name="quotedData">false</****boolProp>
>>>>> +        <boolProp name="recycle">true</boolProp>
>>>>> +        <stringProp name="shareMode">All threads</stringProp>
>>>>> +        <boolProp name="stopThread">false</****boolProp>
>>>>> +        <stringProp name="variableNames">login,****
>>>>> password</stringProp>
>>>>> +      </CSVDataSet>
>>>>> +      <hashTree/>
>>>>>           <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup"
>>>>> testname="JMeter Users" 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">2<****/stringProp>
>>>>>             </elementProp>
>>>>> -        <stringProp name="ThreadGroup.num_threads"****>5</stringProp>
>>>>> +        <stringProp name="ThreadGroup.num_threads"****>1</stringProp>
>>>>>             <stringProp name="ThreadGroup.ramp_time">****5</stringProp>
>>>>>             <longProp name="ThreadGroup.start_time">****
>>>>> 1373789594000</longProp>
>>>>>             <longProp name="ThreadGroup.end_time">**
>>>>> 1373789594000</longProp>
>>>>> @@ -30,16 +94,27 @@
>>>>>               <elementProp name="HTTPsampler.Arguments"
>>>>> elementType="Arguments" guiclass="HTTPArgumentsPanel"
>>>>> testclass="Arguments"
>>>>> testname="User Defined Variables" enabled="true">
>>>>>                 <collectionProp name="Arguments.arguments"/>
>>>>>               </elementProp>
>>>>> -          <stringProp name="HTTPSampler.domain">**jmet**er.apache.org<
>>>>> http://**jmeter.apache.org <http://jmeter.apache.org>>
>>>>> </stringProp>
>>>>> +          <stringProp name="HTTPSampler.domain">${****
>>>>> host}</stringProp>
>>>>>               <stringProp name="HTTPSampler.port"></****stringProp>
>>>>>               <stringProp name="HTTPSampler.connect_**
>>>>> timeout"></stringProp>
>>>>>               <stringProp name="HTTPSampler.response_**
>>>>> timeout"></stringProp>
>>>>>               <stringProp name="HTTPSampler.protocol"></****stringProp>
>>>>>               <stringProp name="HTTPSampler.**
>>>>> contentEncoding"></stringProp>
>>>>>               <stringProp name="HTTPSampler.path"></****stringProp>
>>>>> +          <stringProp name="TestPlan.comments">Shows how to set
>>>>> defaults
>>>>> on page</stringProp>
>>>>>               <stringProp name="HTTPSampler.**
>>>>> concurrentPool">4</stringProp>
>>>>>             </ConfigTestElement>
>>>>>             <hashTree/>
>>>>> +        <ResponseAssertion guiclass="AssertionGui"
>>>>> testclass="ResponseAssertion" testname="****CheckResponseCode200"
>>>>> enabled="true">
>>>>> +          <collectionProp name="Asserion.test_strings">
>>>>> +            <stringProp name="49586">200</stringProp>
>>>>> +          </collectionProp>
>>>>> +          <stringProp name="TestPlan.comments">Check Response
code for
>>>>> all children samplers of JMeter Users Thread Group</stringProp>
>>>>> +          <stringProp name="Assertion.test_field">**
>>>>> Assertion.response_code</****stringProp>
>>>>> +          <boolProp name="Assertion.assume_****
>>>>> success">false</boolProp>
>>>>> +          <intProp name="Assertion.test_type">8</****intProp>
>>>>> +        </ResponseAssertion>
>>>>> +        <hashTree/>
>>>>>             <HTTPSamplerProxy guiclass="HttpTestSampleGui"
>>>>> testclass="HTTPSamplerProxy" testname="Home Page" enabled="true">
>>>>>               <elementProp name="HTTPsampler.Arguments"
>>>>> elementType="Arguments" guiclass="HTTPArgumentsPanel"
>>>>> testclass="Arguments"
>>>>> testname="Variables pré-définies" enabled="true">
>>>>>                 <collectionProp name="Arguments.arguments"/>
>>>>> @@ -59,7 +134,18 @@
>>>>>               <boolProp name="HTTPSampler.monitor">****false</boolProp>
>>>>>               <stringProp name="HTTPSampler.embedded_**
>>>>> url_re"></stringProp>
>>>>>             </HTTPSamplerProxy>
>>>>> -        <hashTree/>
>>>>> +        <hashTree>
>>>>> +          <ResponseAssertion guiclass="AssertionGui"
>>>>> testclass="ResponseAssertion" testname="Response Assertion"
>>>>> enabled="true">
>>>>> +            <collectionProp name="Asserion.test_strings">
>>>>> +              <stringProp name="605898121">&lt;title&gt;****Apache
>>>>> JMeter
>>>>> - Apache JMeter&amp;trade;&lt;/title&****gt;</stringProp>
>>>>> +            </collectionProp>
>>>>> +            <stringProp name="TestPlan.comments">We check page
contains
>>>>> some text</stringProp>
>>>>> +            <stringProp name="Assertion.test_field">**
>>>>> Assertion.response_data</****stringProp>
>>>>> +            <boolProp name="Assertion.assume_****
>>>>> success">false</boolProp>
>>>>> +            <intProp name="Assertion.test_type">16<****/intProp>
>>>>> +          </ResponseAssertion>
>>>>> +          <hashTree/>
>>>>> +        </hashTree>
>>>>>             <HTTPSamplerProxy guiclass="HttpTestSampleGui"
>>>>> testclass="HTTPSamplerProxy" testname="Changes" enabled="true">
>>>>>               <elementProp name="HTTPsampler.Arguments"
>>>>> elementType="Arguments" guiclass="HTTPArgumentsPanel"
>>>>> testclass="Arguments"
>>>>> testname="Variables pré-définies" enabled="true">
>>>>>                 <collectionProp name="Arguments.arguments"/>
>>>>> @@ -79,52 +165,83 @@
>>>>>               <boolProp name="HTTPSampler.monitor">****false</boolProp>
>>>>>               <stringProp name="HTTPSampler.embedded_**
>>>>> url_re"></stringProp>
>>>>>             </HTTPSamplerProxy>
>>>>> -        <hashTree/>
>>>>> -        <ResultCollector guiclass="GraphVisualizer"
>>>>> testclass="ResultCollector" testname="Graph Results" enabled="true">
>>>>> -          <boolProp name="ResultCollector.error_**
>>>>> logging">false</boolProp>
>>>>> -          <objProp>
>>>>> -            <name>saveConfig</name>
>>>>> -            <value class="****SampleSaveConfiguration">
>>>>> -              <time>true</time>
>>>>> -              <latency>true</latency>
>>>>> -              <timestamp>true</timestamp>
>>>>> -              <success>true</success>
>>>>> -              <label>true</label>
>>>>> -              <code>true</code>
>>>>> -              <message>true</message>
>>>>> -              <threadName>true</threadName>
>>>>> -              <dataType>true</dataType>
>>>>> -              <encoding>false</encoding>
>>>>> -              <assertions>true</assertions>
>>>>> -              <subresults>true</subresults>
>>>>> -              <responseData>false</****responseData>
>>>>> -              <samplerData>false</****samplerData>
>>>>> -              <xml>false</xml>
>>>>> -              <fieldNames>false</fieldNames>
>>>>> -              <responseHeaders>false</****responseHeaders>
>>>>> -              <requestHeaders>false</****requestHeaders>
>>>>> -              <responseDataOnError>false</****responseDataOnError>
>>>>> -              <****saveAssertionResultsFailureMes****sage>false</**
>>>>> saveAssertionResultsFailureMes****sage>
>>>>> -              <assertionsResultsToSave>0</****assertionsResultsToSave>
>>>>> -              <bytes>true</bytes>
>>>>> -            </value>
>>>>> -          </objProp>
>>>>> -          <stringProp name="filename"></stringProp>
>>>>> -        </ResultCollector>
>>>>> -        <hashTree/>
>>>>> +        <hashTree>
>>>>> +          <GaussianRandomTimer guiclass="****GaussianRandomTimerGui"
>>>>> testclass="****GaussianRandomTimer" testname="Wait5s Before Page"
>>>>> enabled="true">
>>>>> +            <stringProp name="ConstantTimer.delay">****
>>>>> 5000</stringProp>
>>>>> +            <stringProp name="RandomTimer.range">500.***
>>>>> *0</stringProp>
>>>>> +          </GaussianRandomTimer>
>>>>> +          <hashTree/>
>>>>> +          <Respon
>>>>


Mime
View raw message