jmeter log shows an error jmeter.protocol.http.sampler.HTTPSamplerBase: Cannot find .className property for htmlParser - jmeter

I have run testplan.jmx (Jmeter file) file from docker jmeter using one .sh run script, after running getting below error
ERROR - jmeter.protocol.http.sampler.HTTPSamplerBase: Cannot find .className property for htmlParser, ensure you set property:'htmlParser.className'
Please suggest what can be done to resolve the issue? it would really helpful if any suggestions.

It looks like your JMeter installation is corrupt, try re-installing the latest version of JMeter (JMeter 3.1 as of now), you can get it from JMeter Downloads page.
As a workaround try adding the following line to user.properties file:
htmlParser.className=org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser
or alternatively pass it through -J command-line argument like:
jmeter -JhtmlParser.className=org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser -n -t ....
References:
Bug 55632 - Have a new implementation of htmlParser for embedded resources parsing with better performances
Apache JMeter Properties Customization Guide

Related

JMeterLibException: 'Incorrect log file format'

JMeter 2.12
python 2.7.18
I'm getting JMeterLibException: 'Incorrect log file format' for the below code using robot framework
${logPath}= set variable C:/Tests/output1.log
run jmeter C:/Tests/apache-jmeter-5.4.1/bin/jmeter.bat C:/Tests/100users.jmx ${logPath}
${result} analyse jtl convert ${logPath}
log ${result}
FOR ${ELEMENT} IN #{result}
log dictionary ${ELEMENT}
It seems that your "JMeterLib" (whatever it is) expects some specific JMeter .jtl file format and JMeter 5.4.1 default settings are not compatible with it.
Unfortunately we cannot really help you without seeing this "JMeterLib" output or source code so I can only provide a generic piece of advice:
JMeter .jtl file output is controllable via special set of properties responsible for Results file configuration, once you determine what exact metrics does your "JMeterLib" expect you can amend JMeter's configuration accordingly in order to make it compatible with your 3rd-party software assumptions.
More information:
Configuring JMeter
Apache JMeter Properties Customization Guide
You should use jtl file extension instead of log
${logPath}=set variableD:/Tests/output1.jtl

How to disable trace.jtl for JMeter + Tauras execution

We are running JMX using Tauras setup. To run a lightweight test we need to disable all logging.
I tried by adding:
modules:
jmeter:
properties:
log_level.jmeter: 'FATAL_ERROR'
logging:
level:
ROOT: 'ERROR'
Log_Level: 'DEBUG'
We still see the trace.jtl file with log information. Can anyone help us with how to disable logging to trace.jtl file?
Do we have any specific command in Tauras to do this?
Thanks.
I don't think trace.jtl is controllable by these properties, what you change controls the verbosity of JMeter Logging subsystem, to wit the contents of jmeter.log file under the artifacts directory.
trace.jtl is a different beast, it contains request/response details provided by adding yet another Simple Data Writer configured like:
So if you want to get rid of it - locate the write-xml-jtl line in your configuration script and comment it (or remove it or set it to something different than full or error), on next execution you won't see this trace.jtl file

Not able to open script .jmx file in jmeter,error while loading script in jmeter missing class com.thoughtworks.xstream.converters.conversionexception

error while loading script in jmeter missing class
com.thoughtworks.xstream.converters.conversionexception
I have tried the plugin manager, also tried increasing the heap size still it's not working.
First need to download:
"Plugins-manager.jar". or from here
Then after this:
place/move it from downloads to your root directory(put the file into lib/ext directory)
Final step: Restart jmeter.
for more reference check this too.

Unable to pass arguments to a .jmx files from build.gradle file through jmRun

i am facing multiple problems with my .jmx file.
I am working with bzm-concurrency thread group
1) it is not recognising the standard format of passing the user defined values
like: ${__P(SERVER_NAME,localhost)} instead of passing "localhost" to my script it is appending "${__P(SERVER_NAME,localhost)}" to my url.
After passing only the value i.e (localhost) it is working fine
2) Also, iam running my jmeter script from build.gradle file and iam unable to pass the url and other details from them
|SERVER_NAME|${__P(SERVER_NAME,localhost)}| --> this code is not working
|SERVER_NAME|localhost| --> this code is working fine
jmeter {
jmTestFiles = [file("src/main/Jmetrscript.jmx")]
jmSystemPropertiesFiles= [file(path of my properties file)] //to add additional system properties
jmUserProperties = ["SERVER_NAME ="+System.getProperty('SERVER_NAME','localhost'), "SERVER_PORT ="+System.getProperty('SERVER_PORT','9080') ]
enableExtendedReports = true //produce Graphical and CSV reports
}
when i run this using gradlew jmRun -DSERVER_NAME=localhost it is not passing the value.
As per JMeter Gradle Plugin - Advanced Usage
Supported JMeter commandline arguments (see full list here):
-p, --propfile {argument}, the jmeter property file to use
-q, --addprop {argument}, additional property file(s)
-t, --testfile {argument}, the jmeter test(.jmx) file to run
-J, --jmeterproperty {argument}={value}, Define additional JMeter properties
-D, --systemproperty {argument}={value}, Define additional System properties
-S, --systemPropertyFile {filename}, a property file to be added as System properties
-r, --runremote (non-GUI only), Start remote servers (as defined by the jmeter property remote_hosts)
-G, --globalproperty (argument)[=(value)], Define Global properties (sent to servers), e.g. -Gport=123, or -Gglobal.properties
So you should pass JMeter Properties via -J command-line argument like:
jmRun -JSERVER_NAME=localhost etc
References:
Overriding Properties Via The Command Line
Apache JMeter Properties Customization Guide

Jmeter: How to set jmeter.services.FileServe default value?

While executing the test through JMeter I found in Jmeter log:
2017/12/21 02:37:06 INFO - jmeter.services.FileServer: Default base='/u02/project/gold'
2017/12/21 02:37:06 INFO - jmeter.services.FileServer: Set new base='/home/project/gold/JMX'
I am executing the test from /u02/project/gold/apache-jmeter-3.1 but do not know from where JMeter set new base value which is another directory '/home/project/gold/JMX'? Please let me know how I can restrict jmeter to set new base value?
As per Apache JMeter version 3.3 FileServer class source code:
private static final String DEFAULT_BASE = System.getProperty("user.dir");// $NON-NLS-1$
So it should take user.dir (User working directory) Java System Property value as a default
If you need to override this to have another value you can set it by adding the next line to system.properties file (lives in "bin" folder of your JMeter installation)
user.dir=/some/custom/path
JMeter restart will be required to pick the property up.
Another option is setting the property value via -D command-line argument like:
jmeter -Duser.dir=/some/custom/path -n -t test.jmx -l result.jtl
More information:
Configuring JMeter
Apache JMeter Properties Customization Guide
Overriding Properties Via The Command Line

Resources