You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@jmeter.apache.org by "BOLB (Bohdan L Bodnar)" <BO...@panduit.com> on 2014/09/22 16:12:47 UTC
Requesting help with regex and string usage
I've a problem that apparently has occurred to other users (from an internet search); however, I can't figure out how to do this in my application (brain-dead?). Here's the background:
I'm using an HTML-based API call to do a function in our product; this call returns a large string that includes numeric IDs of entities. I want to extract these IDs, build a string containing them, and use this string in an API call. For example:
1. API_1 call - returns "text, ID1, more text, ID2,...etc." consisting of n IDs.
2. Regular Expression Extractor call - return variable is called "ELEMENTS"
3. Build string that looks like "ID1,ID2,...IDn"
4. API_2 call with body having string defined in step 3.
I have no problem in step 2 picking off any one element, putting it in ELEMENTS and using it in step 4. I don't know how to do step 3 if Match Number is set to -1 in step 2. This doesn't look like rocket science, but I can't figure it out. Would someone be so kind as to either show me how to do this or refer me to a script that does this?
Best regards,
Bohdan
Re: Requesting help with regex and string usage
Posted by sebb <se...@gmail.com>.
On 23 September 2014 15:58, BOLB (Bohdan L Bodnar) <BO...@panduit.com> wrote:
> Thank you for all who assisted me. I ended up using a Beanshell Sampler, Regular Expression Extractor, a user-defined variable and some Java to build a string that is given to an API call. This approach works exactly as I want it work. For the technically curious, the key portions of the code are:
>
> int count = Integer.parseInt(vars.get("IDS_matchNr"));
> String deletestring = "";
> for (int i = 1; i < count; i++)
> {
> deletestring = deletestring + vars.get("IDS_"+i) + ",";
> }
> deletestring = deletestring + vars.get("IDS_"+count);
> vars.put("STRING1", deletestring);
>
> STRING1 now contains a comma-separated list of identities and ${STRING1} is then given to the API call.
>
> On a related topic:
>
> I spent quite a while trying to figure out the differences between Beanshell Sampler, Preprocessor, Postprocessor. Can someone please point me to an *idiot-proof* description with, preferably, sample code?
http://jmeter.apache.org/usermanual/test_plan.html
describes the different test element types
> Thank you kindly,
>
> Bohdan
>
>
> -----Original Message-----
> From: sebb [mailto:sebbaz@gmail.com]
> Sent: Tuesday, September 23, 2014 6:02 AM
> To: JMeter Users List
> Subject: Re: Requesting help with regex and string usage
>
> Also see the ForEach Controller:
>
> http://jmeter.apache.org/usermanual/component_reference.html#ForEach_Controller
>
> This is intended for use with the Regex Extractor.
>
> If it is difficult to write a single RE to both extract the string and convert it into a a list of IDs, note that the Regex Extractor can operate on the contents of a JMeter variable, so you can use multiple extractors in sequence if necessary.
>
>
> On 22 September 2014 17:26, Deepak Shetty <sh...@gmail.com> wrote:
>> Hi
>> see something like
>> http://theworkaholic.blogspot.com/2010/03/dynamic-parameters-in-jmeter
>> .html The Beanshell pre processor in the script shows how to iterate
>> through the returned values extracted by regex - you can concatenate
>> or manipulate this however you want in java or equivalent - if you
>> need help with that as well then you probably need to give more
>> details (e.g. the variable name etc)
>>
>> On Mon, Sep 22, 2014 at 7:12 AM, BOLB (Bohdan L Bodnar)
>> <BO...@panduit.com>
>> wrote:
>>
>>> I've a problem that apparently has occurred to other users (from an
>>> internet search); however, I can't figure out how to do this in my
>>> application (brain-dead?). Here's the background:
>>>
>>> I'm using an HTML-based API call to do a function in our product;
>>> this call returns a large string that includes numeric IDs of
>>> entities. I want to extract these IDs, build a string containing
>>> them, and use this string in an API call. For example:
>>>
>>>
>>> 1. API_1 call - returns "text, ID1, more text, ID2,...etc."
>>> consisting of n IDs.
>>>
>>> 2. Regular Expression Extractor call - return variable is called
>>> "ELEMENTS"
>>>
>>> 3. Build string that looks like "ID1,ID2,...IDn"
>>>
>>> 4. API_2 call with body having string defined in step 3.
>>>
>>> I have no problem in step 2 picking off any one element, putting it
>>> in ELEMENTS and using it in step 4. I don't know how to do step 3
>>> if Match Number is set to -1 in step 2. This doesn't look like
>>> rocket science, but I can't figure it out. Would someone be so kind
>>> as to either show me how to do this or refer me to a script that does this?
>>>
>>> Best regards,
>>>
>>> Bohdan
>>>
>>>
>
> ---------------------------------------------------------------------
> 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
RE: Requesting help with regex and string usage
Posted by "BOLB (Bohdan L Bodnar)" <BO...@panduit.com>.
Thank you for all who assisted me. I ended up using a Beanshell Sampler, Regular Expression Extractor, a user-defined variable and some Java to build a string that is given to an API call. This approach works exactly as I want it work. For the technically curious, the key portions of the code are:
int count = Integer.parseInt(vars.get("IDS_matchNr"));
String deletestring = "";
for (int i = 1; i < count; i++)
{
deletestring = deletestring + vars.get("IDS_"+i) + ",";
}
deletestring = deletestring + vars.get("IDS_"+count);
vars.put("STRING1", deletestring);
STRING1 now contains a comma-separated list of identities and ${STRING1} is then given to the API call.
On a related topic:
I spent quite a while trying to figure out the differences between Beanshell Sampler, Preprocessor, Postprocessor. Can someone please point me to an *idiot-proof* description with, preferably, sample code?
Thank you kindly,
Bohdan
-----Original Message-----
From: sebb [mailto:sebbaz@gmail.com]
Sent: Tuesday, September 23, 2014 6:02 AM
To: JMeter Users List
Subject: Re: Requesting help with regex and string usage
Also see the ForEach Controller:
http://jmeter.apache.org/usermanual/component_reference.html#ForEach_Controller
This is intended for use with the Regex Extractor.
If it is difficult to write a single RE to both extract the string and convert it into a a list of IDs, note that the Regex Extractor can operate on the contents of a JMeter variable, so you can use multiple extractors in sequence if necessary.
On 22 September 2014 17:26, Deepak Shetty <sh...@gmail.com> wrote:
> Hi
> see something like
> http://theworkaholic.blogspot.com/2010/03/dynamic-parameters-in-jmeter
> .html The Beanshell pre processor in the script shows how to iterate
> through the returned values extracted by regex - you can concatenate
> or manipulate this however you want in java or equivalent - if you
> need help with that as well then you probably need to give more
> details (e.g. the variable name etc)
>
> On Mon, Sep 22, 2014 at 7:12 AM, BOLB (Bohdan L Bodnar)
> <BO...@panduit.com>
> wrote:
>
>> I've a problem that apparently has occurred to other users (from an
>> internet search); however, I can't figure out how to do this in my
>> application (brain-dead?). Here's the background:
>>
>> I'm using an HTML-based API call to do a function in our product;
>> this call returns a large string that includes numeric IDs of
>> entities. I want to extract these IDs, build a string containing
>> them, and use this string in an API call. For example:
>>
>>
>> 1. API_1 call - returns "text, ID1, more text, ID2,...etc."
>> consisting of n IDs.
>>
>> 2. Regular Expression Extractor call - return variable is called
>> "ELEMENTS"
>>
>> 3. Build string that looks like "ID1,ID2,...IDn"
>>
>> 4. API_2 call with body having string defined in step 3.
>>
>> I have no problem in step 2 picking off any one element, putting it
>> in ELEMENTS and using it in step 4. I don't know how to do step 3
>> if Match Number is set to -1 in step 2. This doesn't look like
>> rocket science, but I can't figure it out. Would someone be so kind
>> as to either show me how to do this or refer me to a script that does this?
>>
>> Best regards,
>>
>> Bohdan
>>
>>
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@jmeter.apache.org
For additional commands, e-mail: user-help@jmeter.apache.org
Re: Requesting help with regex and string usage
Posted by sebb <se...@gmail.com>.
Also see the ForEach Controller:
http://jmeter.apache.org/usermanual/component_reference.html#ForEach_Controller
This is intended for use with the Regex Extractor.
If it is difficult to write a single RE to both extract the string and
convert it into a a list of IDs, note that the Regex Extractor can
operate on the contents of a JMeter variable, so you can use multiple
extractors in sequence if necessary.
On 22 September 2014 17:26, Deepak Shetty <sh...@gmail.com> wrote:
> Hi
> see something like
> http://theworkaholic.blogspot.com/2010/03/dynamic-parameters-in-jmeter.html
> The Beanshell pre processor in the script shows how to iterate through the
> returned values extracted by regex - you can concatenate or manipulate this
> however you want in java or equivalent - if you need help with that as well
> then you probably need to give more details (e.g. the variable name etc)
>
> On Mon, Sep 22, 2014 at 7:12 AM, BOLB (Bohdan L Bodnar) <BO...@panduit.com>
> wrote:
>
>> I've a problem that apparently has occurred to other users (from an
>> internet search); however, I can't figure out how to do this in my
>> application (brain-dead?). Here's the background:
>>
>> I'm using an HTML-based API call to do a function in our product; this
>> call returns a large string that includes numeric IDs of entities. I want
>> to extract these IDs, build a string containing them, and use this string
>> in an API call. For example:
>>
>>
>> 1. API_1 call - returns "text, ID1, more text, ID2,...etc."
>> consisting of n IDs.
>>
>> 2. Regular Expression Extractor call - return variable is called
>> "ELEMENTS"
>>
>> 3. Build string that looks like "ID1,ID2,...IDn"
>>
>> 4. API_2 call with body having string defined in step 3.
>>
>> I have no problem in step 2 picking off any one element, putting it in
>> ELEMENTS and using it in step 4. I don't know how to do step 3 if Match
>> Number is set to -1 in step 2. This doesn't look like rocket science, but
>> I can't figure it out. Would someone be so kind as to either show me how
>> to do this or refer me to a script that does this?
>>
>> Best regards,
>>
>> Bohdan
>>
>>
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@jmeter.apache.org
For additional commands, e-mail: user-help@jmeter.apache.org
Re: Requesting help with regex and string usage
Posted by Deepak Shetty <sh...@gmail.com>.
Hi
see something like
http://theworkaholic.blogspot.com/2010/03/dynamic-parameters-in-jmeter.html
The Beanshell pre processor in the script shows how to iterate through the
returned values extracted by regex - you can concatenate or manipulate this
however you want in java or equivalent - if you need help with that as well
then you probably need to give more details (e.g. the variable name etc)
On Mon, Sep 22, 2014 at 7:12 AM, BOLB (Bohdan L Bodnar) <BO...@panduit.com>
wrote:
> I've a problem that apparently has occurred to other users (from an
> internet search); however, I can't figure out how to do this in my
> application (brain-dead?). Here's the background:
>
> I'm using an HTML-based API call to do a function in our product; this
> call returns a large string that includes numeric IDs of entities. I want
> to extract these IDs, build a string containing them, and use this string
> in an API call. For example:
>
>
> 1. API_1 call - returns "text, ID1, more text, ID2,...etc."
> consisting of n IDs.
>
> 2. Regular Expression Extractor call - return variable is called
> "ELEMENTS"
>
> 3. Build string that looks like "ID1,ID2,...IDn"
>
> 4. API_2 call with body having string defined in step 3.
>
> I have no problem in step 2 picking off any one element, putting it in
> ELEMENTS and using it in step 4. I don't know how to do step 3 if Match
> Number is set to -1 in step 2. This doesn't look like rocket science, but
> I can't figure it out. Would someone be so kind as to either show me how
> to do this or refer me to a script that does this?
>
> Best regards,
>
> Bohdan
>
>