Searching a number in a specific string with regexp in jmeter - regex

I want to find a specific number from a HTML response.
For example, I want to extract 3 from publicationID3publicationID.
Does someone know a solution with regexp?

Add Regular Expression Extractor Post Processor as a child of the request, which returns to you this string.
Configure it as follows:
Reference Name: publicationID (you can use any variable name here)
Regular Expression: publicationID(\d+)publicationID
Template: $1$
other fields can be left blank.
You can later refer publication ID as ${publicationID} or ${__V(publicationID)}
You can see what matches does your Regular Expression return using View Results Tree Listener (select RegExp Tester from dropdown). Another option is Debug Sampler again with combination with View Results Tree.

you can use \d to match a number using regex.

Related

How to use regex to get value from response header in Jmeter

I am using regex to get value from response header in JMeter,
I try to get the last value in query tt_unixtime and I failed.
Can someone please advise how to user regex to get the last value?
I Created a variable called time44444444 and I want it to get the value from the response,
the problem is that it stored nothing.
You have a few issues in your Regular Expression Extractor settings for getting the value matched:
Apply To: Response Headers
Regular expression should be (\w+) - any alphanumeric characters
Template should be $1$ - first group
Match No. should be be 1 - find first match
The template used to create a string from the matches found. This is an arbitrary string with special elements to refer to groups within the regular expression. The syntax to refer to a group is: '$1$' to refer to group 1

Jmeter parameter extraction

I am getting a result in my jmeter test that I don't understand:
I am trying to extract the "totalRunning" value from this Json response:
{"notifications":[],"taskNotificationInfo":{"totalRunning":0,"totalCompleted":0,"totalCompletedWithErrors":0,"totalFailed":0,"totalPending":0,"requestTime":1458628767436,"hasRecords":false}}
My regex is configured as following:
Reference Name: TotalRunning
Regular Expression: "totalRunning":"(.+?)"
Template: $1$
Match: 1
Default Value: 1
screen shot:
I keep getting the default value instead of "0" in this case.
Am I extracting it from the wrong place?
Any help would be appreciated.
There is no problem with your regex totalRunning":(.+?),"totalCompleted"
only you need to select radio button Body instead of Body As a Document
refer snapshot:-
Change your regular expression as below:
Regular Expression: "totalRunning":(\d+)
In the question "totalRunning":"(.+?)" is being used as regular expression. Since values of totalRunning is not surrounded by quotes. So none was being matched and default value is being picked.
Below regex can also be used:
"totalRunning":(.+?),
Change your "Field to check" to "Body" as "Body as a document" is for binary files like Word, Excel, PDF, etc. see How to Extract Data From Files With JMeter article for more details. JSON is a usual text so it should be treated as "normal" response.
Also there is a special Post Processor - JSON Path Extractor available via JMeter Plugins project. In case of complex JSON, multiple or conditional matches, etc. it might be better and easier to use it.
The relevant JSONPath expression will be: $..totalRunning[0]

extracting a part of an href in JMeter

i'm stuck with the following.
i have a page on ibm filenet containing a list with objects (these are documents or files) which have a specific classID and ID in their href. i need JMeter to get all HREFS containing a specific type of ID:
<a href="http://ipaddress/Workplace/Browse.jsp?eventTarget=WcmController&eventName=GetInfo&id={350B278C-DE7D-44DE-9B54-099672152476}&vsId=&classId={F14AC85A-4474-479A-9B4E-BCBA180B7975}&objectStoreName=Nice&majorVersion=&minorVersion=&versionStatus=&mimeType=&mode=&objectType=customobject&isPopup=true" target="_blank">
the 'classId' = {F14AC85A-4474-479A-9B4E-BCBA180B7975} is the right class id type i need to click on the page (there are several files with this classID but that is no problem). on the other hand the 'id' is thus different for each file.
how can i extract all 'id's containing this specific classId and make JMeter pass it to the next sampler, so it clicks on just one of them? what will my RegEx look like?
As already mentionned in the comment, I do not know jmeter and how to implement it in the code. A regular expression to match both id and classId within a link would be:
~(classId=|id=)([^&]*)~g
This is, search for a string classId= or id= first. If one of the strings is found, match any character afterwards, except an ampersand (&), as many times as possible (*) and capture it in a group (brackets). Possibly you need to fiddle with the parameters (e.g. /g for global) after the regex.
See this regex101 fiddle for more information.

How to use reg expression with multiple values?

I have multiple products on a website and each product has following info:
ProductId
ProductName
ProductPrice
I know how to use it for a single value like ProductId, but how should I use it for all the values?
Example: I select product1 from a list and then the other fields should be automatically updated, too.
JMeter's regular expression extractor stores match groups as JMeter Variables in form of
reference name -> underscore -> match number -> underscore -> group number
For example, if you have the following Regular Expression Extractor configuration:
Reference Name: LINK
Regular Expression: (.+?)
Template: $1$
And add it as a Post Processor to i.e. HTTP Request to http://example.com you will receive the following variables:
LINKS_1=http://www.iana.org/domains/example
LINKS_1_g=2
LINKS_1_g0=More information...
LINKS_1_g1=http://www.iana.org/domains/example
LINKS_1_g2=More information...
So you'll be able to access link "href" attribute as ${LINKS_1_g1} and link text as ${LINKS_1_g2}
You should be able to use similar approach for your testing.
See Using RegEx (Regular Expression Extractor) with JMeter guide for more information on the domain.

JMeter - Selecting Part of a Regular Expression

I have a JMeter Regular Expression Extractor which searches for the following regular expression:
myId=[0-9]{10}
This retrieves the 10 digit numeric id number from my websites form. I then set a "Reference Name" of myId for the id number. My template value is $0$ and my match No. is set to blank.
In my HTTP Request, I then pass a parameter value of:
${myId}
When I run my JMeter test, it inserts text in the form of:
myId=myId=1234567890
How do I get rid of the duplicate myId=?
Not sure about JMeter's implementation of RegEx but normally
myId=[0-9]{10}
would match everything, including myId=. What you need is to define capture groups that you want extracted using () and then you will reference the capture group array and get the item you want. E.g.
myId=([0-9]{10})
group 0 would still be the whole thing but group 1 would be just the numeric portion as delimited by (), i.e. without myId=. Hope this helps.