How to resolve an error like "Assembly "AjaxControlToolkit, Version=3.5.605" on execution of JMeter Script? - jmeter

I have created a JMeter load test script for .Net Version 4.8 framework. It's successfully passed but on re-execution or on increasing thread group count it throws an error like "Assembly "AjaxControlToolkit, Version=3.5.60501.0, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e" does not contain a script with hash code "de1feab2"." in View result Tree in JMeter. Also attached Screenshot for your reference.
I have already handled ViewState and EventValidation. Also the created test script is working fine for thread group count 1. Can you please help me with steps to maintain the ScriptManager's hidden value as it's value is static in all the created steps in a script. Please reply asap.Actually, I need an immediate solution to the mentioned problem statement. Screenshot of Error throwing in JMeter

Looks like missing or improperly implemented correlation, for example you're sending a hard-coded (recorded?) parameter de1feab2 and its value is supposed to be dynamic.
You can record your scenario one more time and compare JMeter test plans - all the values which differ are a subject to correlation.
Another option is considering an alternative recording solution like BlazeMeter Proxy Recorder, it's capable of exporting recorded network traffic in "SmartJMX" form with automatic detection and correlation of dynamic parameters

Related

Load Test - Jmeter PreProcessor

I have a preprocessor that creates random uuid and random string as below
import java.util.UUID;
import org.apache.commons.lang3.RandomStringUtils;
String testId1=UUID.randomUUID().toString();
String testId2=RandomStringUtils.randomAlphanumeric(10);
vars.putObject("testId1",testId1);
vars.putObject("testId2",testId2);
the test plan is created as below
The post anomaly uses the above ids in the payload. The first time when the script is run the testId1 and testId2 in the request is coming as ${testId1} and ${testId2}
when I run this test for few samples in GUI i see these variables are generated. I run this test in distributed mode and I found from one server the testId1 and testId2 are generated but not from other.(Non GUI mode) what would be the issue here?
If there is "the issue" on the "other server" you will find the reason in jmeter-server.log file on that server. Normally JMeter prints sufficient amount of troubleshooting information to its log file, it's extremely useful especially when a JSR223 PreProcessor fails somewhere somehow.
Log verbosity can be increased for either particular components of for the whole JMeter application, see How to Configure JMeter Logging article for more details.
Remember that you should avoid scripting and stick to JMeter's built-in test elements where possible, in your case you can generate both variables using __UUID() and __RandomString() functions

Track the number of test cases executed, passed or failed, from dashboard report in email

I have created a Test Plan to Test Performance testing of API using Jmeter-4.0,
i am using SMTP sampler to send email where i am dynamically sending the Link of dashboard report generated when a Thread is run in background.
I have reviewed all files in report generation folder of dashboard report, but didn't find anything which can solve my problem.
Now i want to add certain information in my email like, number of test cases executed, number of test cases passed and number of test cases failed.
Can anyone help me how i can fetch those data as a variable or any other way ?
The information it being populated on the fly from the .jtl results file, it is not being stored in the structured form anywhere.
So the only way is to parse the .jtl results file and extract the required information from there.
You might find JMeterPluginsCMD Command Line Tool useful, it is capable of parsing the .jtl results file and storing the outcome in Aggrerate Report or Synthesis Report formats which both have TOTAL line at the bottom having the number/percentage of passed/failed tests, avg/min/max response time, throughput and other metrics
JMeterPluginsCMD Tool (and Synthesis Report if needed) can be installed using JMeter Plugins Manager

View Results Table of the Jmeter script converted from LR using latest Jmeter V3.2 doesn't capture all calls

When i tried to convert the LR script into Jmeter using Jmeter latest version 3.2 View results Table doesn't captures all calls , where as Summary Report as well as under Thread group>Recording Controller I can see all the calls.
How does it effects means. If I cannot see the calls in the View Results Tables ,I cannot do correlation, parameterization etc for the missing calls.
Does any one has encountered this wearied issue.
Note: Jmeter V3.1 works perfectly !
Please advise me!
Thanks,
Raj
This is not a bug.
As per the issue that was opened:
https://bz.apache.org/bugzilla/show_bug.cgi?id=61014
Starting with JMeter version 3.2 the number of results in View Results Tree is limited by default to 500 entries.
If you want more entries, you have to set the property:
view.results.tree.max_results
to a higher value, or to "0", if you don't want to impose any limit.
You can set the property in bin/user.properties
But be aware that this involves less responsiveness of JMeter during Load Test.
More info might be found at:
http://jmeter.apache.org/usermanual/component_reference.html#View_Results_Tree
You can try the following steps:
Add "HTTP(s) Test Script Recorder" under the workbench.
Add "View Test Results Tree" under the "HTTP(s) Test Script Recorder".
In the "HTTP(s) Test Script Recorder" config, select the following options: Target Controller: "Workbench > HTTP(s) Test Script Recorder" & Grouping: "Put each group in a new Transaction Controller".
Start the recorder, finish recording, and stop the recorder.
Add a "Thread Group" under the "Test Plan" and you can drag/copy the Transaction controllers to the Test Plan.
Note: The "Grouping" option would really depend on how you would like to configure your transactions however this is a recommended approach during recording.
Let me know if this helps.

JMeter aggregate report does not aggregate in non-gui mode

I have a JMeter test plan which is running two thread groups, with each thread group containing a controller and HTTP cookie manager. The controller is a custom controller, but I don't think this should affect JMeter's output.
Outside the two thread groups, I have an Aggregate Report component. Here is a screenshot of my TestPlan:
If I run the test in GUI mode, as you would expect, the Aggregate Report creates an.... aggregate report. That is, the results are aggregated on my test/sample labels, and I get one row for each test, and a range of attributes, as below:
I also have configured this Aggregate Report component to output to a file, by entering a filename in the "Filename" section, and pressing the "Configure" button and checking the attributes I'd like to be output (I've kept it simple for now with just the label, elapsed time and response code).
When I run my test from non-gui mode, this output file is the only way to view the results. However, the output file is rather useless and it does not aggregate the results, but instead gives me output similar to the usual jtl output, i.e. it doesn't aggregate the results at all. Pretty useless. Here is the top few lines of my output file, you can clearly see they are not aggregated:
778,HRLogin,200
426,HRLogin,200
784,HRLogin,200
...
So, the obvious question, am I doing something wrong here? Why is my aggregate report output not an aggregate report? Surely JMeter has a way for producing aggregate output in non-gui mode, without me adding any plug-in or extensions. For the record I need to script this process at some point, so opening a JTL in gui mode is not acceptable, I need this entire process to occur within non-gui JMeter and scripts.
Thanks!
The values you see in the Aggregate Report GUI are calculated from the raw data which is stored in the .jtl file.
If you need to make the process unattended, depending on metrics you need to obtain here are the options:
Since JMeter 3.0 there is a HTML Reporting Dashboard which contains some tables and charts. You can either generate a dashboard from existing results file or make it a part of your test. See Generating Reports chapter for the relevant commands.
Another way to get basic HTML report is running JMeter via Ant Task or Maven Plugin - in both cases you'll get test output like:
See Five Ways To Launch a JMeter Test without Using the JMeter GUI guide for details on configuring a JMeter test run through Ant and/or Maven. There is a number of pre-defined .xsl stylesheets in "extras" folder, you can take whatever you like and customize if needed.
You can also consider running your JMeter test via Taurus tool, it provides interactive console and web-based reporting and has few more options to export test results.

Jmeter test fail on same app different servers (Spring webflow + Primefaces)

I'm having a weird problem with JMeter.
Scenario:
Web app running on localhost
Record a simple test on Jmeter (login + 1 search)
Execute the test on localhost with Jmeter. Test runs OK.
Change the server and port on HTTP Request Defaul for another server's IP and port running the same version of the app.
The test runs but fails at the search with ".FlowExecutionRestorationFailureException: A problem occurred restoring the flow execution with key 'e3s2'"
If i do the same swapging servers (record on remote server and try to execute on local) the behavior is the same.
¿Any clues of what can it be? I don't understand why it manages to do the login and navigate on another server but fails on other action.
In short, if I record a test it fails at somepoint if I change the server.
Software_
Jmter 2.12
Primefaces 5.0
Spring Webflow 2.3.1.RELEASE
Apache Tomcat 7.0
My expectation is that there is at least one dynamic parameter which is currently being hardcoded into your script. I would suggest to do the following:
Record your login+search flow once again
Inspect 2 .jmx scripts to detect any differences (i.e. one or more parameters having different values)
Once you find those problematic parameters you'll need to look into server's response body/headers/cookies/ to see where it lives.
As soon as you know where the parameter value lives you can use one of the following PostProcessors:
Regular Expression Extractor
XPath Extractor
CSS/JQuery Extractor
The whole process is called "correlation" so you can use "JMeter correlation" as a search term if above information is not enough to resolve your problem.
The problem was some xhtml components that didn't had any specified Id so jsf would set something like id="mainForm:j_idt12". Since my test don't need to work on dynamic generated html (are simple tests) setting the ids solve the poblem.

Resources