Getting Transformer exception while running Jmeter script - xpath

While running my JMeter script with 3 threads, ramp-up 5 sec I am getting transformer exception. Actually in my scenario I want to click on the multiple links to the page randomly so I have used the random variable in JMeter But after running, I am getting below error, however, my XPath expression in XPath extractor looks fine.
2016/09/23 23:44:03 INFO - jmeter.engine.StandardJMeterEngine: Running the test!
2016/09/23 23:44:03 INFO - jmeter.samplers.SampleEvent: List of sample_variables: []
2016/09/23 23:44:03 INFO - jmeter.gui.util.JMeterMenuBar: setRunning(true,*local*)
2016/09/23 23:44:03 INFO - jmeter.engine.StandardJMeterEngine: Starting ThreadGroup: 1 : Thread Group
2016/09/23 23:44:03 INFO - jmeter.engine.StandardJMeterEngine: Starting 3 threads for group Thread Group.
2016/09/23 23:44:03 INFO - jmeter.engine.StandardJMeterEngine: Thread will continue on error
2016/09/23 23:44:03 INFO - jmeter.threads.ThreadGroup: Starting thread group number 1 threads 3 ramp-up 5 perThread 1666.6666 delayedStart=false
2016/09/23 23:44:03 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-1
2016/09/23 23:44:03 INFO - jmeter.threads.ThreadGroup: Started thread group number 1
2016/09/23 23:44:03 INFO - jmeter.engine.StandardJMeterEngine: All thread groups have been started
2016/09/23 23:44:05 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-2
2016/09/23 23:44:07 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-3
2016/09/23 23:44:09 WARN - jmeter.extractor.XPathExtractor: TransformerException while processing ((//span[#class="title"]/a/#href)[$(RandomNumber)]) Expected ], but found: RandomNumber
2016/09/23 23:44:10 INFO - jmeter.threads.JMeterThread: Thread is done: Thread Group 1-1
2016/09/23 23:44:10 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-1
2016/09/23 23:44:10 WARN - jmeter.extractor.XPathExtractor: TransformerException while processing ((//span[#class="title"]/a/#href)[$(RandomNumber)]) Expected ], but found: RandomNumber
2016/09/23 23:44:11 INFO - jmeter.threads.JMeterThread: Thread is done: Thread Group 1-3
2016/09/23 23:44:11 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-3
2016/09/23 23:44:11 WARN - jmeter.extractor.XPathExtractor: TransformerException while processing ((//span[#class="title"]/a/#href)[$(RandomNumber)]) Expected ], but found: RandomNumber
2016/09/23 23:44:12 INFO - jmeter.threads.JMeterThread: Thread is done: Thread Group 1-2
2016/09/23 23:44:12 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-2
2016/09/23 23:44:12 INFO - jmeter.engine.StandardJMeterEngine: Notifying test listeners of end of test
2016/09/23 23:44:12 INFO - jmeter.gui.util.JMeterMenuBar: setRunning(false,*local*)

JMeter Variables are referenced as ${RandomNumber} - you need to use braces instead of parentheses. Alternatively you can use __V() function like
${__V(RandomNumber)}
So you need to change your XPath query to one of the following:
(//span[#class="title"]/a/#href)[${RandomNumber}]
(//span[#class="title"]/a/#href)[${__V(RandomNumber)}]
Your approach seems to be fragile. I don't know how many links are at the page and how do you generate your ${RandomNumber} variable, however I would rather go the following way:
Store all links at the page into JMeter variables like:
link_1=http://example.com
link_2=http://jmeter.apache.org
...
link_matchNr=50
Use random JMeter variable from previously extracted ones where required via aforementioned __V() and __Random() functions combination like:
${__V(link_${__Random(1,${link_matchNr},)})}
Demo:
See Here’s What to Do to Combine Multiple JMeter Variables article for more information on how you can combine different JMeter Functions and Variables into a single expression.

Related

JMeter scheduler doesn't stop after duration elapsed

I want to set Duration for test working. In my Thread Group I set
Number of Threads = 1
Ramp-up period = 0
checked 'Forever'
checked 'Scheduler'
Duration = 10
Startup delay = 0
So if test needs more than 10 seconds to be finished, elapsed time is quit right - 10 second. BUT if it needs, for example, 5 seconds, it stops after 5 seconds, not after 10 as I expect.
How to make script to work until Duration time elapsed?
UPD.
Screenshot of Thread Group settings
Logs for last running:
2017/04/11 19:53:33 INFO - jmeter.engine.StandardJMeterEngine: Running the test!
2017/04/11 19:53:33 INFO - jmeter.samplers.SampleEvent: List of sample_variables: []
2017/04/11 19:53:33 INFO - jmeter.gui.util.JMeterMenuBar: setRunning(true,*local*)
2017/04/11 19:53:33 INFO - jmeter.engine.StandardJMeterEngine: Starting ThreadGroup: 1 : Thread Group
2017/04/11 19:53:33 INFO - jmeter.engine.StandardJMeterEngine: Starting 1 threads for group Thread Group.
2017/04/11 19:53:33 INFO - jmeter.engine.StandardJMeterEngine: Thread will continue on error
2017/04/11 19:53:33 INFO - jmeter.threads.ThreadGroup: Starting thread group number 1 threads 1 ramp-up 0 perThread 0.0 delayedStart=false
2017/04/11 19:53:33 INFO - jmeter.threads.ThreadGroup: Started thread group number 1
2017/04/11 19:53:33 INFO - jmeter.engine.StandardJMeterEngine: All thread groups have been started
2017/04/11 19:53:33 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-1
2017/04/11 19:53:33 INFO - jmeter.services.FileServer: Stored: data.txt
2017/04/11 19:53:40 INFO - jmeter.threads.JMeterThread: Stop Thread seen for thread Thread Group 1-1, reason:org.apache.jorphan.util.JMeterStopThreadException: End of file:data.txt detected for CSV DataSet:CSV get parameter for request configured with stopThread:true, recycle:false
2017/04/11 19:53:40 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-1
2017/04/11 19:53:40 INFO - jmeter.engine.StandardJMeterEngine: Notifying test listeners of end of test
2017/04/11 19:53:40 INFO - jmeter.services.FileServer: Close: data.txt
2017/04/11 19:53:40 INFO - jmeter.gui.util.JMeterMenuBar: setRunning(false,*local*)
Given you set Loop Count as "Forever" your test should run for 10 seconds (or even more if JMeter will need to gracefully shutdown a lot of samplers) so my expectation is that either error occurs or you are using some form of test end logic like If Controller of Test Action sampler which trigger premature stop.
When JMeter behaves in a unexpected manner remember always to check jmeter.log file - normally it contains enough troubleshooting information. If you are not able to figure out the reason yourself - post the log file here.
As an alternative you could try Ultimate Thread Group which provides more advanced way of defining the load pattern and it comes with the anticipated load chart.
The Ultimate Thread Group (as well as any other plugin) can be installed using JMeter Plugins Manager

HTTP Request Sampler not working

I am using windows7 and the latest version of Jmeter. I created a simple HTTP Request Sampler and in the server name I added google.com
When I ran it I got the following error:
2015/11/30 14:15:32 INFO - jmeter.engine.StandardJMeterEngine: Running the test!
2015/11/30 14:15:32 INFO - jmeter.samplers.SampleEvent: List of sample_variables: []
2015/11/30 14:15:32 INFO - jmeter.gui.util.JMeterMenuBar: setRunning(true,*local*)
2015/11/30 14:15:32 INFO - jmeter.engine.StandardJMeterEngine: Starting ThreadGroup: 1 : Thread Group
2015/11/30 14:15:32 INFO - jmeter.engine.StandardJMeterEngine: Starting 1 threads for group Thread Group.
2015/11/30 14:15:32 INFO - jmeter.engine.StandardJMeterEngine: Thread will continue on error
2015/11/30 14:15:32 INFO - jmeter.threads.ThreadGroup: Starting thread group number 1 threads 1 ramp-up 1 perThread 1000.0 delayedStart=false
2015/11/30 14:15:32 INFO - jmeter.threads.ThreadGroup: Started thread group number 1
2015/11/30 14:15:32 INFO - jmeter.engine.StandardJMeterEngine: All thread groups have been started
2015/11/30 14:15:32 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-1
2015/11/30 14:15:33 INFO - jmeter.threads.JMeterThread: Thread is done: Thread Group 1-1
2015/11/30 14:15:33 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-1
2015/11/30 14:15:33 INFO - jmeter.engine.StandardJMeterEngine: Notifying test listeners of end of test
2015/11/30 14:15:33 INFO - jmeter.gui.util.JMeterMenuBar: setRunning(false,*local*)
This is normal output of JMeter, it indicates that JMeter started and finished one thread one time.
You can visualize test results with Listeners, in particular View Results Tree is extremely useful for test script development and debugging.
As you can see at below image:
the request is successful (green triangle)
google search page is displayed at "Response data" tab
log viewer contains the same entries as you posted
Don't forget to disable listeners for the actual test execution, they consume a lot of resources. You'll be able to open results file after test run using "Browse" button and perform analysis.
See How to debug your Apache JMeter script article for detailed information on getting to the bottom of JMeter test script problem.

Jmeter thread execution internal process?

when i ran jmeter script , i can see the below logs: Why it is repeatedly printed thread group 1-1,1-1,1-1...1-2 ?? I understood that 1-1 means first thread group - first thread but it is printed again and again what does that mean in execution side??
2014/11/27 03:45:59 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-1 2014/11/27 03:46:00 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-1 2014/11/27 03:46:02 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-1 2014/11/27 03:46:03 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-1 2014/11/27 03:46:05 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-1 2014/11/27 03:46:06 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-2 2014/11/27 03:46:08 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-2 2014/11/27 03:46:09 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-2 2014/11/27 03:46:11 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-2 2014/11/27 03:46:12 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-2 2014/11/27 03:46:14 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-3 jmeter.threads.JMeterThread: Thread finished: Thread Group 1-3 2014/11/27 03:47:51 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-3
I
From what i understand. Since you have only 1 thread group in your test plan, That is why your Log shows
014/11/27 03:45:59 INFO - jmeter.threads.JMeterThread: Thread
started: Thread Group 1-1 2014/11/27 03:46:00 INFO -
jmeter.threads.JMeterThread: Thread started: Thread Group 1-1
2014/11/27 03:46:02 INFO - jmeter.threads.JMeterThread: Thread
started: Thread Group 1-1 2014/11/27 03:46:03 INFO -
jmeter.threads.JMeterThread: Thread started: Thread Group 1-1
2014/11/27 03:46:05 INFO - jmeter.threads.JMeterThread: Thread
started: Thread Group 1-1 2014/11/27 03:46:06 INFO -
jmeter.threads.JMeterThread: Thread started: Thread Group 1-2
2014/11/27 03:46:08 INFO - jmeter.threads.JMeterThread: Thread
started: Thread Group 1-2 2014/11/27 03:46:09 INFO -
jmeter.threads.JMeterThread: Thread started: Thread Group 1-2
2014/11/27 03:46:11 INFO - jmeter.threads.JMeterThread: Thread
started: Thread Group 1-2 2014/11/27 03:46:12 INFO -
jmeter.threads.JMeterThread: Thread started: Thread Group 1-2
2014/11/27 03:46:14 INFO - jmeter.threads.JMeterThread: Thread
started: Thread Group 1-3
The first number represent the Thread group started: Thread Group 1-1, Thread Group 1-2, Thread Group 1-3 ..........
The second number represents the user.

How to solve this error an jmetere

2015/06/12 11:00:11 INFO - jmeter.engine.StandardJMeterEngine: Running the test!
2015/06/12 11:00:11 INFO - jmeter.samplers.SampleEvent: List of sample_variables: []
2015/06/12 11:00:11 INFO - jmeter.gui.util.JMeterMenuBar: setRunning(true,*local*)
2015/06/12 11:00:11 INFO - jmeter.engine.StandardJMeterEngine: Starting ThreadGroup: 1 : Thread Group
2015/06/12 11:00:11 INFO - jmeter.engine.StandardJMeterEngine: Starting 1 threads for group Thread Group.
2015/06/12 11:00:11 INFO - jmeter.engine.StandardJMeterEngine: Thread will continue on error
2015/06/12 11:00:11 INFO - jmeter.threads.ThreadGroup: Starting thread group number 1 threads 1 ramp-up 1 perThread 1000.0 delayedStart=false
2015/06/12 11:00:11 INFO - jmeter.threads.ThreadGroup: Started thread group number 1
2015/06/12 11:00:11 INFO - jmeter.engine.StandardJMeterEngine: All thread groups have been started
2015/06/12 11:00:11 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-1
2015/06/12 11:00:11 ERROR - jmeter.threads.JMeterThread: Test failed! java.lang.IllegalStateException: The driver executable does not exist: D:\Mm performance\apache-jmeter-2.13\apache-jmeter-2.13\bin
at com.google.common.base.Preconditions.checkState(Preconditions.java:197)
at org.openqa.selenium.remote.service.DriverService.checkExecutable(DriverService.java:117)
at org.openqa.selenium.chrome.ChromeDriverService.access$000(ChromeDriverService.java:39)
at org.openqa.selenium.chrome.ChromeDriverService$Builder.usingDriverExecutable(ChromeDriverService.java:116)
at com.googlecode.jmeter.plugins.webdriver.config.ChromeDriverConfig.getThreadService(ChromeDriverConfig.java:72)
at com.googlecode.jmeter.plugins.webdriver.config.ChromeDriverConfig.createBrowser(ChromeDriverConfig.java:53)
at com.googlecode.jmeter.plugins.webdriver.config.ChromeDriverConfig.createBrowser(ChromeDriverConfig.java:18)
at com.googlecode.jmeter.plugins.webdriver.config.WebDriverConfig.getPreparedBrowser(WebDriverConfig.java:233)
at com.googlecode.jmeter.plugins.webdriver.config.WebDriverConfig.threadStarted(WebDriverConfig.java:220)
at org.apache.jmeter.threads.JMeterThread$ThreadListenerTraverser.addNode(JMeterThread.java:610)
at org.apache.jorphan.collections.HashTree.traverseInto(HashTree.java:998)
at org.apache.jorphan.collections.HashTree.traverse(HashTree.java:980)
at org.apache.jmeter.threads.JMeterThread.threadStarted(JMeterThread.java:579)
at org.apache.jmeter.threads.JMeterThread.initRun(JMeterThread.java:567)
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:257)
at java.lang.Thread.run(Thread.java:745)
2015/06/12 11:00:11 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-1
2015/06/12 11:00:11 INFO - jmeter.engine.StandardJMeterEngine: Notifying test listeners of end of test
2015/06/12 11:00:11 INFO - jmeter.gui.util.JMeterMenuBar: setRunning(false,*local*)
Download the latest version of ChromeDriver from http://chromedriver.storage.googleapis.com/index.html (if not yet)
Add the following line to system.properties file (the file lives under /bin folder of your JMeter installation)
webdriver.chrome.driver=d:/chromedriver.exe
You may have to substitute d:/chromedriver.exe with actual path to the ChromeDriver binary. Remember to use either forward slashes c:/somefoler/someotherfolder or escaped back slashes c:\\somefolder\\someotherfolder if you use Windows
Restart JMeter
ChromeDriver should work normally.
See Apache JMeter Properties Customization Guide for advanced information on various JMeter properties and ways of setting, using and overriding them.

Jmeter + Chrome driver config: empty page while processing

I configured jmeter to run tests using Chrome Driver Config.
Test run with no errors:
2015/06/01 20:14:14 INFO - jmeter.engine.StandardJMeterEngine: Running the test!
2015/06/01 20:14:14 INFO - jmeter.samplers.SampleEvent: List of sample_variables: []
2015/06/01 20:14:14 INFO - jmeter.gui.util.JMeterMenuBar: setRunning(true,*local*)
2015/06/01 20:14:14 INFO - jmeter.engine.StandardJMeterEngine: Starting ThreadGroup: 1 : Thread Group
2015/06/01 20:14:14 INFO - jmeter.engine.StandardJMeterEngine: Starting 1 threads for group Thread Group.
2015/06/01 20:14:14 INFO - jmeter.engine.StandardJMeterEngine: Thread will continue on error
2015/06/01 20:14:14 INFO - jmeter.threads.ThreadGroup: Starting thread group number 1 threads 1 ramp-up 1 perThread 1000.0 delayedStart=false
2015/06/01 20:14:14 INFO - jmeter.threads.ThreadGroup: Started thread group number 1
2015/06/01 20:14:14 INFO - jmeter.engine.StandardJMeterEngine: All thread groups have been started
2015/06/01 20:14:14 INFO - jmeter.threads.JMeterThread: Thread started: Thread Group 1-1
2015/06/01 20:14:16 INFO - com.googlecode.jmeter.plugins.webdriver.config.WebDriverConfig: iterationStart()
2015/06/01 20:14:43 INFO - jmeter.threads.JMeterThread: Thread is done: Thread Group 1-1
2015/06/01 20:14:43 INFO - jmeter.threads.JMeterThread: Thread finished: Thread Group 1-1
2015/06/01 20:14:44 INFO - jmeter.engine.StandardJMeterEngine: Notifying test listeners of end of test
2015/06/01 20:14:44 INFO - jmeter.gui.util.JMeterMenuBar: setRunning(false,*local*)
But within the execution i see empty page only: http://screencast.com/t/REd78GizooEl
What can be the reason?
Solved the problem, by adjusting preferences (can't remember clear steps)

Resources