Re: HTTP Request sampler other means of sending data
Actually, the request is sent by the browser in UTF-8. The target application will also return in UTF-8. Peter Lin [EMAIL PROTECTED] wrote:sounds like that isn't following the standard. I'm guessing the request is sent by a program and not a browser. I'm going to guess the target application uses servlet mapping and routing to return the correct http resource. If that is the case, you're probably going to have to write a new sampler and manually manipulate the request and request header. peter On Wed, 28 Jul 2004 11:49:32 -0700 (PDT), Remedy QA wrote: What I mean is that HTTP Request sampler sends URL encoded request data but I would like the option to not do that. Suppose my data string is such: 148/GetTableEntryList/8/ Using the HTTP Request sampler, it will URL encode it before sending to the web server: 148%2FGetTableEntryList%2F8%2F I would like to send just the raw data in a post method but not in a form action submit post method. joelsherriff wrote: Could you include an example here? I'm trying to compile a list of issues such as this and I'm not sure I understand what the problem is. J - Original Message - From: Remedy QA To: JMeter User List Sent: Tuesday, July 27, 2004 9:05 PM Subject: HTTP Request sampler other means of sending data The current HTTP Request sampler sends form action type parameter/value pairings. But what if I just want to send plain form post data so that on the mid-tier end, the request data is read directly from the input stream (socket)? Using the proxy to record such a behavior doesn't allow jmeter to send the correct request data. The recording tries to break the complete data stream into parameter/value pairing. Is there any workaround? Thanks, mabel - Do you Yahoo!? Yahoo! Mail - 50x more storage than other providers! - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - Do you Yahoo!? Yahoo! Mail is new and improved - Check it out! - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - Do you Yahoo!? Yahoo! Mail - 50x more storage than other providers!
Re: HTTP Request sampler other means of sending data
The browser is not sending in a name/value pair post. There is an ActiveX object created by javascript that sends in post method but just the data. I think it uses xml http. I'm discovering this as I go. A sample javascript to invoke this may look like var objHTTP = new ActiveXObject(Microsoft.XMLHTTP);objHTTP.Open('POST','servletname',false); objHTTP.setRequestHeader(Content-type,text/plain; charset=UTF-8);objHTTP.Send(148/GetTableEntryList/8/); Since I think it's using xml http, looks like I have to write a new sampler. But the soap-xml request looks like something I can use or build off of. Peter Lin [EMAIL PROTECTED] wrote: to summarize, the browser is sending the post data. So is that text a name/value pair? now I am confused. if it's sent by the browser, is there some activeX or applet sending the data? in a normal is it even possible to send just 148/GetTableEntryList/8/ without a parameter name? I didn't think it was possible. if it's a normal name/value pair, you should be able to access it with the normal request parameter objects. if not, I'm totally lost as to exactly what you're trying to achieve. peter On Wed, 28 Jul 2004 12:10:49 -0700 (PDT), Remedy QA wrote: Actually, the request is sent by the browser in UTF-8. The target application will also return in UTF-8. Peter Lin wrote:sounds like that isn't following the standard. I'm guessing the request is sent by a program and not a browser. I'm going to guess the target application uses servlet mapping and routing to return the correct http resource. If that is the case, you're probably going to have to write a new sampler and manually manipulate the request and request header. peter On Wed, 28 Jul 2004 11:49:32 -0700 (PDT), Remedy QA wrote: What I mean is that HTTP Request sampler sends URL encoded request data but I would like the option to not do that. Suppose my data string is such: 148/GetTableEntryList/8/ Using the HTTP Request sampler, it will URL encode it before sending to the web server: 148%2FGetTableEntryList%2F8%2F I would like to send just the raw data in a post method but not in a form action submit post method. joelsherriff wrote: Could you include an example here? I'm trying to compile a list of issues such as this and I'm not sure I understand what the problem is. J - Original Message - From: Remedy QA To: JMeter User List Sent: Tuesday, July 27, 2004 9:05 PM Subject: HTTP Request sampler other means of sending data The current HTTP Request sampler sends form action type parameter/value pairings. But what if I just want to send plain form post data so that on the mid-tier end, the request data is read directly from the input stream (socket)? Using the proxy to record such a behavior doesn't allow jmeter to send the correct request data. The recording tries to break the complete data stream into parameter/value pairing. Is there any workaround? Thanks, mabel - Do you Yahoo!? Yahoo! Mail - 50x more storage than other providers! - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - Do you Yahoo!? Yahoo! Mail is new and improved - Check it out! - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - Do you Yahoo!? Yahoo! Mail - 50x more storage than other providers! - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - Do you Yahoo!? Express yourself with Y! Messenger! Free. Download now.
HTTP Request sampler other means of sending data
The current HTTP Request sampler sends form action type parameter/value pairings. But what if I just want to send plain form post data so that on the mid-tier end, the request data is read directly from the input stream (socket)? Using the proxy to record such a behavior doesn't allow jmeter to send the correct request data. The recording tries to break the complete data stream into parameter/value pairing. Is there any workaround? Thanks, mabel - Do you Yahoo!? Yahoo! Mail - 50x more storage than other providers!
Re: jmeter memory consumption
Hi Peter, I have been using Segue Silk Performer in the past and was always able to get a load of 500 on a similar machine described below with good results. I am actually trying to replace Silk Performer with JMeter. I am trying to see how much load one Jmeter client can handle. I am planning to use several clients as you suggested but there are only so many machines available. My plan is to get up to a 5000 virtual user load going. If your approximation of 75 virtual users per machine is used, that would yield about 67 client machines to generate such a load! I suppose no one has used Jmeter to the extent that I am planning. mabel Peter Lin [EMAIL PROTECTED] wrote: to my knowledge, even if you use a commercial product like mercury. You still can't simulate 250 threads from one system without it eating a ton of memory. In fact, I believe mercury doesn't recommend you try it, unless you're using a beefy dual or quad CPU server with 8Gb of RAM, Gigabit ethernet and Gigabit router. in fact, since mercury prefers to save the results to a database, you'd have a hard time doing it from one system. Mercury happens to have a good reputation and is considered a reliable testing tool. I've been able to go up to 75 threads with JMeter with decent performance. For more than 100 threads I always use multiple client machines. peter On Wed, 30 Jun 2004 22:29:06 -0400, Michael Stover wrote: So what's the problem, exactly? -Mike On Wed, 2004-06-30 at 20:21, Remedy QA wrote: It seems Jmeter is a memory hogger. If given more memory, it will keep consuming. I am using JMeter nightly build of June 12. During my test run of approximately 50 minutes, with 250 virtual users on one GUI Jmeter client, it managed to consume about 1 GB of real memory. As the test continued, the memory just kept diminishing. The garbage collecting (minor collecting) happened about every 20 to 60 seconds. The CPU spikes happen when there are GCs. I also ran the same test on a machine with only 1 GB of RAM. When the test was over, real memory was at about 32mb. I tried with non-GUI mode but several threads hung and never was able to finish. So it seems that if I use a machine with more memory and give it a bigger heap, it just consumes as much as it can. I don't think 250 virtual users for the machine type I use is too much load. There must be something I am missing. Any help appreciated. I ran a test with the following configuration: Single JMeter Client on Windows 2000 Server, 2 GB RAM, single 2.8 Ghz Pentium 4 CPU. JDK 1.4.2_04 JMeter JVM settings: set HEAP=-Xms1280m -Xmx1280m set NEW=-XX:NewSize=512m -XX:MaxNewSize=512m set DEBUG=-verbose:gc -XX:-PrintTenuringDistribution -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStoppedTime All other JVM settings are the defaults that came with jmeter.bat. JMeter output set to CSV, jmeter and jorphan logging set to warning. Jmeter script: Test Plan ThreadGroup - 250 virtual users, ramping up every 5 seconds. Loop once. Aggregate Listener Simple Controller 8 HTTP Requests in here 3 Aggregate Listeners in here Runtime Controller - 45 minutes total for all users. 33 HTTP Requests in here 2 Aggregate Listeners in here Simple Controller 2 HTTP Requests in here. - Do you Yahoo!? Yahoo! Mail is new and improved - Check it out! -- Michael Stover Apache Software Foundation - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - Do you Yahoo!? New and Improved Yahoo! Mail - 100MB free storage!
RE: jmeter memory consumption
I will try running without any listeners and see if it makes a big difference. I had planned to have several clients generating load and these wouldn't have listeners and then a client with one user will have the listener. Well, I did try non-gui mode but some threads kept hanging. It didn't happen with gui mode though. Do you have plans to improve the jmeter performance? Everything else about Jmeter is great. This is the only real blocker I have come across so far. thanks, mabel BAZLEY, Sebastian [EMAIL PROTECTED] wrote: It would be useful to know if it is as hungry without the Aggregate Listeners. Also, try running the same test in non-GUI mode. You could try this with a Summariser, if you want to keep some track of what is happening. As the others have said, it is already capable of decent performance, but of course if we can find and fix some memory leaks, not many (*) would complain... S. (*) except perhaps the chip industry! -Original Message- From: Peter Lin [mailto:[EMAIL PROTECTED] Sent: 01 July 2004 03:33 To: JMeter Users List; [EMAIL PROTECTED] Subject: Re: jmeter memory consumption to my knowledge, even if you use a commercial product like mercury. You still can't simulate 250 threads from one system without it eating a ton of memory. In fact, I believe mercury doesn't recommend you try it, unless you're using a beefy dual or quad CPU server with 8Gb of RAM, Gigabit ethernet and Gigabit router. in fact, since mercury prefers to save the results to a database, you'd have a hard time doing it from one system. Mercury happens to have a good reputation and is considered a reliable testing tool. I've been able to go up to 75 threads with JMeter with decent performance. For more than 100 threads I always use multiple client machines. peter On Wed, 30 Jun 2004 22:29:06 -0400, Michael Stover wrote: So what's the problem, exactly? -Mike On Wed, 2004-06-30 at 20:21, Remedy QA wrote: It seems Jmeter is a memory hogger. If given more memory, it will keep consuming. I am using JMeter nightly build of June 12. During my test run of approximately 50 minutes, with 250 virtual users on one GUI Jmeter client, it managed to consume about 1 GB of real memory. As the test continued, the memory just kept diminishing. The garbage collecting (minor collecting) happened about every 20 to 60 seconds. The CPU spikes happen when there are GCs. I also ran the same test on a machine with only 1 GB of RAM. When the test was over, real memory was at about 32mb. I tried with non-GUI mode but several threads hung and never was able to finish. So it seems that if I use a machine with more memory and give it a bigger heap, it just consumes as much as it can. I don't think 250 virtual users for the machine type I use is too much load. There must be something I am missing. Any help appreciated. I ran a test with the following configuration: Single JMeter Client on Windows 2000 Server, 2 GB RAM, single 2.8 Ghz Pentium 4 CPU. JDK 1.4.2_04 JMeter JVM settings: set HEAP=-Xms1280m -Xmx1280m set NEW=-XX:NewSize=512m -XX:MaxNewSize=512m set DEBUG=-verbose:gc -XX:-PrintTenuringDistribution -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStoppedTime All other JVM settings are the defaults that came with jmeter.bat. JMeter output set to CSV, jmeter and jorphan logging set to warning. Jmeter script: Test Plan ThreadGroup - 250 virtual users, ramping up every 5 seconds. Loop once. Aggregate Listener Simple Controller 8 HTTP Requests in here 3 Aggregate Listeners in here Runtime Controller - 45 minutes total for all users. 33 HTTP Requests in here 2 Aggregate Listeners in here Simple Controller 2 HTTP Requests in here. - Do you Yahoo!? Yahoo! Mail is new and improved - Check it out! -- Michael Stover Apache Software Foundation - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] ___ This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Atos Origin group liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted
RE: Hanging threads in non-GUI mode
Hmm, didn't know there were two options. Looking at the June 12th nightly build I'm using, the Sampler gives HTTP Request and HTTPRequest HTTP Client(ALPHA) . I am using the default http sampler because that is what the Proxy recorder uses. I have been using this since version 1.9. All requests use keep alive. Just one or two use redirect, but that is only done once per user (done for login). To answer Mike's questions: 1. Are you using any timers? 250 virtual users with no delays is a hell of a load Yes. Between controllers (there are 2 that are repeated for 45 minutes), I have uniform random timer between 5 to 15 seconds. Then I have some user think time between opening menus that are uniform random between 1.5 to 5 seconds. And some uniform random timers between 1 to 4 seconds for waiting to click on a link. Then there are some requests that are performed without timers. 2. What kind of average response times are you getting from these requests? The overall average total is 33 seconds. Some pages have it set to retrieve embedded resources. 3. What order of magnitude are the responses? 10's of bytes? 100's? 1000's? 10's of KB? The average request response size is 42KB. The minimum response time is less than 1KB The largest response is 394KB which happens when opening a page. 4. What kind of dynamic elements do you have in the test plan? Are you doing a lot of regex parsing of response data? Out of 44 HTTP Requests, I have 7 regex parsing and 14 Assertions There are 6 aggregate listeners. Running without the listeners did not make a difference. BAZLEY, Sebastian [EMAIL PROTECTED] wrote: Another thing - are you using the default HTTP sampler (uses the JVM http implementation) or the new sampler (uses Apache HTTPClient)? Also, keep-alive? Follow redirects etc? S. -Original Message- From: Michael Stover [mailto:[EMAIL PROTECTED] Sent: 01 July 2004 19:04 To: JMeter Users List Subject: Re: Hanging threads in non-GUI mode Yes, or at least some other things I'd like to know about the test: 1. Are you using any timers? 250 virtual users with no delays is a hell of a load 2. What kind of average response times are you getting from these requests? 3. What order of magnitude are the responses? 10's of bytes? 100's? 1000's? 10's of KB? 4. What kind of dynamic elements do you have in the test plan? Are you doing a lot of regex parsing of response data? -Mike On Thu, 2004-07-01 at 13:49, BAZLEY, Sebastian wrote: It would be useful to be able investigate and fix this; I don't suppose that you have a reproducible test case that you can post to Bugzilla? We use batch mode almost exclusively, and apart from a concurrent modification bug that was found and fixed several months ago, it works fine. S. -Original Message- From: Remedy QA [mailto:[EMAIL PROTECTED] Sent: 01 July 2004 17:27 To: JMeter Users List Subject: RE: jmeter memory consumption Well, I did try non-gui mode but some threads kept hanging. It didn't happen with gui mode though. - Do you Yahoo!? Yahoo! Mail - 50x more storage than other providers!
Machine configuration used for JMeter
Hi JMeter Users, I would like to solicit feedback of what machine specifications you're using to successfully load one Jmeter client with *reasonable* response times. This would greatly help out new users on setting up a load. What is the OS, CPU type, Memory of the machine? What is the JMeter JVM configuration that you used? What is the Jmeter load (# of virtual users per machine)? Did you run on non-gui mode? Turned off all listeners? Leaving just aggregate listener? What is the general structure of your JMeter script? How long did you have the script run to be successful? Thanks! - Do you Yahoo!? Take Yahoo! Mail with you! Get it on your mobile phone.
counter behavior
I'm wondering if the following is the behavior for a Pre-processor Counter element. I have the following test plan which uses a counter variable. I am using the nightly build from June 12. Test Plan ThreadGroup (1 user, Loop once) Counter - increments by 1 Simple Controller HTTP Request Runtime Controller - 120 seconds Random Order Controller HTTP Request - using counter variable HTTP Request Simple Controller HTTP Request When running with 1 user, the Counter does not increment, whether the Track counter intdependently for each user is checked or unchecked. However when there are 2 or more users, the counter increments (with unchecked Track..). Is this behavior expected? thanks, mabel - Do you Yahoo!? Yahoo! Mail - 50x more storage than other providers!
RE: Exporting aggregate reports
Hmm, I just found a quick and easy way to export the aggregate report to Excel. Just copy the aggregate table and paste it on to an Excel worksheet. All the columns and rows remain. From Excel, you can export to CSV format. --- Krahe, Chris wrote: My two cents: PNG would be handy, but export to CSV more handy (e.g. aggregate report). -Chris Krahe From: Michael Stover [mailto:[EMAIL PROTECTED] Sent: Tue 6/15/2004 7:24 AM To: JMeter Users List Subject: Re: Exporting aggregate reports [bcc][faked-from] How would you feel about being able to export an image (PNG) of the visualizer? -Mike On Mon, 2004-06-14 at 19:42, Remedy QA wrote: Are there any plans to implement exporting reports feature in JMeter? It would be nice be able to export the calculated aggregate measurements than rather semi-re-inventing the wheel by writing our own parser program against the .JTL files. mabel __ Do you Yahoo!? New and Improved Yahoo! Mail - 100MB free storage! http://promotions.yahoo.com/new_mail - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - Do you Yahoo!? New and Improved Yahoo! Mail - Send 10MB messages!
Re: Difference in nightly build codelines
Hi Mike, Any ideas when the the 2-0 will merge with the HEAD branch? I am eagerly waiting! Thanks. mabel Michael Stover [EMAIL PROTECTED] wrote: Stuff gets merged from the 2-0 branch to the HEAD branch on occasion. I'll do it shortly and then everything should be in the nightlies. -Mike On Mon, 2004-06-07 at 20:01, Remedy QA wrote: What is the difference between the nightly build of jakarta-jmeter-20 vs. jakarta-jmeter ? What is the release version 2.0.1 based off of? I found that when there are fixes people have put in nightly builds, some are in one line while others are in another. For example, Thad Smith added a Test Action Sampler in early May to the jakarta-jmeter codeline, while Sebastian Bazley implemented the Runtime Controller a few days ago to the jakarta-jmeter-20 codeline. I want to be able to use both features! - Do you Yahoo!? Friends. Fun. Try the all-new Yahoo! Messenger -- Michael Stover Apache Software Foundation - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - Do you Yahoo!? Take Yahoo! Mail with you! Get it on your mobile phone.
RE: Exporting aggregate reports
CSV would definitely be more handy. That is what I was looking for. Other formats such as html would be nice too. Right now, if we really want to save an image of a visualizer, we can screen capture it. mabel --- Krahe, Chris [EMAIL PROTECTED] wrote: My two cents: PNG would be handy, but export to CSV more handy (e.g. aggregate report). -Chris Krahe From: Michael Stover [mailto:[EMAIL PROTECTED] Sent: Tue 6/15/2004 7:24 AM To: JMeter Users List Subject: Re: Exporting aggregate reports [bcc][faked-from] How would you feel about being able to export an image (PNG) of the visualizer? -Mike On Mon, 2004-06-14 at 19:42, Remedy QA wrote: Are there any plans to implement exporting reports feature in JMeter? It would be nice be able to export the calculated aggregate measurements than rather semi-re-inventing the wheel by writing our own parser program against the .JTL files. mabel __ Do you Yahoo!? New and Improved Yahoo! Mail - 100MB free storage! http://promotions.yahoo.com/new_mail - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Exporting aggregate reports
Are there any plans to implement exporting reports feature in JMeter? It would be nice be able to export the calculated aggregate measurements than rather semi-re-inventing the wheel by writing our own parser program against the .JTL files. mabel __ Do you Yahoo!? Friends. Fun. Try the all-new Yahoo! Messenger. http://messenger.yahoo.com/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
clarification on remote testing
I am confused as to the setup of distributed testing. I have read the docs on how to set up but the use of server vs. client seems backwards to me. I got the connections going but I'm not really understanding how it works. According to the docs, or how I am reading into them, there are many JMeters running in server mode, therefore, many RMI registries running on separate machines. For example, S1, S2, S3 are machines running Jmeter server. I am thinking there is no GUI or batch jmeter running at all, just the jmeter server. Then according to the docs, there is only one client controller, which uses the GUI to control. I'll call this machine C1. In C1's jmeter properties file, it has S1, S2, and S3 listed as the remote_hosts values. Then if C1's test plan has 100 thread users and I select Run/RemoteStartAll, it will start the remote testing on all the server machines. The parts where I am confused: 1. The use of server and client is backwards to me. Shouldn't there only be one server and many clients? And the server should be the controller. 2. How on C1, if I specified 100 thread users, does it distribute among the 3 server machines? Is it always divided evenly? Can I control the distribution? 3. Are the results gathering done while the load test is running? I read in previous archived messages that there is a hold_samples property that you can set to indicate all results should be written at the end of the test. However, I don't see such a property setting in jmeter.properties. Then is the gathering of results done on C1? 4. Since C1 is the controller, it is not sending HTTP Requests, only facilitating and from #3, gathering results? Thanks for the clarification! mabel __ Do you Yahoo!? Friends. Fun. Try the all-new Yahoo! Messenger. http://messenger.yahoo.com/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: clarification on remote testing
Thanks for the clarification. So do you recommend us to even use remote testing if you think it's ugh? I just noticed that global counters are not shared among the servers. Each server has it's own counter which starts at the same values as the other servers. That sucks. :-( --- Michael Stover [EMAIL PROTECTED] wrote: JMeter remote testing - ugh. That's my assessment of the current state of this functionality. Anyway, to answer your questions: 1. In this case, client and server are used in a sense such that you, the user, sits and does work on the client, which then sends requests to the servers. Think of an email client that polls multiple email server for messages. The request the client sends is do this test, and then the sample results roll in. 2. The client sends the whole test to every server. So, if the test specifies 100 threads, each server runs 100 threads. I think you can figure out the degree of control you have given that... 3. I don't know anything about the hold_samples property. 4. Right. -Mike On Thu, 2004-06-10 at 15:19, Remedy QA wrote: I am confused as to the setup of distributed testing. I have read the docs on how to set up but the use of server vs. client seems backwards to me. I got the connections going but I'm not really understanding how it works. According to the docs, or how I am reading into them, there are many JMeters running in server mode, therefore, many RMI registries running on separate machines. For example, S1, S2, S3 are machines running Jmeter server. I am thinking there is no GUI or batch jmeter running at all, just the jmeter server. Then according to the docs, there is only one client controller, which uses the GUI to control. I'll call this machine C1. In C1's jmeter properties file, it has S1, S2, and S3 listed as the remote_hosts values. Then if C1's test plan has 100 thread users and I select Run/RemoteStartAll, it will start the remote testing on all the server machines. The parts where I am confused: 1. The use of server and client is backwards to me. Shouldn't there only be one server and many clients? And the server should be the controller. 2. How on C1, if I specified 100 thread users, does it distribute among the 3 server machines? Is it always divided evenly? Can I control the distribution? 3. Are the results gathering done while the load test is running? I read in previous archived messages that there is a hold_samples property that you can set to indicate all results should be written at the end of the test. However, I don't see such a property setting in jmeter.properties. Then is the gathering of results done on C1? 4. Since C1 is the controller, it is not sending HTTP Requests, only facilitating and from #3, gathering results? Thanks for the clarification! mabel __ Do you Yahoo!? Friends. Fun. Try the all-new Yahoo! Messenger. http://messenger.yahoo.com/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: How throughput is calculated
The whole point of me trying to verify the JMeter throughput calculations is to use the same formula in Excel or some other program. If what you say below is true, then that is not what I'm seeing. I may be looking at the wrong code but this is what I'm seeing. I am using version 2.0 and looking at that source code: In SampleResult.java, the constructor is called when a line of results is read from the jtl file. If properties not found, default is end timestamp according to code. public SampleResult(long stamp, long elapsed) { // Maintain the timestamp relationships if (startTimeStamp) { setTimes(stamp, stamp + elapsed); } else { setTimes(stamp - elapsed, stamp); } } Then a SampleResult object is added to the RunningSample object for that request type. public synchronized void addSample(SampleResult res) { long aTimeInMillis = res.getTime(); boolean aSuccessFlag = res.isSuccessful(); counter++; long startTime = res.getTimeStamp() - aTimeInMillis; if (firstTime startTime) { // this is our first sample, set the start time to current // timestamp firstTime = startTime; } if(lastTime res.getTimeStamp()) { lastTime = res.getTimeStamp(); } runningSum += aTimeInMillis; if (aTimeInMillis max) { max = aTimeInMillis; } if (aTimeInMillis min) { min = aTimeInMillis; } if (!aSuccessFlag) { errorCount++; } } In this statement long startTime = res.getTimeStamp() - aTimeInMillis; The code is assuming that the timestamp is always the end timestamp. But the timestamp can be a start and doing the elapsed time subtraction is setting the start timestamp to an earlier start. Am I wrong? So in my original email, this is the behavior I am seeing for the start time. --- Michael Stover [EMAIL PROTECTED] wrote: I thought we were talking about JMeter's throughput calculation? In JMeter's calculation, if timestamps are at the beginning, then the ending time takes the sample time of the last sample into account. If the timestamps are at the end of the samples, then the beginning time takes into account the sample time of the first sample. What you do in excel is up to you. -Mike On Fri, 2004-06-04 at 16:05, Remedy QA wrote: Well, I was just trying to verify the calculations and wanted a smaller results file to handle. But I did run it longer and the error margins get less significant. What do you mean the cvs code accounts for the time of the sample regardless of start or end timestamps? If I were to export the results file to something like Excel and do the throughput calculations in there, would the timestamps be accurate? --- Michael Stover [EMAIL PROTECTED]: If you're looking for throughput numbers, you should be running your test for a longer time than 40 ms. Try running for 30 minutes and then see how much the error is. In any case, the code in cvs accounts for the time of the sample, whether your timestamp is at the start or end of the sample. -Mike On Thu, 2004-06-03 at 19:15, Remedy QA wrote: I am a bit confused as to how JMeter calculates the throughput of each type of HTTP Request. My jmeter.properties setting has the default sampleresult.timestamp.start=true which is suppose to log the timestamp of when a HTTP Request starts in the .JTL file. So for example, I have the following results in csv format TIMESTAMP|TIME|LABEL|RESPONSE CODE|RESPONSE MSG|THREAD NAME|DATATYPE|SUCCESS 1086285141198|10|Request 1|200|OK|Thread Group1-2|text|true 1086285141248|40|Request 2|200|OK|Thread Group1-2|text|true 1086285141258|20|Request 1|200|OK|Thread Group1-1|text|true 1086285141309|51|Request 2|200|OK|Thread Group1-1|text|true JMeter calculates the throughput per second as (count/howLongRunning) * 1000.0 The part where I'm confused about is the howLongRunning time. The source code says that the total time passed is taken to be the timestamps of the first and last samples. The timestamps are suppose to be the start time of each request, according to the jmeter properties configuration. So for Request 2, the last sample timestamp is 41309 while the timestamp for the first sample is 41248. JMeter calculates by (2 / (41309 - (41248 - 40))) * 1000.0 Why does it take the first sample and subtracts the response time that it took to execute the first Request 2? I would think that instead, it should add the response time of the last Request 2 to the Request 2 timestamp (41309 + 51). That would actually be the time passed from the first Request 2 to start and really end with the last Request 2. Is the timestamp really the start time of the request? thanks, mabel __ Do you Yahoo!? Friends. Fun. Try the all-new Yahoo! Messenger. http://messenger.yahoo.com
Re: Using the __CSVRead function
Try this link to some explanations on JMeter functions http://jakarta.apache.org/jmeter/usermanual/functions.html Akbar, Gul [EMAIL PROTECTED] wrote: Hi Could anyone provide me with a document or a link to a document which explains the use of the __CSVRead function. I have generated this using the tool provided on Jmeter, but having problems as the value is always an empty string. I think the problem is with reading the file; I have a test.csv file in the bin directory of JMeter distribution, in windows; and the function looks like: ${__CSVRead(test.csv,0)} Is there something obvious I'm missing? or would I need to do some extra configurations. Regards Gul Akbar Gul Akbar Software Developer The British Library Wetherby 01937 54-6004 www.gakbar.co.uk ** Experience the British Library online at www.bl.uk Help the British Library conserve the world's knowledge. Adopt a Book. www.bl.uk/adoptabook * The information contained in this e-mail is confidential and may be legally privileged. It is intended for the addressee(s) only. If you are not the intended recipient, please delete this e-mail and notify the [EMAIL PROTECTED] : The contents of this e-mail must not be disclosed or copied without the sender's consent. The statements and opinions expressed in this message are those of the author and do not necessarily reflect those of the British Library. The British Library does not take any responsibility for the views of the author. * - Do you Yahoo!? Friends. Fun. Try the all-new Yahoo! Messenger
RE: Embedded JavaScript files are being parsed as HTML
I tried with the nightly jakarta-jmeter-20 build and this problem is not there anymore. However with the nightly jakarta-jmeter build, this problem is still apparent for me. I did submit a bug on the release 2.0, which first exhibited the problem. BAZLEY, Sebastian [EMAIL PROTECTED] wrote: Can you create a Bugzilla issue please? A while ago we did quite a bit of work on fixing the link parsing, and we created some test files to check that the parsing worked. If there are other examples of HTML that are not being parsed correctly, it would be useful to have them added as attachments to the Bugzilla issue. The current test files are in bin/testfiles. A new parser can be added, but you will need to write a JMeter wrapper to call the relevant parser code using its particular API. This should be fairly easy - have a look at one of the existing wrappers. S. -Original Message- From: Remedy QA [mailto:[EMAIL PROTECTED] Sent: 27 May 2004 17:56 To: JMeter Users List Subject: RE: Embedded JavaScript files are being parsed as HTML Eric, I have the same problem. However, using the RegexpHTMLParser doesn't solve my problem. My Javascript has a sample code of the following: newCalDoc.write( PCGetDefaultCSSStylesheet() + ' type=text/css rel=stylesheet\n); And when running the test, it is trying to retrieve GET http://localhost/arsys/apps/shared/javascript/; + PCGetDefaultCSSStylesheet() + Using JTidyHTMLParser only follows css embedded links in html but doesn't even recognize embedding javascript files. It basically ignores and does not retrieve the Javascript files, which isn't what I want. I want it to retrieve Javascript files but not parse them. Would it be possible to add other HTML parser jar files? Can we simply drop it in the lib directory and reference it in jmeter.properties? thanks, mabel Mcintyre, Eric wrote: The RegexpHTMLParser seems to do the trick. Thanks! -Original Message- From: BAZLEY, Sebastian [mailto:[EMAIL PROTECTED] Sent: Thursday, May 27, 2004 8:24 AM To: 'JMeter Users List' Subject: RE: Embedded JavaScript files are being parsed as HTML First try using a different Parser - see htmlParser.className in jmeter.properties - as one of the others may be better at handling the context in which is recognised. The regex parser is fast, but does not take much notice of context. The classnames are shown in the property file, if you want to look at the code S. -Original Message- From: Mcintyre, Eric [mailto:[EMAIL PROTECTED] Sent: 27 May 2004 15:16 To: JMeter User Mailing List (E-mail) Subject: Embedded JavaScript files are being parsed as HTML Hello, I am running an HTTP test script, where I have the HTTP Samplers loading embedded resources. On some pages, one of the linked JavaScript files has a function to output an HTML page. It appears that JMeter is parsing this code as if it is HTML and following the embedded links. The offending JavaScript looks like this: function writePleaseWaitMessage(doc, nextUrl) { doc.open(); doc.writeln(); doc.writeln(); doc.writeln(); doc.writeln( href=\/styles/RedFlagStyles.css\); doc.writeln( href=\/styles/tenetstyles.css\); doc.writeln(); doc.writeln(onLoad=\javascript:window.location=', nextUrl, '\); // ... and so on } The rather strange result in JMeter (Results Tree) is: +- Root |- /jsp/logon.jsp |- (other links from /jsp/logon.jsp) +- http://localhost/javascript/redflag.js (200) | |- http://localhost/javascript/redflag.js (200) | +- http://localhost/javascript/\-http://localhost/javascript/\/ (404) | |- http://localhost/javascript/\ (302) | |- http://localhost/javascript/\/ (404) |- (more links from /jsp/logon.jsp) When I remove the lines in the JS function that output tags, everything works as expected. Apparently the HTML parsing code sees href=\ and tries to follow it. The correct behavior, though, would be for the parser to ignore it, since the resource has a MIME type of application/x-javascript. Is this a known issue, or should I create a Bugzilla report? Also, if someone can point me to a likely place in the code, I'll investigate it and try to fix it. Thanks, Eric - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] ___ This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Atos Origin group liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted
Re: How throughput is calculated
Well, I was just trying to verify the calculations and wanted a smaller results file to handle. But I did run it longer and the error margins get less significant. What do you mean the cvs code accounts for the time of the sample regardless of start or end timestamps? If I were to export the results file to something like Excel and do the throughput calculations in there, would the timestamps be accurate? --- Michael Stover [EMAIL PROTECTED] wrote: If you're looking for throughput numbers, you should be running your test for a longer time than 40 ms. Try running for 30 minutes and then see how much the error is. In any case, the code in cvs accounts for the time of the sample, whether your timestamp is at the start or end of the sample. -Mike On Thu, 2004-06-03 at 19:15, Remedy QA wrote: I am a bit confused as to how JMeter calculates the throughput of each type of HTTP Request. My jmeter.properties setting has the default sampleresult.timestamp.start=true which is suppose to log the timestamp of when a HTTP Request starts in the .JTL file. So for example, I have the following results in csv format TIMESTAMP|TIME|LABEL|RESPONSE CODE|RESPONSE MSG|THREAD NAME|DATATYPE|SUCCESS 1086285141198|10|Request 1|200|OK|Thread Group1-2|text|true 1086285141248|40|Request 2|200|OK|Thread Group1-2|text|true 1086285141258|20|Request 1|200|OK|Thread Group1-1|text|true 1086285141309|51|Request 2|200|OK|Thread Group1-1|text|true JMeter calculates the throughput per second as (count/howLongRunning) * 1000.0 The part where I'm confused about is the howLongRunning time. The source code says that the total time passed is taken to be the timestamps of the first and last samples. The timestamps are suppose to be the start time of each request, according to the jmeter properties configuration. So for Request 2, the last sample timestamp is 41309 while the timestamp for the first sample is 41248. JMeter calculates by (2 / (41309 - (41248 - 40))) * 1000.0 Why does it take the first sample and subtracts the response time that it took to execute the first Request 2? I would think that instead, it should add the response time of the last Request 2 to the Request 2 timestamp (41309 + 51). That would actually be the time passed from the first Request 2 to start and really end with the last Request 2. Is the timestamp really the start time of the request? thanks, mabel __ Do you Yahoo!? Friends. Fun. Try the all-new Yahoo! Messenger. http://messenger.yahoo.com/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: While loop functionality
I tried with the June 3rd nightly build and this workaround for a while loop isn't quite working. There are two problems: 1. Using the Test Action sampler doesn't execute the IF condition at all--only when I put a real sampler like an HTTP Request sampler. 2. The IF condition only evaluates once. When the loop executes a second time, the IF condition doesn't seem to evaluate at all and therefore, the loop ends. I made sure the IF condition should evaluate by setting the condition to 1 == 1. I read in previous messages that other users have seen similiar behavior but no resolution was given. I tried searching through bugzilla for such a bug but didn't see one. Has anyone tried this while loop workaround? For the User Parameters, should the Update Once Per Iteration be unchecked? thanks, mabel From: Thad Smith Subject: Re: While loop functionality Date: Thu, 29 Apr 2004 12:23:30 -0700 Actually there is a way to do this. I've made some modifications to the ForLoop controller to allow it to use a JMeter variable as a loop counter. What you do is initialize a JMeter variable to 1...and use that JMeter variable as the loop counter. If you want to loop again then increment the counter variable and you'll loop again. Your test tree would look something like: Test Plan | Thread Group | MatchTest | User Parameters i=1 /pages/login.jsp /pages/j_security_check /pages/main.do /pages/top.jsp /pages/test.tst LoopController Loop Count: ${i} | /pages/taskList.do | Regular Expression Extractor Reference Name: done Regular Expression: Done Template: true Match No: 1 Default Value: false If Controller Condition: !${done} | User Parameters i=${__javaScript(${i}+1,)} Test Action Target: Current Thread Action: Pause Duration: 0 /pages/logout.do Basically, what's happening here is that you are going to execute the /pages/taskList.do http request at least once. If the text Done is found than the JMeter varible ${done} is set to true, else false. The If Controller is a child of the Loop Controller and increments the value of ${i} if !${done} is true (the text Done wasn't found). You have to stick the Test Action in the if controller because the controller won't execute at all if it doesn't have a sampler to sample. Test Action is a new Sampler that I added a few weeks ago that will either pause or stop the current thread or the entire test based on how you set it up. It's a sampler because that was the only way to introduce this functionality without completely rewriting JMeter. Plus, I think it's pretty convenient for use in the above scenario...It basically pauses the test for 0 milliseconds. The Test Action sampler doesn't actually return a sample. You can use any other sampler in its place for that matter. Note: The above scenario only works with the current code in the nightly build. Regards, Thad Smith P.S. There has been talk of creating some eclipse plugins that allows you to run JMeter inside of a Java program in eclipse, but nothing has been done yet. --- Hans Then [EMAIL PROTECTED] wrote: Jordi Salvat i Alabart wrote: Not currently. Jacqui Guerrero wrote: Is there a way to simulate a while loop in the test plan? More generally, is there a way to create the test plan in a programming language? Is it possible to call the Java objects that execute the test plan directly from a Java program. The functionality I am looking for is somewhat like HttpUnit, but with the focus on load-testing, so I also need the stress-engine and the reporting facilities. This would make simulating complex user interactions less difficult than it is using only a GUI. Hans Then __ Do you Yahoo!? Friends. Fun. Try the all-new Yahoo! Messenger. http://messenger.yahoo.com/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: how to run a logout transaction once
You're right, I don't need a Once Only Controller if the ThreadGroup is set to loop once. Thanks for implementing the Run Controller. I look forward to testing and using that feature in a few days. I see your point on not gaining much when there is a time restriction on the thread group and you run a Finally Controller. Finally Controller would be good for doing any cleanup after simulation ends. BAZLEY, Sebastian [EMAIL PROTECTED] wrote: Since the finally controller would have to run after the threadgroup timeout had expired, I don't see what you would gain by having a time restriction on the threadgroup compared with having a time restriction on the run time controller. But I agree it would be a useful feature to have a finally controller. However, I just don't know where to start with implementing a finally controller, sorry. == It seems to me that the Once Only controllers are not needed if the threadgroup only loops once. Could you not use: TestPlan ThreadGroup - loop once Simple Controller HTTP Request - login Run Controller - 2 hours HTTP Request 1 HTTP Request 2 Simple Controller HTTP Request - logout Or am I missing something? Not that it matters much. S. -Original Message- From: Remedy QA [mailto:[EMAIL PROTECTED] Sent: 03 June 2004 18:07 To: JMeter Users List Subject: Re: how to run a logout transaction once This is one step closer to solving my problem. However, I still have to somehow time things correctly. For example, if my test plan had the following TestPlan ThreadGroup - 2 hour duration Once Only Controller HTTP Request - login Run Controller - 1 hour 57 minutes ? HTTP Request 1 HTTP Request 2 HTTP Request - logout In Run Controller, I have to somehow make sure that I still have enough time to do the logout before the entire simulation ends (as set in ThreadGroup) but also just enough so that it doesn't do Run Controller again. I suppose I can do the following: TestPlan ThreadGroup - loop once Once Only Controller HTTP Request - login Run Controller - 2 hours HTTP Request 1 HTTP Request 2 Once Only Controller HTTP Request - logout But I would like the overall test plan to run 2 hours and not just the requests in Run Controller. This is probably the closest solution for now that I can settle with. Again, a Finally Controller is what I need. It would be nice to have option to complete a request and then jump to the Finaller Controller element when simulation is due. Of course, to execute the Finally Controller, it would mean that the simulation time is actually longer than initially specified. I will write up an enhancement request. If I were to start looking at how to implement a Finally Controller, where would be a good place to start? thanks, mabel Sebastian Bazley wrote:Or a Runtime Controller, which I have just added to the 2.0 branch code. This is like a loop controller, except that it runs for N seconds, instead of N loops. It should appear in the nightly builds (http://gump.covalent.net/jars/latest/jakarta-jmeter-20/) in a day or so. [The library zip can be picked up from http://gump.covalent.net/jars/latest/jakarta-jmeter/ if you haven't already got it - it rarely changes.] Please remember that nightly builds are just that - they have not been formally tested, and may not work at all. If the build generally works, but the Runtime Controller has problems, please log a bug. S. - Original Message - From: Remedy QA To: JMeter Users List Sent: Wednesday, May 26, 2004 7:52 PM Subject: RE: how to run a logout transaction once I'm sure that two thread groups can't access the same cookie and it would be considered two different sessions, which would not work for me. But thanks for the suggestions. What I need is a finally controller as Joe Casadonte mentioned, which hasn't been implemented. BAZLEY, Sebastian wrote: In that case, you *might* be able to use two thread groups and run them consecutively. However, I don't think thread groups can access each others cookies or variables. This might cause you problems - cannot be sure from the information you have provided. S. -Original Message- From: Remedy QA [mailto:[EMAIL PROTECTED] Sent: 26 May 2004 17:48 To: JMeter Users List Subject: RE: how to run a logout transaction once The problem with this is that in Thread Group, it is scheduled to run for 2 hours and loop forever. I am assuming that after 2 hours, the looping will stop. So, according to your suggestion, Simple Controller for login and logout will repeat and that is not what I want. I can use Once Only Controller for login and the Loop Controller you suggested. However, the logout is the problem. I cannot use Once Only Controller for logout because the user should not logout until 2 hours has ended. thanks. BAZLEY, Sebastian wrote: Thread group Simple Controller Login Loop controller Random Controller Simple Controller Logout Or something similar. -Original Message- From
How throughput is calculated
I am a bit confused as to how JMeter calculates the throughput of each type of HTTP Request. My jmeter.properties setting has the default sampleresult.timestamp.start=true which is suppose to log the timestamp of when a HTTP Request starts in the .JTL file. So for example, I have the following results in csv format TIMESTAMP|TIME|LABEL|RESPONSE CODE|RESPONSE MSG|THREAD NAME|DATATYPE|SUCCESS 1086285141198|10|Request 1|200|OK|Thread Group1-2|text|true 1086285141248|40|Request 2|200|OK|Thread Group1-2|text|true 1086285141258|20|Request 1|200|OK|Thread Group1-1|text|true 1086285141309|51|Request 2|200|OK|Thread Group1-1|text|true JMeter calculates the throughput per second as (count/howLongRunning) * 1000.0 The part where I'm confused about is the howLongRunning time. The source code says that the total time passed is taken to be the timestamps of the first and last samples. The timestamps are suppose to be the start time of each request, according to the jmeter properties configuration. So for Request 2, the last sample timestamp is 41309 while the timestamp for the first sample is 41248. JMeter calculates by (2 / (41309 - (41248 - 40))) * 1000.0 Why does it take the first sample and subtracts the response time that it took to execute the first Request 2? I would think that instead, it should add the response time of the last Request 2 to the Request 2 timestamp (41309 + 51). That would actually be the time passed from the first Request 2 to start and really end with the last Request 2. Is the timestamp really the start time of the request? thanks, mabel __ Do you Yahoo!? Friends. Fun. Try the all-new Yahoo! Messenger. http://messenger.yahoo.com/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: AW: AW: how to run a logout transaction once
The following is the structure of your test plan that you've included. TestPlan ThreadGroup (loop once, no schedule) Loop Controller (loop 3 times) Simple Controller 1 Once Only Controller HTTP Request - login Simple Controller 2 HTTP Request A Constant Timer - 10 seconds HTTP Request - logout I don't see how it controls running for 2 hours. How do you tell the Loop Controller to run 2 hours? I'll have to guess how many times it will loop in 2 hours?! Please elaborate. Thanks. mabel --- Schlichting, Carsten (Z-EDV) [EMAIL PROTECTED] wrote: Sorry, I guess the attachment didn't make it through the firewall. Here is the testplan I had attached. I was using JMeter 1.9.1: Let me know if this works for you. Carsten -Ursprüngliche Nachricht- Von: Remedy QA [mailto:[EMAIL PROTECTED] Gesendet: Donnerstag, 27. Mai 2004 18:26 An: JMeter Users List Betreff: Re: AW: how to run a logout transaction once Would you just paste the code onto the email? I didn't get any attachment. Thanks! Actually, I haven't tried the Once Only Controller. From just reading the reference, I assume that is what it should do. Schlichting, Carsten (Z-EDV) [EMAIL PROTECTED] wrote: Hi! Can you package everything you want to do during the 2 hours in one Controller and put your logout parallel to this controller? I have attached a sample plan that shows what I'm talking about ... Carsten P.S.: The only once controller always runs twice rather than once for me ... -Ursprüngliche Nachricht- Von: Remedy QA [mailto:[EMAIL PROTECTED] Gesendet: Mittwoch, 26. Mai 2004 18:48 An: JMeter Users List Betreff: RE: how to run a logout transaction once The problem with this is that in Thread Group, it is scheduled to run for 2 hours and loop forever. I am assuming that after 2 hours, the looping will stop. So, according to your suggestion, Simple Controller for login and logout will repeat and that is not what I want. I can use Once Only Controller for login and the Loop Controller you suggested. However, the logout is the problem. I cannot use Once Only Controller for logout because the user should not logout until 2 hours has ended. thanks. BAZLEY, Sebastian wrote: Thread group Simple Controller Login Loop controller Random Controller Simple Controller Logout Or something similar. -Original Message- From: Remedy QA [mailto:[EMAIL PROTECTED] Sent: 25 May 2004 20:14 To: JMeter User List Subject: how to run a logout transaction once I would like to have users run these in this order in a scheduled simulation duration: 1. a first set of transactions once, 2. then run a second set randomly and repeatedly, 3. then finally when simulation time is near the end, run a thrid set of transactions once. For the first 2 sets, I realize I can use the Once Only Controller and Random Controller respectively. However, I don't know how to get the last set to run only once at the time I want. The last set of transactions is essentially logout. I would like the user to only login/logout once through the entire simulation. For the other transactions, I would like the users to repeat until the simulation time has ended. The final action should be logout before the simulation ends. Can anyone think of a way to achieve this? Thanks, Mabel __ Do you Yahoo!? Friends. Fun. Try the all-new Yahoo! Messenger. http://messenger.yahoo.com/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: AW: how to run a logout transaction once
Would you just paste the code onto the email? I didn't get any attachment. Thanks! Actually, I haven't tried the Once Only Controller. From just reading the reference, I assume that is what it should do. Schlichting, Carsten (Z-EDV) [EMAIL PROTECTED] wrote: Hi! Can you package everything you want to do during the 2 hours in one Controller and put your logout parallel to this controller? I have attached a sample plan that shows what I'm talking about ... Carsten P.S.: The only once controller always runs twice rather than once for me ... -Ursprüngliche Nachricht- Von: Remedy QA [mailto:[EMAIL PROTECTED] Gesendet: Mittwoch, 26. Mai 2004 18:48 An: JMeter Users List Betreff: RE: how to run a logout transaction once The problem with this is that in Thread Group, it is scheduled to run for 2 hours and loop forever. I am assuming that after 2 hours, the looping will stop. So, according to your suggestion, Simple Controller for login and logout will repeat and that is not what I want. I can use Once Only Controller for login and the Loop Controller you suggested. However, the logout is the problem. I cannot use Once Only Controller for logout because the user should not logout until 2 hours has ended. thanks. BAZLEY, Sebastian wrote: Thread group Simple Controller Login Loop controller Random Controller Simple Controller Logout Or something similar. -Original Message- From: Remedy QA [mailto:[EMAIL PROTECTED] Sent: 25 May 2004 20:14 To: JMeter User List Subject: how to run a logout transaction once I would like to have users run these in this order in a scheduled simulation duration: 1. a first set of transactions once, 2. then run a second set randomly and repeatedly, 3. then finally when simulation time is near the end, run a thrid set of transactions once. For the first 2 sets, I realize I can use the Once Only Controller and Random Controller respectively. However, I don't know how to get the last set to run only once at the time I want. The last set of transactions is essentially logout. I would like the user to only login/logout once through the entire simulation. For the other transactions, I would like the users to repeat until the simulation time has ended. The final action should be logout before the simulation ends. Can anyone think of a way to achieve this? Thanks, Mabel - Do you Yahoo!? Friends. Fun. Try the all-new Yahoo! Messenger
RE: Embedded JavaScript files are being parsed as HTML
Eric, I have the same problem. However, using the RegexpHTMLParser doesn't solve my problem. My Javascript has a sample code of the following: newCalDoc.write(link rel=stylesheet type='text/css' href=' + PCGetDefaultCSSStylesheet() + '\n); And when running the test, it is trying to retrieve GET http://localhost/arsys/apps/shared/javascript/; + PCGetDefaultCSSStylesheet() + Using JTidyHTMLParser only follows css embedded links in html but doesn't even recognize embedding javascript files. It basically ignores and does not retrieve the Javascript files, which isn't what I want. I want it to retrieve Javascript files but not parse them. Would it be possible to add other HTML parser jar files? Can we simply drop it in the lib directory and reference it in jmeter.properties? thanks, mabel Mcintyre, Eric [EMAIL PROTECTED] wrote: The RegexpHTMLParser seems to do the trick. Thanks! -Original Message- From: BAZLEY, Sebastian [mailto:[EMAIL PROTECTED] Sent: Thursday, May 27, 2004 8:24 AM To: 'JMeter Users List' Subject: RE: Embedded JavaScript files are being parsed as HTML First try using a different Parser - see htmlParser.className in jmeter.properties - as one of the others may be better at handling the context in which is recognised. The regex parser is fast, but does not take much notice of context. The classnames are shown in the property file, if you want to look at the code S. -Original Message- From: Mcintyre, Eric [mailto:[EMAIL PROTECTED] Sent: 27 May 2004 15:16 To: JMeter User Mailing List (E-mail) Subject: Embedded JavaScript files are being parsed as HTML Hello, I am running an HTTP test script, where I have the HTTP Samplers loading embedded resources. On some pages, one of the linked JavaScript files has a function to output an HTML page. It appears that JMeter is parsing this code as if it is HTML and following the embedded links. The offending JavaScript looks like this: function writePleaseWaitMessage(doc, nextUrl) { doc.open(); doc.writeln(); doc.writeln(); doc.writeln(); doc.writeln( href=\/styles/RedFlagStyles.css\); doc.writeln( href=\/styles/tenetstyles.css\); doc.writeln(); doc.writeln(onLoad=\javascript:window.location=', nextUrl, '\); // ... and so on } The rather strange result in JMeter (Results Tree) is: +- Root |- /jsp/logon.jsp |- (other links from /jsp/logon.jsp) +- http://localhost/javascript/redflag.js (200) | |- http://localhost/javascript/redflag.js (200) | +- http://localhost/javascript/\-http://localhost/javascript/\/ (404) | |- http://localhost/javascript/\ (302) | |- http://localhost/javascript/\/ (404) |- (more links from /jsp/logon.jsp) When I remove the lines in the JS function that output tags, everything works as expected. Apparently the HTML parsing code sees href=\ and tries to follow it. The correct behavior, though, would be for the parser to ignore it, since the resource has a MIME type of application/x-javascript. Is this a known issue, or should I create a Bugzilla report? Also, if someone can point me to a likely place in the code, I'll investigate it and try to fix it. Thanks, Eric - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] ___ This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Atos Origin group liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted. ___ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - Do you Yahoo!? Friends. Fun. Try the all-new Yahoo! Messenger
RE: how to run a logout transaction once
Yes, that is exactly the behavior I need. I'll probably submit an enhancement request. Casadonte, Joe [EMAIL PROTECTED] wrote:We basically need a finally controller concept. Some day I'm going to dig into the source code.. -- Regards, joe Joe Casadonte [EMAIL PROTECTED] 1016 West Ninth Avenue King of Prussia, PA 19406 610-491-9881 -Original Message- From: Remedy QA [mailto:[EMAIL PROTECTED] Sent: Wednesday, May 26, 2004 12:48 PM To: JMeter Users List Subject: RE: how to run a logout transaction once The problem with this is that in Thread Group, it is scheduled to run for 2 hours and loop forever. I am assuming that after 2 hours, the looping will stop. So, according to your suggestion, Simple Controller for login and logout will repeat and that is not what I want. I can use Once Only Controller for login and the Loop Controller you suggested. However, the logout is the problem. I cannot use Once Only Controller for logout because the user should not logout until 2 hours has ended. thanks. BAZLEY, Sebastian wrote: Thread group Simple Controller Login Loop controller Random Controller Simple Controller Logout Or something similar. -Original Message- From: Remedy QA [mailto:[EMAIL PROTECTED] Sent: 25 May 2004 20:14 To: JMeter User List Subject: how to run a logout transaction once I would like to have users run these in this order in a scheduled simulation duration: 1. a first set of transactions once, 2. then run a second set randomly and repeatedly, 3. then finally when simulation time is near the end, run a thrid set of transactions once. For the first 2 sets, I realize I can use the Once Only Controller and Random Controller respectively. However, I don't know how to get the last set to run only once at the time I want. The last set of transactions is essentially logout. I would like the user to only login/logout once through the entire simulation. For the other transactions, I would like the users to repeat until the simulation time has ended. The final action should be logout before the simulation ends. Can anyone think of a way to achieve this? Thanks, Mabel - Do you Yahoo!? Friends. Fun. Try the all-new Yahoo! Messenger
RE: how to run a logout transaction once
I'm sure that two thread groups can't access the same cookie and it would be considered two different sessions, which would not work for me. But thanks for the suggestions. What I need is a finally controller as Joe Casadonte mentioned, which hasn't been implemented. BAZLEY, Sebastian [EMAIL PROTECTED] wrote: In that case, you *might* be able to use two thread groups and run them consecutively. However, I don't think thread groups can access each others cookies or variables. This might cause you problems - cannot be sure from the information you have provided. S. -Original Message- From: Remedy QA [mailto:[EMAIL PROTECTED] Sent: 26 May 2004 17:48 To: JMeter Users List Subject: RE: how to run a logout transaction once The problem with this is that in Thread Group, it is scheduled to run for 2 hours and loop forever. I am assuming that after 2 hours, the looping will stop. So, according to your suggestion, Simple Controller for login and logout will repeat and that is not what I want. I can use Once Only Controller for login and the Loop Controller you suggested. However, the logout is the problem. I cannot use Once Only Controller for logout because the user should not logout until 2 hours has ended. thanks. BAZLEY, Sebastian wrote: Thread group Simple Controller Login Loop controller Random Controller Simple Controller Logout Or something similar. -Original Message- From: Remedy QA [mailto:[EMAIL PROTECTED] Sent: 25 May 2004 20:14 To: JMeter User List Subject: how to run a logout transaction once I would like to have users run these in this order in a scheduled simulation duration: 1. a first set of transactions once, 2. then run a second set randomly and repeatedly, 3. then finally when simulation time is near the end, run a thrid set of transactions once. For the first 2 sets, I realize I can use the Once Only Controller and Random Controller respectively. However, I don't know how to get the last set to run only once at the time I want. The last set of transactions is essentially logout. I would like the user to only login/logout once through the entire simulation. For the other transactions, I would like the users to repeat until the simulation time has ended. The final action should be logout before the simulation ends. Can anyone think of a way to achieve this? Thanks, Mabel - Do you Yahoo!? Friends. Fun. Try the all-new Yahoo! Messenger
how to run a logout transaction once
I would like to have users run these in this order in a scheduled simulation duration: 1. a first set of transactions once, 2. then run a second set randomly and repeatedly, 3. then finally when simulation time is near the end, run a thrid set of transactions once. For the first 2 sets, I realize I can use the Once Only Controller and Random Controller respectively. However, I don't know how to get the last set to run only once at the time I want. The last set of transactions is essentially logout. I would like the user to only login/logout once through the entire simulation. For the other transactions, I would like the users to repeat until the simulation time has ended. The final action should be logout before the simulation ends. Can anyone think of a way to achieve this? Thanks, Mabel - Do you Yahoo!? Friends. Fun. Try the all-new Yahoo! Messenger
Re: Jmeter accuracy (applets, load, response)
I have a few more questions/comments about how JMeter measures response times. Suppose I have the following Test Plan structure that is set to run twice by one user: Test Plan Thread Group HTTP Cookie Manager Simple Controller 1 HTTP Request A (Retrieve all embedded resources) HTTP Request B (Retrieve all embedded resources) Timer - 5 seconds Aggregate Report 1 Simple Controller 2 HTTP Request C (Retrieve all embedded resources) HTTP Request D (Retrieve all embedded resources) HTTP Request B (Retrieve all embedded resources) Aggregate Report 2 1. There doesn't seem to be an option for JMeter to not retrieve embedded resources once it has been retrieved the first time. In other words for JMeter to simulate a browser cache. In my example, the first loop will retrieve all embedded resources for all the requests. The second loop through would do the same for the same user. Furthermore, it would be nice during the first loop, when encountering Request B again in Simple Controller 2, that it would not retrieve embedded resources for Request B. So it would seem that the response time for the requests will always be measuring first cache hit scenario. 2. Peter, you said that JMeter measures the total elapsed time. Just to clarifyFor example, on a HTTP Request A that is run only once, does the measurement time start when the first byte request is sent and the measurement time stops when the very last byte response is returned which could well be the byte from an embedded file? Or is it the measurement starts after a virtual user has sent the last byte of the request and ends when the user retrieves the first byte of the response. 3. The Timer under the first HTTP Request B does not get calculated to the response time for Aggregate Report 1, which is what I want. However, if using the Transaction Controller, it does. Transaction Controller should have an option to measure with Timers or not. 4. I suppose JMeter currently does not measure the number of KB a page request/response takes? Is this planned to be implemented? Thanks, Mabel Re: Jmeter accuracy (applets, load, response) From: peter lin Subject: Re: Jmeter accuracy (applets, load, response) Date: Wed, 12 May 2004 10:58:11 -0700 most of this is in the component documentation. http://jakarta.apache.org/jmeter/usermanual/index.html the response time you see in JMeter is the total elapsed time. If you do not check retrieve all embedded resources from HTML files, it is just the html. If you check it, it is the total time to get all the resources including html. Remember the response times are always estimates and never use the average as actual response time from a user's perspective. Since JMeter does not render the pages, the response time is faster than the total time to transfer the data + browser rendering time. Depending on how deeply nested the html tables are, it could take the browser and additional 2-5 seconds to draw the page. keep in mind network latency can greatly affect the user's perception of response time. If someone is using a bad modem, the page will load considerly slower. I tend to error on the side of safety and state the results are only indicators of likely performance :) you'd be amazed at how people will interpret the results. peter Steve Luong [EMAIL PROTECTED] wrote: Hey guys, I was wondering how accurate is Jmeter in measuring load time. I'm working on a report for a client and I need to know are these numbers reliable. I've only been working on Jmeter for a few days and everything looks promising. A few questions I would like to know is are there any hints anyone can provide to give me the most accurate information on the load times. Also when Jmeter is set to follow all elements in the html page like images does it do applets too? Does it measure the complete time it takes to download the applet or just the time it takes to send the applet? Having this knowledge would greatly help in my efforts. Thanks for all the help! SL - Do you Yahoo!? SBC Yahoo! - Internet access at a great low price.