Use JMeter Siebel CRM Recorder for other applications - jmeter

The possibility for autocorrelation with the Siebel CRM Recorder is great and I want to use it for non Siebel CRM Applications. I tried something on other applications but nothing happens.
Example Request:
<request>
<output local-name="UserID"/>
Example Response:
<data UserID="123" />
Siebel Correlation settings:
Reference name: UserID
Request Regex: UserID="(.+?)"
Response Regex: UserID="(.+?)"
Match Number: 1
Match Group: 1
Field To Check: Body
When I record the example request, no regex is added... Is there something wrong?

Most probably the issue is due to this line in the class that creates correlation rules:
https://github.com/Blazemeter/SiebelPlugin/blob/master/src/main/java/com/blazemeter/jmeter/correlation/siebel/SiebelCorrelationEngine.java#L70
If you content type is not HTML then no rule will be created.
You can try removing it and recompile code.

You won't be able to use Siebel CRM Recorder for normal HTTP/HTTPS protocols, if you're looking for a recording solution for web applications with automatic correlation you should be using BlazeMeter Proxy Recorder instead.
Check out How to Cut Your JMeter Scripting Time by 80% for more details.

Related

How to exclude google apis from Jmter mobile recording?

When i'm trying to record a Jmeter script from a mobile app, as soon as i connect my mobile Jmeter starts recording below requests continuously.
www.google.com/gen_204`play.googleapis.com/generate_204`connectivitycheck.gstatic.com`
I have tried excluding these URLs from request filtering. Under URL patterns to exclude i have below URLs mentioned
^((?!google).)*$`www.google.com/gen_204`play.googleapis.com/generate_204`http://www.google.com/gen_204`play\.googleapis\.com`connectivitycheck\.gstatic\.com`
But still Jmeter is recording these requests continuously.
Can someone help me to resolve this issue.
Thanks.
Add the following regular expressions to "URL Patterns to Exclude" input field under Requests Filtering tab of the HTTP(S) Test Script Recorder:
.*google\.com.*
.*play\.googleapis\.com.*
.*connectivitycheck\.gstatic\.com.*
and so on for every domain you want to exclude from the recording scope.
Just remember to escape meta characters with a backslash
More information: Excluding Domains from the Load Test

Can JMeter do automation testing like Selenium can do?

i am still new to JMeter and i was assigned to a work that I will need to use JMeter to perform automation testing. The idea is to write script using JMeter and run the script to fill in the forms in the website. I was curious that can JMeter use different data from the database to fill in the form of the website everytime it execute?(unique data for every user)
I have followed this tutorial (https://www.blazemeter.com/blog/fill-forms-and-submit-with-jmeter-made-easy/ ) and it succeed, however, when i try to change the parameter name (to some other names that do not matches the field name found in the inpect mode), it still works. So i was wondering how JMeter knows where to put in the parameter even i have change to a wrong field name?
As per JMeter Project main page:
JMeter is not a browser, it works at protocol level. As far as web-services and remote services are concerned, JMeter looks like a browser (or rather, multiple browsers); however JMeter does not perform all the actions supported by browsers. In particular, JMeter does not execute the Javascript found in HTML pages. Nor does it render the HTML pages as a browser does (it's possible to view the response as HTML etc., but the timings are not included in any samples, and only one sample in one thread is ever displayed at a time).
Browsers don't do any magic, they execute HTTP Requests, wait for response and render it. JMeter in its turn can execute the same HTTP requests so traffic would be the same, however it will not render the response, but rather measure the time and collect some more metrics.
If you change the names of the inputs in the form most probably the request will be successful, to wit you will get HTTP Status Code below 400 hence JMeter will mark the result as "green", however if you inspect the response using View Results Tree listener you will see that the form is not filled and/or you still at the same page.
If you want to use JMeter for checking the data returned by the application you're testing consider using JMeter Assertions to test presence of expected values, absence of errors, set response time thresholds, etc.
You can automate the form submission or order placement usin JMeter. You can JMeter for API testing as well by adding assertions. But the main purpose of the JMeter is to test the performance of the application. Its not like selenium which performs actions on the browser whereas JMeter sends the request in various protocols to relevant server and can also simulate many users at the same time.
If you want to do extensive automation testing,JMeter isnt the ideal tool for that.
You can use webdriver sampler to run the selenium with jmeter. It requires to configure sampler and browser config which are plugin and can be downloaded using plugin manager.
For more info:-https://www.blazemeter.com/blog/jmeter-webdriver-sampler/
Now, without the plugin it is working on protocol level and not on the frontend as pointed out in the above comments.
So, yes it can depend on which layer you want to work. It can work on frontend like selenium using the webdriver plugin and can submit the form with different data as a direct request to the server without using the frontend/GUI.
Hope this helps.
It depends on what you are trying to automate. If you plan to automate API invocation where there are some pre-requisites like grabbing tokens, cookies, session IDs from the browser, then JMeter can probably be used where existing JMeter capabilities can be leveraged using BeanShell scripting and other plugins.
But if you plan to have a full blown UI automation framework then JMeter might not be an ideal choice.

How to submit an HTML Post Request with JMeter to an oracle-apex website

I am encountering an issue with Jmeter when attempting to stress test an oracle apex website. The issue I'm having is stemming from an ajax issue.
With Jmeter I am trying to simulate a button click on page one of an application with an HTTP Post Request on the page:
/Capps/wwv_flow.ajax
I am passing in the following variables:
p_flow_id 101
p_flow_step_id 1
p_instance ${sessionid}
p_request PLUGIN=ijiPvZ-iJYfT0ihaQKUMZz3Lcjg8SHOXpMeHDzckC5k
p_json {"pageItems":null,"salt":"258015622351528748546171137179439761614"}
The first three are the applicaiton number, page number, and sessionid (the sessionid was retrieved in a earlier step using a regex extractor) Also, the p_request and p_json are encoded.
I noticed from using chrome in developer mode that the p_request string and
the last part of the p_json string often change with each run through of the button click
I was unable to find any information online that could help explain this occurs so that I could find a solution to simulate the button click.
Note I am having a similar issue on another page where I attempt to submit a simple form.
Any assistance would be greatly appreciated, thank you,
Zac
Looking into Configuring Apache JMeter for Apex article it seems you need to correlate these p_request and p_json parameters in exactly the same manner as you do for p_instance (assuming different relevant Post Processors of course)
Alternatively you can record your test scenario using a cloud-based proxy tool which is capable of exporting recorded scripts in "SmartJMX" mode with automated correlation of all detected dynamic parameters applied, check out How to Cut Your JMeter Scripting Time by 80% article for more details.

How to use jmeter using ant task - load testing on Dot Net application

I have just tried jmeter examples using ant task. I got the HTML output. Now,
I built my application using c#.net,asp.net,javascript,jQuery,Ajax,Json etc.
This is the url http://localhost/test/pagemanager.aspx which shows my
LOGIN Screen. Once after login, the user can access over multiple menus(pages) to access like checking their personal data, overall student details like batch wise, registering a new student etc... My URL http://localhost/test/pagemanager.aspxremains constant at every time.
The site can be accessed by multiple users for multiple times. I needs to find a load testing. Can some one give me a configuration step to find load testng to my application.
Thanks in advance.
First of all I would recommend recording your test scenario steps starting from login via JMeter build-in HTTP(S) Test Script Recorder.
See JMeter Proxy Step by Step guide for detailed instructions.
Once you have recorded test flow you'll need to do some correlation as the nature of ASP.NET applications assumes mandatory dynamic parameters like VIEWSTATE. So you'll need to extract VIEWSTATE and similar from previous server response and add it to next request.
See ASP.NET Login Testing with JMeter for more details.

jmeter regarding performance and load testing

Let me describe the issue which i have been facing.
i want to do performance and load testing on our internal website. which has login and other functionalities.
the issue i am facing that when i hit 12 or any number of request using http sampler then i am getting same response from all the 12 request. But actual scenario is that webpage displays different data for different page.
I checked using firebug and everything is working fine over there using correct response from request but when i use jmeter i am using same response from every request.
Please let me know if anybody had faced same kind of issue of is there anything i am doing wrong in configuring script.
Try to add HTTP Cookie Manager to your test-plan to the root (Test Plan) node or to the Thread Group node.
As per jmeter documentation:
The last element is a HTTP Cookie Manager. A Cookie Manager should be
added to all web tests - otherwise JMeter will ignore cookies. By
adding it at the Thread Group level, we ensure that all HTTP requests
will share the same cookies.
Ensure that parameters values that are dynamic are not hard-coded (after recording jmeter scripts, for example): no hard-coded JSessionID values in your HTTP requests, e.g..
Ensure you don't miss any necessary params in your HTTP requests.
JMeter does not process Javascript or applets embedded in HTML pages.
Your problem may be caused by this feature.
As per jmeter documentation:
JMeter does not process Javascript or applets embedded in HTML pages.
JMeter can download the relevant resources (some embedded resources
are downloaded automatically if the correct options are set), but it
does not process the HTML and execute any Javascript functions.
If the page uses Javascript to build up a URL or submit a form, you
can use the Proxy Recording facility to create the necessary sampler.
If this is not possible, then manual inspection of the code may be
needed to determine what the Javascript is doing.
I would also recommend your to look first into Jmeter reference before further scripting activities - this may prevent from some faults and frustration.
At least these:
Building a Test Plan
Elements of a Test Plan
Building a Web Test Plan
Building an Advanced Web Test Plan
Hope this helps.
I would suggest - Use Jmeter's Regular Expressions. You may be able to resolve this issue with RegEx. Post using regex, use 'View Results Tree' listener to check if you are getting apt response for each of your threads.
You can also analyze your results using Blazemeter's listener that gives you more insights into your test.

Resources