jmeter-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From praveen tiwari <praveentiwa...@gmail.com>
Subject Re: Passing values from regular expression
Date Mon, 26 Jun 2017 07:09:23 GMT
Tried both methods mentioned by ZK and Felix, and both working fine.
Thanks alot.

On 22-Jun-2017 4:13 pm, "Felix Schumacher" <
felix.schumacher@internetallee.de> wrote:

> Am 22.06.2017 09:06, schrieb praveen tiwari:
>
>> Hi Felix,
>>
>> Please find below an explanation in more detail:
>>
>> HTML Response:
>>
>
> I have simplified the html to the following code:
>
> <html>
>   <body>
>     <input name="fare1" value="id-1" />
>     <input name="in1" id="id-1-a" />
>     <input name="in1" id="id-1-b" />
>     <input name="out1" id="id-1-c" />
>     <input name="out1" id="id-1-d" />
>
>     <input name="fare2" value="id-2" />
>     <input name="in2" id="id-2-a" />
>     <input name="in2" id="id-2-b" />
>     <input name="out2" id="id-2-c" />
>     <input name="out2" id="id-2-d" />
>   </body>
> </html>
>
> fare1 and fare2 are your fare-ids and inX and outX are the inbound and
> outbound parameters.
>
>
>> ------------------------------------------------------------
>> ------------------------------------------------------------
>> -------------------------------------
>> *FareID1:*
>> <input type="radio" name="timeoutbound1" value=""
>> id="ae3dc705-d5dc-4729-9288-133e036c1cda"
>> optid="ae3dc705-d5dc-4729-9288-133e036c1cda" />
>> <input type="radio" name="timeoutbound1" value=""
>> id="22c7814f-e145-4082-86a2-09c2f922b893"
>>
> ...
>
>> <input type="radio" name="timeinbound1" value=""
>> id="5852bc68-461e-4570-b5ea-fb85f4367c18"
>> optid="5852bc68-461e-4570-b5ea-fb85f4367c18" />
>>
>> <input id="fareRefId_1" name="FareRefId" type="hidden"
>> value="7f9a6381-9569-4af2-884f-16dd39332a9a" />
>>
>> *FareID2:*
>> <input type="radio" name="timeoutbound2" value=""
>> id="ae3dc705-d5dc-4729-9288-133e036c1cda"
>> optid="ae3dc705-d5dc-4729-9288-133e036c1cda" />
>> <input type="radio" name="timeoutbound2" value=""
>> id="22c7814f-e145-4082-86a2-09c2f922b893"
>>
> ...
>
>> <input type="radio" name="timeinbound2" value=""
>> id="f2a18f88-e87f-47f7-a31a-1cc92b905348"
>> optid="f2a18f88-e87f-47f7-a31a-1cc92b905348" />
>> <input type="radio" name="timeinbound2" value=""
>> id="dae19c11-dfa3-4483-8c0c-b06f0ec28c07"
>> optid="dae19c11-dfa3-4483-8c0c-b06f0ec28c07" />
>>
>> <input id="fareRefId_2" name="FareRefId" type="hidden"
>> value="7f9a6381-9569-4af2-884f-16dd39332a9a" />
>> ------------------------------------------------------------
>> ------------------------------------------------------------
>> -------------------------------------
>>
>> For "*fareRefId_1*" there are* multiple values of "timeinbound1" and
>> "timeoutbound1". *
>> For "*fareRefId_2*" there are* multiple values of "timeinbound2" and
>> "timeoutbound2". *
>>
>> Similarilty there are multiple "fareRefId_No." in my response.
>>
>> Scenario is that I need to extract value of "timeinbound" and
>> "timeoutbound"
>> depending on the value of fareRefId_No.
>> e.g. if fareRefId_2 - pass any value of "timeinbound2" and
>> "timeoutbound2".
>> fareRefId_9 - pass any value of "timeinbound9" and "timeoutbound9".
>>
>
> So you have a loop with a counter that you can reference as ${counter}
> that counts from 1 to 2.
>
>  - controller loop
>    - config counter
>    - sampler http
>      - extractor (fare)
>      - extractor (in)
>
> You are using a regex extractor in your example, but I think you are
> better of using a css/jquery extractor:
>
> For extractor (fare) the config woukd be:
>   reference name: fare
>   expression: input[name='fare${counter}']
>   attribute: value
>   match no.: 1
>
> For extractor (in) you would use:
>   reference name: in
>   expression: input[name='in${counter}']
>   attribute: id
>   match no.: -1
>
> This setup should give you the following variables and their respective
> values:
>   counter=X
>   fare=id-X
>   in_1=id-X-a
>   in_2=id-X-b
>   in_MatchNr=2
>
> It should be straightforward to extend the tests for include outX
>
> The same can be accomplished with regex extractors and setting the "match
> no." to the same values as above. But I think css extractor is easier to
> get right.
>
> Hope this helps,
>  Felix
>
>
>> I have added a "counter" config element in a while loop before calling the
>> request containing below regular expression.
>>
>> *Counter Config Element:*
>> Start: 2
>> Increment: 1
>> Reference name: Count
>>
>> *Regular Expression used:*
>>
>> Variable: FareReferenceId
>> Reg Exp: <input id="fareRefId_(.+?)" name="FareRefId" type="hidden"
>> value="(.+?)" />
>> Template: $1$$2$
>> Match No. ${Count}
>> Variable Passed: ${FareReferenceId_g2}
>>
>> Variable: Timeinbound
>> Reg Exp: <input type="radio" name="timeinbound(.+?)" value="" id="(.+?)"
>> optid
>> Template: $1$$2$
>> Match No. ${Count}
>> Variable Passed: ${Timeinbound_g2}
>>
>> Variable: Timeoutbound
>> Reg Exp: <input type="radio" name="timeoutbound(.+?)" value="" id="(.+?)"
>> optid
>> Template: $1$$2$
>> Match No. ${Count}
>> Variable Passed: ${Timeoutbound_g2}
>>
>> Issue I am facing is that if counter = 2, it passed 2nd value of
>> fareRefId,
>> Timeinbound and TimeOutbound, while I need if counter = 2, it should pass
>> second value of  fareRefId and any value of Timeinbound2 and
>> TimeOutbound2,
>>
>> Please let me know if you need more information.
>>
>> On 22-Jun-2017 11:06 am, "Felix Schumacher" <
>> felix.schumacher@internetallee.de> wrote:
>>
>>
>>>
>>> Am 21. Juni 2017 18:31:43 MESZ schrieb praveen tiwari <
>>> praveentiwari5@gmail.com>:
>>> >Hi All,
>>> >
>>> >I have a scenario as below and seeking for help on same.
>>> >
>>> >I have a request and it's response contains data as below which I am
>>> >able
>>> >to extract using regular expression:
>>> >
>>> >For
>>> >Fare 1
>>>
>>> What is fare? I don't understand it?
>>>
>>> >ABC 1, ABC 1, ABC 1 (multiple times)
>>> Is ABC 1, ABC 1, ABC 1 already multiple times, or is it three times x
>>> ABC 1
>>>
>>> Maybe you could give a more concrete example with?
>>>
>>> >XYZ 1, XYZ 1, XYZ 1  (multiple times)
>>> >
>>> >Fare 2
>>> >ABC 2, ABC 2, ABC 2 (multiple times)
>>> >XYZ 2, XYZ 2, XYZ 2  (multiple times)
>>> >
>>> >Fare n
>>> >ABC n, ABC n, ABC n (multiple times)
>>> >XYZ n, XYZ n, XYZ n  (multiple times)
>>> >
>>> >Required scenario is:
>>> >when I am getting fare 1, I need to select ABC 1 and XYZ 1.
>>> >when I am getting fare 2, I need to select ABC 2 and XYZ 2.
>>> >when I am getting fare n, I need to select ABC n and XYZ n.
>>> >
>>> >Problem I am facing is I am able to fetch "fare n" but when same number
>>> >(n)
>>> >is applied on ABC/XYZ in regular expression (templates), I am getting
>>> >value
>>> >from different fare section. e.g if I consider fare 2 (defined number
>>> >in
>>> >regexp template is 2), I am getting 2nd value from Fare 1 (ABC 1 and
>>> >XYZ 1
>>> >which is at 2nd position).
>>>
>>> I don't understand the description. Could you give the concrete regex and
>>> templates you are using?
>>>
>>> Regards,
>>>  Felix
>>>
>>> >
>>> >Any help with implementation of above login would be highly
>>> >appreciated.
>>> >If required more details, please let me know.
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: user-unsubscribe@jmeter.apache.org
>>> For additional commands, e-mail: user-help@jmeter.apache.org
>>>
>>>
>>>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@jmeter.apache.org
> For additional commands, e-mail: user-help@jmeter.apache.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message