Can we print the counter values Jmeter when running via command prompt? - jmeter

This is the Jmeter script for the application.
1. Validate username
2. Validate Password
If controller
Counter Variable + 1
3. User Info
4. Settings
5. Payments
etc...
20. Logout
After Login, I have created counter variable and incremented the number..
I wanted to print the counter so that when running command prompt along with
Active: 15 Started: 15 Finished: 0 summary.. etc.
During the run, I wanted to give the number of logged in user.. Is there any way to print the counter value so that i can give the logged in user count?
Thanks

Please check the below to print output to cmd line. Put whatever logic you want and use OUT.println to print it to CLI console.
Hope this helps.

Related

How to wait for user response for a limited time else proceed with script in shell

I am trying to set up a shell script where some default arguments are pre-assigned and the user is prompted to press any key to change those default options. If no response is provided, the script should proceed with the default arguments in say 'x' seconds.
I have seen some responses using seconds in a while loop but i am guessing there could be something easier than that.
I want some like:
1) Show default arguments to user
2) Ask for any response if they want to change it. If no response is received in the desired time frame, proceed with default arguments
Need help with step (2)

How to conditionally exit in jmeter

I have few steps in my script. I am testing it for 1000 users.
1. Validate username
2. Validate Password
3. User Info
4. Settings
5. Payments
20. Logout
etc...
I would get a token on password call, if call is success and then I would extract token run all the steps..
But If this is failed, then I don't want run all the step on the thread because it will definitely fail. It should go to step 1 again rather than running all the steps.
Consider put your steps until token created inside While Controller
The While Controller runs its children until the condition is "false".
As a controller Condition field you can check last sampler failed (assert that token is extracted)
${JMeterThread.last_sample_ok}
And it will loop until token retrieve and continue flow

How can run JMeter with limited CSV login details for multiple threads ?

Im just trying to run my JMeter script for 20 threads. I'm use CSV data set config for read login data. I set there are only 5 login details in CSV file. When i run the script only first 5 request got pass and rest of the thread request got fail. Anyone can suggest a solution. Thanks.
Apply the following configuration to your CSV Data Set Config:
Recycle on EOF - True
Stop thread on EOF - False
When JMeter reaches the end of the CSV file it will start over so 6th thread will get <EOF> as the value, 7th thread will pick 1st line, 8th thread will pick 2nd line, etc.
You can put your login request under the IF Controller and use the following condition:
"${line}" != "<EOF>"
to avoid the login failure due to this <EOF> variable value.

JMeter and random variable along with if controller

i want to control my sampler execution by using a random variable . I have a sequence of hits login,welcome,Bla,log out . i want the log out to be performed for 6/10 requests and let others do not login(so to speak 6 requests will perform the whole sequence including log out, 4 of them will perform will not perform log out ).How to achieve the same in JMETER
I have added a random variable rand and set it between 1-10 at the beginning of the thread group .Then just above Logout sampler i placed an IF controller were i check ${rand}>4 . How ever i always get all sequence executed . Please suggest what am i doing wrong
Your approach is a little bit weird, my expectation is that the problem is in the following areas:
Your IF Controller condition is wrong (check jmeter.log file for any suspicious entries)
Your random variable setting is wrong, i.e. it has the same value for all virtual users (threads) so they will either be executed all or none
So I would recommend using Throughput Controller or Switch Controller in order to set up this 60/40 distribution.
See Running JMeter Samplers with Defined Percentage Probability article for more details.
Random Variable in Jmeter is saved in long format be default so
${rand} > 4 won't work. You need to change
Condition to ${rand} > 4.0
or change Random Variable Output format to 00 (2 digits)
see Manual
This was accomplished by creating a combination of config element- random variable and an IF controller
1) a random variable was created with Minim and maxim value to meet above condition
2) and IF controller was able to check ${myrand}>4;
This had derived the desired result - thank you all

Alternatives to using CSV in JMeter (for generating usernames)

I have a JMeter Test Plan with following structure
Test Plan
**ThreadGroup1**
--CSV Data Config-001
----SimpleController
--------------LoginRequest
--------------Action-abc-Request
**ThreadGroup2**
--CSV Data Config-002
----SimpleController
--------------LoginRequest
--------------Action-xyz-Request
I have two CSV files which contain list of users like this..
**CSV-001**
Username1
Username2
.. ..
Username50
**CSV-002**
Username51
Username52
.. ..
Username100
In my scenario, I need to run a load test with say 100 users. 50 users login from ThreadGroup1 and other 50 users login from ThreadGroup2. Users from both threadgroups login simultaneously.
Currently, I have to go through process of manually creating/editing these CSV files whenever I change the number of total users.
Please suggest if there are any alternative time-saving & performance-efficient approaches through I which can fulfill my scenario requirements (without using CSV files).
I will appreciate, if you can explain the alternative solution with some details as I am quite new to JMeter stuff. Thanks.
Another idea is to use
Username${__threadNum}
for the first thread group and
Username${__BeanShell(ctx.getThreadNum()+Z+1)}
for the second, where Z equals the total number of threads in thread group 1. You also need to add 1 since ctx.getThreadNum() returns a thread number using a 0 based index, whereas the __threadNum function is 1 based.
You can use a counter in each thread. The start value for the counter in the first thread would be 1, in the second 51. Be sure the 'Track counter independently for each user' check box is unchecked.
If you set the reference names to thread1Count and thread2Count respectively, you can use
Username${thread1Count}
for the first thread and
Username${thread2Count}
for the second.

Resources