<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Waldemar's blog</title>
	<atom:link href="http://blog.testsautomation.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.testsautomation.com</link>
	<description>Live fast, die old...</description>
	<lastBuildDate>Mon, 02 Jan 2012 20:36:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>How to debug LoadRunner script</title>
		<link>http://blog.testsautomation.com/2010/12/how-to-debug-loadrunner-script/</link>
		<comments>http://blog.testsautomation.com/2010/12/how-to-debug-loadrunner-script/#comments</comments>
		<pubDate>Thu, 16 Dec 2010 11:59:31 +0000</pubDate>
		<dc:creator>Waldemar</dc:creator>
				<category><![CDATA[LoadRunner]]></category>
		<category><![CDATA[breakpoint]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[settings]]></category>

		<guid isPermaLink="false">http://blog.testsautomation.com/?p=613</guid>
		<description><![CDATA[From time to time there are situations where you work on a script, and it looks fine, compiles with no issues but simply doesn&#8217;t work as you expect. In such case there is no other option than just knuckle down and get a little bit dirty. That&#8217;s the right time for debugging. And here some [...]]]></description>
			<content:encoded><![CDATA[<p>From time to time there are situations where you work on a script, and it looks fine, compiles with no issues but simply doesn&#8217;t work as you expect. In such case there is no other option than just knuckle down and get a little bit dirty. That&#8217;s the right time for debugging.</p>
<p>And here some tips from me that (hopefully) will help you making this step less painful. </p>
<p><strong>1) Increase log level</strong><br />
By default, VuGen report only standard information. If you want to see more verbose details, then go to Vuser -> Run-Time settings -> Log and enable &#8220;Extended log&#8221; option.</p>
<p><img src="http://blog.testsautomation.com/wp-content/uploads/2010/12/lr_prop.jpg" alt="lr_prop" title="lr_prop" width="504" height="374" class="aligncenter size-full wp-image-621" /></p>
<p><strong>2) Use HTTP Proxy</strong><br />
Another option is to find by checking what exactly LoadRunner sends to the server. Personally I use WebScarab and Fidler (from time to time) to sniff network traffic and to check what data my script generate. You can setup proxy in VuGen by going to Vuser -> Run-Time settings -> Proxy.</p>
<p>Below is a setup for WebScarab running locally:</p>
<p><img src="http://blog.testsautomation.com/wp-content/uploads/2010/12/lr_webscarab_setup.jpg" alt="lr_webscarab_setup" title="lr_webscarab_setup" width="576" height="426" class="aligncenter size-full wp-image-630" /></p>
<p>and sample traffic as seen in WebScarab:</p>
<p><img src="http://blog.testsautomation.com/wp-content/uploads/2010/12/webscarab_sample_session1.jpg" alt="webscarab_sample_session" title="webscarab_sample_session" width="642" height="435" class="aligncenter size-full wp-image-670" /></p>
<p><strong>3) Use text tools to compare HTTP requests from LR and from real browser</strong><br />
Lets say you sniffed LR HTTP call and browser HTTP call e.g. with local proxy and you want to compare both to search for any differences. Sometimes your HTTP call fails only because of e.g. missing dot somewhere. And such bugs are even harder to find because there is no obvious &#8220;Hello, I&#8217;m here&#8221; error type of message. Try to use Notepad+ or ConTEXT (http://www.contexteditor.org). </p>
<p>Sample results of HTTP requests comparison in ConTEXT editor:</p>
<p><img src="http://blog.testsautomation.com/wp-content/uploads/2010/12/compare_results1.jpg" alt="compare_results" title="compare_results" width="719" height="282" class="aligncenter size-full wp-image-645" /></p>
<p><strong>4) Use breakpoint</strong><br />
Breakpoint is a place in script where LR will pause running so you can see all runtime values. Howto setup a breakpoint? Simply right click line where you would like to pause and select &#8220;Toggle Breakpoint&#8221;. This will put red dot at the beginning of line. It looks like that:</p>
<p><img src="http://blog.testsautomation.com/wp-content/uploads/2010/12/breakpoint.jpg" alt="breakpoint" title="breakpoint" width="464" height="357" class="aligncenter size-full wp-image-648" /></p>
<p>Now, simply start the script, and wait until script reaches this breakpoint. When it&#8217;s done, in output window you can switch to &#8220;RunTime Data&#8221; and see detailed information like which iteration is running currently, which action, line number and (most interesting) all parameter with their current values:</p>
<p><img src="http://blog.testsautomation.com/wp-content/uploads/2010/12/breakpoint_pause.jpg" alt="breakpoint_pause" title="breakpoint_pause" width="554" height="163" class="aligncenter size-full wp-image-650" /></p>
<p>To resume running, simply hit run button once again. To disable a break point, also right click the line and select the same &#8220;Toggle Breakpoint&#8221;.</p>
<p><strong>5) Run script step by step</strong><br />
Running step by step means that instead of going from one call to another automatically, you need to hit F10 in order to perform next call. This is actually helpful when running with Browser preview or when you have lots of if/while/do&#8230;while/for loops and you want to see exactly what LR is doing and where.<br />
To run scrip in step by step mode you just simply hit F10 or select Vuser -> Run Step by Step.</p>
<p><strong>6) Force script to run with specific parameters values</strong><br />
This is actually a trick, definitely not something described in VuGen manual. Lets say your script use parameters very heavily and depends on them as well. Now, you have e.g. parameter USERNAME with lots of accounts to use but you want to use one very specific account. One method is to update/change the parameter so it will pick up correct account. But in such case you need to remember to undo your changes after you are done with the test. Another method is to leave parameter unchanged, and just override it&#8217;s value during runtime. For that you can use lr_save_string() function and place it somewhere at the beginning.</p>
<p>One could say that it&#8217;s even more dangerous than first method since it always overrides param value so when left unchanged could fail every future load test. But even for than there is a solution. Trick that I use looks like this:</p>
<div class="codesnip-container" >
<div class="codesnip" style="font-family: monospace;">
<ol>
<li class="li1">
<div class="de1"><span class="kw4">int</span> id;</div>
</li>
<li class="li1">
<div class="de1">lr_whoami<span class="br0">&#40;</span>&amp;id, <span class="kw2">NULL</span>, <span class="kw2">NULL</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span><span class="br0">&#40;</span>id &lt; <span class="nu0">0</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; lr_save_string<span class="br0">&#40;</span><span class="st0">&quot;Pete&quot;</span>, <span class="st0">&quot;USERNAME&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
</div>
<p>And basically you can leave it in your script because LR will reach this lr_save_string call only in VuGen. When running in LR Controller, lr_save_string() won&#8217;t be reached (lr_whoami called in VuGen always return -1).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.testsautomation.com/2010/12/how-to-debug-loadrunner-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My first and tiny startup</title>
		<link>http://blog.testsautomation.com/2010/09/my-first-and-tiny-startup/</link>
		<comments>http://blog.testsautomation.com/2010/09/my-first-and-tiny-startup/#comments</comments>
		<pubDate>Tue, 14 Sep 2010 21:20:09 +0000</pubDate>
		<dc:creator>Waldemar</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.testsautomation.com/?p=605</guid>
		<description><![CDATA[Hi All readers I have recently started my first and tiny startup. Basically it&#8217;s RSS news aggregator based on K-I-S-S principle and few similar ideas already running on the net. Unfortunately for non-Polish readers it&#8217;s mainly focused on Polish news but there is &#8220;IT Eng&#8221; part which you can find interesting. The whole thing is [...]]]></description>
			<content:encoded><![CDATA[<p>Hi All readers</p>
<p>I have recently started my first and tiny startup. Basically it&#8217;s RSS news aggregator based on K-I-S-S principle and few similar ideas already running on the net. Unfortunately for non-Polish readers it&#8217;s mainly focused on Polish news but there is &#8220;IT Eng&#8221; part which you can find interesting.</p>
<p>The whole thing is running on PHP, MySQL and jQuery. My main goal was to deliver the latest news in a very clear form. Hopefully I will try to run it without ads but we will see&#8230;</p>
<p>Feel free to step in: <a href="http://www.czytnik-newsow.pl/">www.czytnik-newsow.pl</a> (means &#8220;news reader&#8221; in Polish)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.testsautomation.com/2010/09/my-first-and-tiny-startup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My LoadRunner Tips and Tricks</title>
		<link>http://blog.testsautomation.com/2010/07/my-loadrunner-tips-and-tricks/</link>
		<comments>http://blog.testsautomation.com/2010/07/my-loadrunner-tips-and-tricks/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 20:47:34 +0000</pubDate>
		<dc:creator>Waldemar</dc:creator>
				<category><![CDATA[LoadRunner]]></category>

		<guid isPermaLink="false">http://blog.testsautomation.com/?p=589</guid>
		<description><![CDATA[Few tips&#038;tricks to make working with LoadRunner easy: - Store URL of your application in one single parameter. In case you need to change it, it requires a single change in one place, not tons of them for every single web request. - If you don&#8217;t know why your HTTP/HTTPS request is failing, use proxy [...]]]></description>
			<content:encoded><![CDATA[<p>Few tips&#038;tricks to make working with LoadRunner easy:</p>
<p>- Store URL of your application in one single parameter. In case you need to change it, it requires a single change in one place, not tons of them for every single web request.</p>
<p>- If you don&#8217;t know why your HTTP/HTTPS request is failing, use proxy to sniff it and them compare it with the same request but generated from real browser. As a proxy you can use WebScarab or Fiddler. </p>
<p>- Separate load logic using actions, don&#8217;t store whole load in a huge single action that LR created be default at the beginning.</p>
<p>- Create web_reg_find() checkpoint for every HTTP request that you make. You don&#8217;t want to pass failing transations.</p>
<p>- On parameter setup, beware using &#8220;Update value&#8221; set to &#8220;Once&#8221;. Rather use &#8220;Every iteration&#8221;. If you mess it up somehow, at least only current iteration will fail, not all of them.</p>
<p>- For scripts that handle UI actions (like Web Click&#038;Script or AJAX Click&#038;Script) use &#8220;Run every user as a process&#8221; instead of &#8220;Run every user as a thread&#8221;. LR is not very good at memory management for such scripts so it&#8217;s better to run each vuser separately. </p>
<p>- Don&#8217;t use extended log level while running test in a Controller. One more time LR is not very good at handling it. Rather use basic level and if there is an issue switch to VuGen to digg for it. </p>
<p>- In LR Analysis, check performance results on a summary graph instead of &#8220;Average transactions response times&#8221; graph. </p>
<p>- Place 1 second wait before first call to the server. If server breaks, you won&#8217;t flood it with bunch of requests.</p>
<p>- Try to avoid using standard C string functions (strcpy, strcat, etc&#8230;) if you can. Or if you really need, just remember about null pointer issue. More details here http://blog.testsautomation.com/2009/11/exception-access_violation/.</p>
<p>- Comment your code &#8211; at the end LR script is (most cases) a C program. So all programming best practices apply as well.</p>
<p>- Make your code to look nice (tabs, indents, etc&#8230;). It will be easier for you to work with it and spot any issue.</p>
<p>- Don&#8217;t hard code anything. Instead put it into parameter. </p>
<p>- If some calls repeat constantly, put them into separate action and call this action instead. It will help you during refactoring your tests. </p>
<p>- NEVER store Controller scenario in QualityCenter. It&#8217;s just bad idea. Use local hard drive for it. Controller can store really big files there. </p>
<p>- When you work on a script in VuGen, try to run it there at lest for 2 or 3 iterations. Sometimes errors occur only after the first iteration.</p>
<p>- If you want you can store LR script on a shared drive. It won&#8217;t affect your tests since Controller will always copy it to temp directory before running the scenario (even if the script is stored locally on the same drive).</p>
<p>- If you want to send LR script to someone use File -> Zip Operations -> Zip and Email. On popup select &#8220;Run-Time files&#8221; instead of &#8220;All files&#8221;. This second options can zip results as well which may generate really unnecessary huge file.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.testsautomation.com/2010/07/my-loadrunner-tips-and-tricks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Selenium Grid &#8211; what&#8217;s that?</title>
		<link>http://blog.testsautomation.com/2010/05/selenium-grid-whats-that/</link>
		<comments>http://blog.testsautomation.com/2010/05/selenium-grid-whats-that/#comments</comments>
		<pubDate>Sat, 15 May 2010 19:09:28 +0000</pubDate>
		<dc:creator>Waldemar</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.testsautomation.com/?p=582</guid>
		<description><![CDATA[If you are familiar with Selenium test tool, you probably know that when running tests, you can run only one test case at a time. Lets say we have 10 test cases and running each takes about 10 minutes. In that case, running all test cases will take 100 minutes. Now, the question is how [...]]]></description>
			<content:encoded><![CDATA[<p>If you are familiar with Selenium test tool, you probably know that when running tests, you can run only one test case at a time. Lets say we have 10 test cases and running each takes about 10 minutes. In that case, running all test cases will take 100 minutes. Now, the question is how to speed it up? How to make it faster?</p>
<p>One of the solution is to run test cases in parallel. And that&#8217;s exactly what Selenium Grid is for. It allows to setup few remote boxes and run test cases on all boxes simultaneously at the same time.</p>
<p>There are two main parts of Selenium Grid: hub and remote control. You will run most probably one single hub and multiple remote controllers. Remote controllers are responsible for executing particular test cases using the browser like in regular Selenium. Hub is responsible for distributing test cases between remote controllers and collecting results. </p>
<p>Going back to our example. Lets use 10 remote controllers and lets run our 10 test cases. With such setup, running all test cases will take only 10 minutes (from 100 minutes) which is a huge improvement. </p>
<p>More info about Selenium Grid here : <a href="http://selenium-grid.seleniumhq.org/">http://selenium-grid.seleniumhq.org/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.testsautomation.com/2010/05/selenium-grid-whats-that/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LoadRunner stopping half of the users</title>
		<link>http://blog.testsautomation.com/2010/05/loadrunner-stopping-half-of-the-users/</link>
		<comments>http://blog.testsautomation.com/2010/05/loadrunner-stopping-half-of-the-users/#comments</comments>
		<pubDate>Sun, 09 May 2010 20:24:11 +0000</pubDate>
		<dc:creator>Waldemar</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.testsautomation.com/?p=579</guid>
		<description><![CDATA[Another issue that I&#8217;m facing from time to time is that LoadRunner stops 50% of running users without any notification, issue, error message etc. I&#8217;ve find out that it happens only when running with log level set to &#8216;always send a message&#8217;. Because of that, I suggest to run with log level set to &#8216;Send [...]]]></description>
			<content:encoded><![CDATA[<p>Another issue that I&#8217;m facing from time to time is that LoadRunner stops 50% of running users without any notification, issue, error message etc. I&#8217;ve find out that it happens only when running with log level set to &#8216;always send a message&#8217;. Because of that, I suggest to run with log level set to &#8216;Send message only when error occur&#8217;.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.testsautomation.com/2010/05/loadrunner-stopping-half-of-the-users/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LoadRunner not recording anything</title>
		<link>http://blog.testsautomation.com/2010/05/loadrunner-not-recording-anything/</link>
		<comments>http://blog.testsautomation.com/2010/05/loadrunner-not-recording-anything/#comments</comments>
		<pubDate>Sun, 09 May 2010 20:01:02 +0000</pubDate>
		<dc:creator>Waldemar</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.testsautomation.com/?p=577</guid>
		<description><![CDATA[Sometimes LoadRunner is not recording anything while browsing using IE. I have no idea why but the fastest solution is to restart whole LR. Maybe some of you have good explanation for that?]]></description>
			<content:encoded><![CDATA[<p>Sometimes LoadRunner is not recording anything while browsing using IE. I have no idea why but the fastest solution is to restart whole LR. Maybe some of you have good explanation for that?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.testsautomation.com/2010/05/loadrunner-not-recording-anything/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LoadRunner levels of integration with web pages</title>
		<link>http://blog.testsautomation.com/2010/03/loadrunner-levels-of-integration-with-web-pages/</link>
		<comments>http://blog.testsautomation.com/2010/03/loadrunner-levels-of-integration-with-web-pages/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 10:25:31 +0000</pubDate>
		<dc:creator>Waldemar</dc:creator>
				<category><![CDATA[LoadRunner]]></category>
		<category><![CDATA[performance]]></category>

		<guid isPermaLink="false">http://blog.testsautomation.com/?p=508</guid>
		<description><![CDATA[LoadRunner basically allows two approches for load testing your web application. Before going into details lets see how communication between user and web server looks like. As you can see between user and web server there are mainly 2 layers: Layer 1 is where user interacts with the browser by e.g. clicking a button, selecting [...]]]></description>
			<content:encoded><![CDATA[<p>LoadRunner basically allows two approches for load testing your web application. Before going into details lets see how communication between user and web server looks like.</p>
<p><img alt="" src="http://blog.testsautomation.com/wp-includes/images/user.png" class="alignnone" width="574" height="170" /></p>
<p>As you can see between user and web server there are mainly 2 layers: </p>
<ul>
<li><b>Layer 1</b> is where user interacts with the browser by e.g. clicking a button, selecting values from the list or submitting a form</li>
<li><b>Layer 2</b> is where browser communicates with web server which includes:
<ul>
<li>creating and sending HTTP requests to the web server based on user&#8217;s actions</li>
<li>receiving HTTP responses from the web server</li>
<li>rendering HTTP responses, forming an UI and displaying it to the user</li>
</ul>
</li>
</ul>
<p>Below I&#8217;m providing two scripts that do exactly the same thing but in slightly different way. The goal for each script is to search for a &#8220;linux&#8221; word using google search.</p>
<p>First, lets look at &#8220;Web (HTTP/HTML)&#8221; type of the script:</p>
<div class="codesnip-container" >
<div class="codesnip" style="font-family: monospace;">
<ol>
<li class="li1">
<div class="de1">Action<span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; web_url<span class="br0">&#40;</span><span class="st0">&quot;www.google.com&quot;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;URL=http://www.google.com/&quot;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;Resource=0&quot;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;RecContentType=text/html&quot;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;Referer=&quot;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;Snapshot=t1.inf&quot;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;Mode=HTML&quot;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LAST<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; lr_think_time<span class="br0">&#40;</span><span class="nu0">6</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; web_url<span class="br0">&#40;</span><span class="st0">&quot;search&quot;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;URL=http://www.google.co.uk/search?hl=en&amp;source=hp&amp;q=linux&amp;btnG=Google+Search&amp;meta=&amp;aq=f&amp;oq=&quot;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;Resource=0&quot;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;RecContentType=text/html&quot;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;Referer=http://www.google.co.uk/&quot;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;Snapshot=t2.inf&quot;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;Mode=HTML&quot;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LAST<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="nu0">0</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
</div>
<p>What happens here?</p>
<ul>
<li>In line 3 we are entering google.com web site</li>
<li>In line 14 we are sending HTTP request that browser would generate after searching for value &#8220;linux&#8221;</li>
</ul>
<p>Now, lets look at &#8220;Web (Click and Script)&#8221; type of the script:</p>
<div class="codesnip-container" >
<div class="codesnip" style="font-family: monospace;">
<ol>
<li class="li1">
<div class="de1">Action<span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; web_browser<span class="br0">&#40;</span><span class="st0">&quot;www.google.com&quot;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DESCRIPTION, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ACTION, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;Navigate=http://www.google.com/&quot;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LAST<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; web_edit_field<span class="br0">&#40;</span><span class="st0">&quot;q&quot;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;Snapshot=t1.inf&quot;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DESCRIPTION, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;Type=text&quot;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;Name=q&quot;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ACTION, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;SetValue=linux&quot;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LAST<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; web_button<span class="br0">&#40;</span><span class="st0">&quot;INPUT&quot;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;Snapshot=t2.inf&quot;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DESCRIPTION, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;Type=submit&quot;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;Tag=INPUT&quot;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;ID=&quot;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;Value=Google Search&quot;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ACTION, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;UserAction=Click&quot;</span>, </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LAST<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="nu0">0</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
</div>
<ul>
<li>In line 4 we are entering google.com web site</li>
<li>In line 10 we are typing value &#8220;linux&#8221; into the input field</li>
<li>In line 19 we are clicking &#8220;Google Search&#8221; button that will move us to the page with search results</li>
</ul>
<p>So what is the difference between these two scripts?</p>
<p>First script operates on much lover level comparing to second script. It deals with HTTP requests without taking care about what actions user actually performs. It doesn&#8217;t care how fast user&#8217;s browser renders and display the UI. It only checks how fast web server is able to response with correct message.</p>
<p>Second script operates only on UI level without taking care what happens underneath. Response time here includes not only time needed to send/receive HTTP traffic but also time needed to form/display UI to the user.</p>
<p>Basically second script approach is less error prone because you don&#8217;t have to deal with low level things like HTTP parameters. And You are replicating user&#8217;s actions in a natural way. </p>
<p>So if you need to choose, then I would recommend Web Click and Script type of the script. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.testsautomation.com/2010/03/loadrunner-levels-of-integration-with-web-pages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My blog posts in Chinese language</title>
		<link>http://blog.testsautomation.com/2009/11/my-blog-posts-in-chinese-language/</link>
		<comments>http://blog.testsautomation.com/2009/11/my-blog-posts-in-chinese-language/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 13:03:29 +0000</pubDate>
		<dc:creator>Waldemar</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.testsautomation.com/?p=499</guid>
		<description><![CDATA[Hi All Thanks to Zee Gao (高楼) some of my posts are now translated into Chinese language on 7dtest.com forum. Here are the links: Web Services performance using LoadRunner HTTP Vuser script &#8211; http://www.7dtest.com/bbs/thread-3483-1-1.html Don’t waste your time &#8211; http://www.7dtest.com/bbs/thread-3481-1-1.html Cleaning browser cache &#8211; http://www.7dtest.com/bbs/thread-3482-1-1.html HTTP POST or GET &#8211; http://www.7dtest.com/bbs/thread-3480-1-1.html Thanks Zee &#038; 7dtest.com [...]]]></description>
			<content:encoded><![CDATA[<p>Hi All</p>
<p>Thanks to Zee Gao (高楼) some of my posts are now translated into Chinese language on 7dtest.com forum. Here are the links:</p>
<p>Web Services performance using LoadRunner HTTP Vuser script &#8211; <a href="http://www.7dtest.com/bbs/thread-3483-1-1.html">http://www.7dtest.com/bbs/thread-3483-1-1.html</a></p>
<p>Don’t waste your time &#8211; <a href="http://www.7dtest.com/bbs/thread-3481-1-1.html" target="_blank">http://www.7dtest.com/bbs/thread-3481-1-1.html</a></p>
<p>Cleaning browser cache &#8211; <a href="http://www.7dtest.com/bbs/thread-3482-1-1.html" target="_blank">http://www.7dtest.com/bbs/thread-3482-1-1.html</a></p>
<p>HTTP POST or GET &#8211; <a href="http://www.7dtest.com/bbs/thread-3480-1-1.html" target="_blank">http://www.7dtest.com/bbs/thread-3480-1-1.html</a></p>
<p>Thanks Zee &#038; 7dtest.com users!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.testsautomation.com/2009/11/my-blog-posts-in-chinese-language/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automating web flow with Selenium and Eclipse IDE</title>
		<link>http://blog.testsautomation.com/2009/11/automating-web-flow-with-selenium-and-eclipse-ide/</link>
		<comments>http://blog.testsautomation.com/2009/11/automating-web-flow-with-selenium-and-eclipse-ide/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 02:53:19 +0000</pubDate>
		<dc:creator>Waldemar</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[selenium]]></category>

		<guid isPermaLink="false">http://blog.testsautomation.com/?p=435</guid>
		<description><![CDATA[Some of you may already know Selenium. Basically it&#8217;s free and open source tool for web application functional testing. It&#8217;s mainly know as replacement for HP&#8217;s QuickTestProfessional. I&#8217;ve recently discovered Selenium as very helpful for automating data setup for load testing. Here is a small description howto setup Eclipse and run Selenium script through it. [...]]]></description>
			<content:encoded><![CDATA[<p>Some of you may already know Selenium. Basically it&#8217;s free and open source tool for web application functional testing. It&#8217;s mainly know as replacement for HP&#8217;s QuickTestProfessional. I&#8217;ve recently discovered Selenium as very helpful for automating data setup for load testing.</p>
<p>Here is a small description howto setup Eclipse and run Selenium script through it.</p>
<p>1) Download Eclipse IDE from <a href="http://www.eclipse.org/downloads/" target="_blank"> http://www.eclipse.org/downloads/</a><br />
2) Download Selenium RC from <a href="http://seleniumhq.org/download/" target="_blank">http://seleniumhq.org/download/</a><br />
3) Download Junit from <a href="http://www.junit.org/" target="_blank">http://www.junit.org/</a><br />
4) Create new project in Eclipse:</p>
<ul>
<li>Go to File -> New -> Java Project</li>
<li>enter project name e.g. &#8220;Sample&#8221;</li>
<li>Click &#8220;Finish&#8221; button</li>
</ul>
<p>5) Import Selenium and JUnit packages into the project:</p>
<ul>
<li>In Package Explorer right click project &#8220;Sample&#8221; and select Properties</li>
<li>Go to &#8220;Java Build Path&#8221; then select &#8220;Libraries&#8221; tab</li>
<li>Click &#8220;Add External JARs&#8221; and import junit-4.7.jar and selenium-java-client-driver.jar</li>
</ul>
<p>Now our Eclipse environment should be ready. Next step is to prepare a test case in Selenium IDE. I&#8217;ve prepared small test that searches for &#8220;linux&#8221; word in google. To export test case as Java, in Selenium IDE go to Options -> Format -> Java (Junit) Selenium RC. As a result you should get something like this:</p>
<div class="codesnip-container" >
<div class="codesnip" style="font-family: monospace;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">package</span> com.<span class="me1">example</span>.<span class="me1">tests</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co2">import com.thoughtworks.selenium.*;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co2">import java.util.regex.Pattern;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">public</span> <span class="kw2">class</span> Untitled <span class="kw2">extends</span> SeleneseTestCase <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">public</span> <span class="kw4">void</span> setUp<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="kw2">throws</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AException+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">Exception</span></a> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; setUp<span class="br0">&#40;</span><span class="st0">&quot;http://change-this-to-the-site-you-are-testing/&quot;</span>, <span class="st0">&quot;*chrome&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">public</span> <span class="kw4">void</span> testUntitled<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="kw2">throws</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AException+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">Exception</span></a> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; selenium.<span class="me1">open</span><span class="br0">&#40;</span><span class="st0">&quot;/&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; selenium.<span class="me1">type</span><span class="br0">&#40;</span><span class="st0">&quot;q&quot;</span>, <span class="st0">&quot;linux&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; selenium.<span class="me1">click</span><span class="br0">&#40;</span><span class="st0">&quot;btnG&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
</div>
<p>Default Junit code generated by Selenium doesn&#8217;t use Selenium RC. Because of that I updated the code a little bit to connect to localhost Selenium RC on port 4444. Here is updated version:</p>
<div class="codesnip-container" >
<div class="codesnip" style="font-family: monospace;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">package</span> com.<span class="me1">example</span>.<span class="me1">tests</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co2">import com.thoughtworks.selenium.*;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co2">import java.util.regex.Pattern;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">public</span> <span class="kw2">class</span> Untitled <span class="kw2">extends</span> SeleneseTestCase <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">public</span> DefaultSelenium selenium;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">public</span> <span class="kw4">void</span> setUp<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="kw2">throws</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AException+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">Exception</span></a> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; selenium = <span class="kw2">new</span> DefaultSelenium<span class="br0">&#40;</span><span class="st0">&quot;localhost&quot;</span>, <span class="nu0">4444</span>, <span class="st0">&quot;*iexplore&quot;</span>, <span class="st0">&quot;http://www.google.com/&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; selenium.<span class="me1">start</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">public</span> <span class="kw4">void</span> testUntitled<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="kw2">throws</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AException+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">Exception</span></a> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; selenium.<span class="me1">open</span><span class="br0">&#40;</span><span class="st0">&quot;/&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; selenium.<span class="me1">type</span><span class="br0">&#40;</span><span class="st0">&quot;q&quot;</span>, <span class="st0">&quot;linux&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; selenium.<span class="me1">click</span><span class="br0">&#40;</span><span class="st0">&quot;btnG&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
</div>
<p>Now, lets add it in our Eclipse project:</p>
<ul>
<li>In Package Explorer right click on our &#8220;Sample&#8221; project and select New -> Class</li>
<li>Enter class name &#8220;Untitled&#8221; and package name &#8220;com.example.tests&#8221;</li>
<li>Click &#8220;Finish&#8221; button</li>
</ul>
<p>Before we run our test, we need to start Selenium RC. For that open command line and under selenium-remote-control-1.0.1/selenium-server-1.0.1 run command &#8220;java -jar selenium-server.jar&#8221;. It will run Selenium RC server on default port 4444.</p>
<p>Now, to start the test just select Run -> Run As -> Junit test. It should open two IE browsers. One for Selenium RC and second with Google results for &#8220;linux&#8221; word. </p>
<p>Because we run Java code, it&#8217;s only up to us how we want to run the test. Below is our example update to search for &#8220;linux&#8221; word in a loop 5 times with 5 seconds intervals.</p>
<div class="codesnip-container" >
<div class="codesnip" style="font-family: monospace;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">package</span> com.<span class="me1">example</span>.<span class="me1">tests</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co2">import com.thoughtworks.selenium.*;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co2">import java.util.regex.Pattern;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">public</span> <span class="kw2">class</span> Untitled <span class="kw2">extends</span> SeleneseTestCase <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">public</span> DefaultSelenium selenium;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">public</span> <span class="kw4">void</span> setUp<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="kw2">throws</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AException+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">Exception</span></a> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; selenium = <span class="kw2">new</span> DefaultSelenium<span class="br0">&#40;</span><span class="st0">&quot;localhost&quot;</span>, <span class="nu0">4444</span>, <span class="st0">&quot;*iexplore&quot;</span>, <span class="st0">&quot;http://www.google.com/&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; selenium.<span class="me1">start</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">public</span> <span class="kw4">void</span> testUntitled<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="kw2">throws</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AException+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">Exception</span></a> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span><span class="br0">&#40;</span><span class="kw4">int</span> i = <span class="nu0">0</span>; i &lt; <span class="nu0">5</span>; i++<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; selenium.<span class="me1">open</span><span class="br0">&#40;</span><span class="st0">&quot;/&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; selenium.<span class="me1">type</span><span class="br0">&#40;</span><span class="st0">&quot;q&quot;</span>, <span class="st0">&quot;linux&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; selenium.<span class="me1">click</span><span class="br0">&#40;</span><span class="st0">&quot;btnG&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; selenium.<span class="me1">waitForPageToLoad</span><span class="br0">&#40;</span><span class="st0">&quot;10000&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AThread+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">Thread</span></a>.<span class="me1">sleep</span><span class="br0">&#40;</span><span class="nu0">5000</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.testsautomation.com/2009/11/automating-web-flow-with-selenium-and-eclipse-ide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Average transaction response time vs Granularity</title>
		<link>http://blog.testsautomation.com/2009/11/average-transaction-response-time-vs-granularity/</link>
		<comments>http://blog.testsautomation.com/2009/11/average-transaction-response-time-vs-granularity/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 09:56:00 +0000</pubDate>
		<dc:creator>Waldemar</dc:creator>
				<category><![CDATA[LoadRunner]]></category>
		<category><![CDATA[analysis]]></category>
		<category><![CDATA[granularity]]></category>
		<category><![CDATA[response time]]></category>

		<guid isPermaLink="false">http://blog.testsautomation.com/?p=423</guid>
		<description><![CDATA[Correct me if I&#8217;m from but I always thought that for particular transaction there should be only ONE average response time. But it looks like it&#8217;s not the case in LR Analysis. I recently discovered that by changing granularity on average transaction response time graph, Analysis also recalculates average times under the graph. In my [...]]]></description>
			<content:encoded><![CDATA[<p>Correct me if I&#8217;m from but I always thought that for particular transaction there should be only ONE average response time. But it looks like it&#8217;s not the case in LR Analysis. </p>
<p>I recently discovered that by changing granularity on average transaction response time graph, Analysis also recalculates average times under the graph. In my understanding granularity is responsible only for making the graph easier to read and thats all it should do. But by changing granularity we are also changing how many points LR actually counts which results in different average response times for different granularity.</p>
<p>So shame that this is not mentioned in the manual. Of course according to HP support it is mentioned there and this is a feature, not a bug <img src='http://blog.testsautomation.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>So my tip for today: be careful when looking at response times on average transaction response graph. Use &#8220;Summary&#8221; page if you want to omit any mistakes.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.testsautomation.com/2009/11/average-transaction-response-time-vs-granularity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

