I am going to do some test research about APIs, and I choose JMeter as the tool. But I cant use JavaScript in JSR223 PreProcessor. I even dont have the options of JS at the ScriptLanguage drop-down menu. Please help me.
Nashorn engine which was providing JavaScript support has been removed recently, if you really need to use JavaScript in your JSR223 Test Elements you will either have to downgrade you Java to the version where Nashorn is still there (the lowest version JMeter can run on is OpenJDK 8
Alternatively you can use GraalVM which brings JavaScript support into the latest JDK versions
And last but not the least, since JMeter 3.1 it's recommended to use Groovy as the scripting language so it might be a good opportunity to consider migration to Groovy as it has much better performance comparing to JavaScript and other scripting options. More information: Apache Groovy - Why and How You Should Use It
Related
I just installed JMeter on a new computer. On this computer, I don't see JS, and it's saying engine not found. I couldn't find any specific answer to why it's not showing up. Is there something else I need to install?
Nashorn JavaScript Engine which was providing JavaScript language support for the JSR223 Test Elements has been removed from Java 15 and later so the options are in:
Downgrade to a previous JRE version where the Nashorn engine is still there, the minimum Java version for running latest JMeter 5.4.1 is Java 8
Consider using GraalVM runtime which comes with JavaScript support bundled
Consider migrating to Groovy as it's recommended scripting option since JMeter 3.1 and it has the best performance comparing to other scripting options in JMeter.
Is there any impact/effects in using an older version of JMeter?
Since in the JMeter best practices wiki page, it is advised not to use the versions that are older than 3 versions of the current one.
Provide more input in this regard, since am using an older version which is more than 3 versions of the current one.
Help needed.
It depends on Test Plan nature and what Test Elements you're using. Normally newer JMeter releases contain bug fixes and performance improvements so theoretically you can achieve higher throughput using newer JMeter version.
There is JMeter Performance evolution across versions wiki page where you can see the trend of improving JMeter performance across versions so if the throughput is critical for you in terms of load test lab costs - it's better to consider upgrade asap.
On the other hand if your test works fine you can continue using earlier JMeter version in order to keep consistency of the test results for regression testing purposes. Moreover, if your test relies on JMeter Plugins - some of them simply might stop working with newer JMeter version due to JMeter API change.
So for existing project it is OK to keep previous JMeter version given potential cost of migration, but for the new one it is highly recommended to stick to the latest JMeter version. In both cases make sure to follow JMeter Best Practices and recommendations from the 9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure article.
For migration, always read release notes in order to know what to do:
https://jmeter.apache.org/changes.html#Incompatible%20changes
In latest JMeter there are irrelevant plugins in Plugins Manager (start with jmeter - ) as jmeter - JDBC Support
It display JMeter components which are part of JMeter and can't be uninstalled,
Manager UI allow to uninstalled and if clicking Apply Changes and Restart JMeter it seems to have no real effect, but it's still very confusing.
It seems like a bug, but is it Plugin manager issue or JMeter? is there some purpose for displaying JMeter core features as plugins? can it be removed?
As feature is provided by plugins-manager, it is a plugins-manager issue.
I would suggest you report it on their forum.
The idea was to remove plugins (even core jmeter) that were not used.
As you know, Apache JMeter is built with Plugin Architecture in core, all protocols are plugins even core ones.
Currently, we are using the JMeter 2.13 version for load testing. I am planning to migrate to JMeter 3.0 version.
I have not started working on the JMeter 3.0 till now.I don't know pros and cons of it.
Please suggest me, Shall I upgrade scripts to 3.0 or shall I continue with Jmeter2.13.
Of course it's better to go with newer version. Apart from new technologies are showing up each day and you need to be able to test them, there are always bug fixes and improvements, performance boost,...
For full list of fixes, improvements and new stuff, refer to change logs:
History of Previous Changes
By the way, if you are planning to move to newer version, why don't go to 3.2 directly?
3.1 to 3.2 Change Log
The general recommendataion is use the latest version of JMeter where possible
Pros: newer JMeter versions normally come with new features, performance improvements, bug fixes, etc.
Cons:
there could be some incompatible changes (normally you will need to override some JMeter Properties to revert JMeter configuration to match previous version behaviour, restore deprecated elements if you are using them in the tests, etc.
results on newer JMeter version might be not inline with what you used to have, i.e. due to aforementioned performance improvements JMeter could generate higher loads
Not able to open Test plan on Jmeter version v3.1 which has been created on JMeter version v2.12 r1636949 . Please provide if there is any solution to this.
Take a look at jmeter.log file, it usually contains enough troubleshooting information so you will be able to figure out the cause of the problem.
I can see 3 reasons for this behavior:
You are using Test Element(s) which was(were) deprecated. If this is the case - check our Incompatible Changes section of JMeter release notes to learn what component(s) should be used instead
You are using JMeter Plugins which were installed on JMeter 2.12 and JMeter 3.1 instance does not have these plugins. In that case use JMeter Plugins Manager to re-install the missing plugins
You are using 3-rd party libraries in JUnit or Beanshell code. In that case copy them from JMeter 2.12 somewhere into Classpath of JMeter 3.1