I am running a jmeter test, POST submitting a request i need to check the application log(openshift) to find an application specific message/id is generated ,it need to be captured as its a test data for my subsequent request. Any solution is much appreciated.
Depending on your setup you can go for:
Normal HTTP Request call to /api/v1/namespaces/$NAMESPACE/pods/$NAME/log
Run oc log command using OS Process Sampler or SSH Command sampler
Related
I'm running tests with JMeter (master+10 slaves) on elasticasearch. I'm getting error 400 for some requests but they are a bit elusive:
When I run the requests manually with curl or pasting them on kibana's console, I don't get errors.
Every time I run the tests using jmeter, using the same requests and under the same conditions, I get a different number of errors.
So I was thinking of inspecting the response bodies from jmeter. But all the ways I've tried failed:
I've created a View Result Tree element and checked all boxes on the "configure" panel. When I run the script, it logs everything except response data
I've tried a BeanShell post processor to write all responses on a file. But it apparently is being 'ignored' when I run the script
Both these solutions work on my machine, but not on the server (which I don't have total control over). I'm passing jmeter.save.saveservice.response_data=true on the command line to start jmeter.
What else could I try?
This is an optimization that JMeter makes for distributed testing related to the mode:
https://jmeter.apache.org/usermanual/properties_reference.html#remote_batching_config
To avoid JMeter stripping the response data set in user.properties of servers snd controller:
mode=Batch
As by default it is:
mode=StrippedBatch
By default JMeter slaves don't send response data to the master, you can choose a different sample sender if you need more data.
Writing response data into a file using Beanshell should work in any case (however consider using JSR223 Test Elements and Groovy for this), just make sure that:
your Beanshell PostProcessor is placed correctly according to JMeter Scoping Rules
there are no Beanshell-related messages in jmeter.log files
you will need to collect the log files from each slave manually after test run, they will not be generated on the master
I am trying to do a LDAP mod operation through Jmeter. Expected behavior - Jmeter would hit server A which in turn would hit server B. Actual modification operation would happen at server B. Server B would complete the operation and give response to server A which in turn would respond to Jmeter.
Now the issue is, Jmeter is always getting the "Referral" response message. However, manually we are able to change the password after hitting server A from different remote server.
Could you someone please suggest how to overcome this?
I am assuming this has been resolved. Just in case you are still wondering, #Rohan , my understanding is that you run jmeter on the command line:
$ jmeter -Jjava.naming.referral=true -n -t testplan.jmx -l log.jtl
JMeter won't have specific behaviour of its own. You will need to tell it to follow referrals by setting java.naming.referral property appropriately in the jndi.properties mechanism defined in the documentation for the JNDI LDAP provider, which you should already have in place for your application if you expect it to behave that way.
This must be easy but I am struggling so I post it here. I am new to Jmeter, and I have to use it to send messages. I am testing a messaging portal which uses a core messaging application where the portal gets the data from this application. Now there are clients who connect to this messaging application and when they send messages, the application processes it and the portal application displays it. I am using JMeter right now as a test harness simulating the client interface to send these test messages. My colleage who knows JMeter has created the .jmx file which has all the settings, the url, thread count,format of the message. All I have to do is open the .jmx file in GUI or on command line and send it. It works. I wanted this process of JMeter sending the messages automated in my cucumber step. So that when I write a step like:
'Given when clients sends a message'
then the step definition would be a command or script to execute the JMeter test plan.
I tried doing this by giving the line in my step definition:
system('start jmeter.bat -n -t sample.jmx ')
I am using ruby and the system command is the ruby way to execute external commands, in this case it is a windows command. -n is to run the JMeter in non-GUI mode and -t is to mention the .jmx file. The problem I have here is, anytime I run the JMeter in non-GUI mode, it opens a terminal, executes and the control stays there. So when I use this script in my cucumber steps, the control stays there in terminal and my cucumber scenarios fails.
How can I do this in a different way so that the JMeter test plan gets executed in the background or I get the control back to my cucumber step?
Note: I may have a solution using the ruby-jmeter gem : https://github.com/flood-io/ruby-jmeter but I am not finding a way how to simply execute this using the gem. Here in the gem he tells of running the test plan locally or on flood-io but not at a different url. In my case the url is an IP address where the messaging application is listening and I use JMS publisher in JMeter to send messages via GUI. I created the .jmx file using the GUI and the same can be used in command line successfully. Please let me know of any solutions.
Ok so I set up my JMeter to run remotely using one slave computer (possibly more to come), and it's working out for the most part EXCEPT that I can't fetch the response time over time-graphs function using the JMeter plugin. I'm still able to use the "PerfMon Metrics" tool to get the CPU/Memory values from the slave computer, so I don't understand how I'm not able to get the response time results.
Does anyone have any experience using that function?
I would check the master- slave configuration: be sure that
the same Jmeter release is used
same directory tree structure is used
Jmeter-plugins are installed on both systems
...
If you use a standard "Summary report" listener, and save data to a file in the master, then you can reload and analyse the data off line with any listener.
HTH
I am new to JMeter. I did my first script in JMeter.
My scenario is: clicking a button, i.e. after login, click that button. Thats it. Upto this i have recorded for my script using JMeter.
When i run for single user, it gives proper output for any different user. But when i run with concurrent users (2 or more users with User Parameters pre-processor), it shows error in clicking that button.
I have used View Results Tree as listener to see the results.
In sometimes, it does not show error. So i can't identify the exact reason, why it fails.
Can you please anyone can guide me regarding this?
I am completely new to this JMeter.
Thanks in Advance,
A 500 internal server error indicates jmeter is making the connection to your server and your server is having difficulty processing the request. You should probably look at your server log files to see if there are any errors or exceptions (apache/jetty/etc log file).
Additionally, when you DO actually have an issue with jmeter and you can't seem to figure out what is going on from your listener output, you can view the jmeter.log file created in the directory when jmeter is run from. This usually gives more detailed information regarding failures in jmeter.