<?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>Xceptance Blog &#187; Rene</title>
	<atom:link href="http://blog.xceptance.com/author/rene/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.xceptance.com</link>
	<description>Passionate Testing</description>
	<lastBuildDate>Sat, 21 Jan 2012 11:29:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Availability of XLT 4.1.7</title>
		<link>http://blog.xceptance.com/2012/01/21/availability-of-xlt-4-1-7/</link>
		<comments>http://blog.xceptance.com/2012/01/21/availability-of-xlt-4-1-7/#comments</comments>
		<pubDate>Sat, 21 Jan 2012 11:29:54 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://blog.xceptance.com/?p=718</guid>
		<description><![CDATA[Xceptance is announcing the availability of Xceptance LoadTest (XLT) version 4.1.7. This is an update release and includes smaller improvements and defect fixes. The update is recommended for everyone. Improvements Script Developer: Breakpoints can be set at a module call now. They have been moved to the first command of the module before. Runtime Engine: [...]]]></description>
			<content:encoded><![CDATA[<p>Xceptance is announcing the availability of Xceptance LoadTest (XLT)  version 4.1.7. This is an update release and includes smaller  improvements and defect fixes. The update is recommended for everyone.</p>
<h3>Improvements</h3>
<ul>
<li> Script Developer: Breakpoints can be set at a module call now. They have been moved to the first command of the module before.</li>
<li> Runtime Engine: WebDriver has been updated to version 2.16.1.</li>
<li> Script Developer: Now it supports new HTML 5 input elements, such as email and date, during record and playback.</li>
</ul>
<h3>Fixes</h3>
<ul>
<li> Runtime Engine: When running multiple test cases at once from <em>Eclipse</em> or with <em>Ant</em>,  the values measured for each test case were always stored in the  timers.csv file of the first test case. This was a development mode  issue only.</li>
<li> Master controller: Agent controller urls are now checked to ensure that they are unique.</li>
<li> Script Developer: The base url text box was not correctly updated when the url was changed via the Edit Dialog before.</li>
<li> Script Developer: WaitFor commands included a small pause before  checking the condition even though the condition was already fulfilled.  This pause has been removed.</li>
<li> Script Developer: Using a mouse wheel for scrolling now works in Firefox 9.</li>
<li> Runtime Engine: When getting the value of an option element, the <em>HtmlUnitDriver</em> does not fall back to the option’s text content in case the option does  not specify a value attribute. This behavior is mandatory according to  the HTML specification. Fixed in the <em>XltDriver</em> until a fix is provided by the underlying project.</li>
<li> Runtime Engine: For input elements of type <em>hidden</em>, HtmlUnit’s API method <em>isDisplayed()</em> returned <em>true</em> although hidden inputs are never visible to the user.</li>
</ul>
<p>All details and the full download can be found here: <a href="https://lab.xceptance.de/releases/xlt/4.1.7/">https://lab.xceptance.de/releases/xlt/4.1.7/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2012/01/21/availability-of-xlt-4-1-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XLT 4.1.6 is available</title>
		<link>http://blog.xceptance.com/2011/12/10/xlt-4-1-6-is-available/</link>
		<comments>http://blog.xceptance.com/2011/12/10/xlt-4-1-6-is-available/#comments</comments>
		<pubDate>Sat, 10 Dec 2011 18:00:30 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[XLT]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://blog.xceptance.com/?p=715</guid>
		<description><![CDATA[We just released Xceptance LoadTest version 4.1.6. This upgrade release delivers small bugfixes and support for Firefox 9. Additionally you can specify an individual temporary download and upload directory for master and agents now. For the first time, you  also get an XLT-AMI for the new US-West Oregon data center of Amazon. All details and [...]]]></description>
			<content:encoded><![CDATA[<p>We just released Xceptance LoadTest version 4.1.6. This upgrade release delivers small bugfixes and support for Firefox 9. Additionally you can specify an individual temporary download and upload directory for master and agents now. For the first time, you  also get an XLT-AMI for the new US-West Oregon data center of Amazon.</p>
<p>All details and the full download can be found here: <a href="https://lab.xceptance.de/releases/xlt/4.1.6/">https://lab.xceptance.de/releases/xlt/4.1.6/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2011/12/10/xlt-4-1-6-is-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Read that: Web Application Security Guidelines</title>
		<link>http://blog.xceptance.com/2011/12/07/read-that-web-application-security-guidelines/</link>
		<comments>http://blog.xceptance.com/2011/12/07/read-that-web-application-security-guidelines/#comments</comments>
		<pubDate>Wed, 07 Dec 2011 11:44:53 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[owasp]]></category>
		<category><![CDATA[programmierung]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://blog.xceptance.com/?p=712</guid>
		<description><![CDATA[This is a nice summary of web application security related technologies, processes, and development patterns: Design Guidelines for Secure Web Applications. A little .NET heavy, but most stuff is generally applicable. If you read and like the above information, you should not miss the OWASP web security guidelines. This is a must read for every [...]]]></description>
			<content:encoded><![CDATA[<p>This is a nice summary of web application security related technologies, processes, and development patterns: <a href="http://msdn.microsoft.com/en-us/library/ff648647.aspx">Design Guidelines for Secure Web Applications</a>. A little .NET heavy, but most stuff is generally applicable.</p>
<p>If you read and like the above information, you should not miss the OWASP web security guidelines. This is a must read for every tester and developer. <a href="https://www.owasp.org/index.php/Category:OWASP_Guide_Project">OWASP Guide Project</a>:</p>
<blockquote><p>Web application security is an essential component of any successful project, whether open source PHP applications, web services such as straight through processing, or proprietary business web sites. Hosters (rightly) shun insecure code, and users shun insecure services that lead to fraud. The aim of this Development Guide is to allow businesses, developers, designers and solution architects to produce secure web applications. If done from the earliest stages, secure applications cost about the same to develop as insecure applications, but are far more cost effective in the long run.</p>
<p>Unlike other forms of security (such as firewalls and secure lockdowns), web applications have the ability to make a skilled attacker rich, or make the life of a victim a complete misery. At this highest level of the OSI software map, traditional firewalls and other controls simply do not help. The application itself must be self-defending. The Development Guide can help you get there. The Development Guide has been written to cover all forms of web application security issues, from old hoary chestnuts such as SQL Injection, through modern concerns such as AJAX, phishing, credit card handling, session fixation, cross-site request forgeries, compliance, and privacy issues&#8230;</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2011/12/07/read-that-web-application-security-guidelines/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Review Of Cross-Browser Testing Tools</title>
		<link>http://blog.xceptance.com/2011/08/07/review-of-cross-browser-testing-tools/</link>
		<comments>http://blog.xceptance.com/2011/08/07/review-of-cross-browser-testing-tools/#comments</comments>
		<pubDate>Sun, 07 Aug 2011 15:37:54 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[XLT]]></category>

		<guid isPermaLink="false">http://blog.xceptance.com/?p=651</guid>
		<description><![CDATA[Smashing Magazine lists a couple of free and commercial tools to cover cross-browser testing: Good news: very powerful free testing tools are available for Web designers today. Some are more user-friendly than others, and some have significantly better user interfaces. Don’t expect much (if any) support with these tools. But if you’d rather not spend [...]]]></description>
			<content:encoded><![CDATA[<p>Smashing Magazine lists a couple of free and commercial tools to cover cross-browser testing:</p>
<blockquote><p>Good news: very powerful free testing tools are available for Web  designers today. Some are more user-friendly than others, and some have  significantly better user interfaces. Don’t expect much (if any) support  with these tools. But if you’d rather not spend extra money on testing,  some great options are here as well.</p></blockquote>
<p><a href="http://www.smashingmagazine.com/2011/08/07/a-dozen-cross-browser-testing-tools/">Read the full article&#8230;</a></p>
<p>By the way, our own tool Xceptance LoadTest (XLT) offers a way to run cross-browser functional tests. XLT leverages WebDriver, a multi-browser API for automation. WebDriver does not support all browser and does not equally support all browser well, but we tried to iron out as much as possible. On top of it, you can use the XLT Script Developer to easily create automation scripts and run them either using our own scripting language or export them to Java to directly run them on the WebDriver-API.</p>
<p>You can download Xceptance LoadTest for free with no strings attached from our web site: <a href="http://www.xceptance-loadtest.com/">www.xceptance-loadtest.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2011/08/07/review-of-cross-browser-testing-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox 5.0 support</title>
		<link>http://blog.xceptance.com/2011/07/07/firefox-5-0-support/</link>
		<comments>http://blog.xceptance.com/2011/07/07/firefox-5-0-support/#comments</comments>
		<pubDate>Thu, 07 Jul 2011 16:58:37 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[XLT]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=643</guid>
		<description><![CDATA[If you are looking for Firefox 5.0 support when using XLT script developer, you will get it with version 4.1 of XLT. This version is available here.]]></description>
			<content:encoded><![CDATA[<p>If you are looking for Firefox 5.0 support when using XLT script developer, you will get it with version 4.1 of XLT. This version is available <a href="https://lab.xceptance.de/releases/xlt/4.1.0/">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2011/07/07/firefox-5-0-support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Get the right load mix out of a few numbers</title>
		<link>http://blog.xceptance.com/2011/06/07/get-the-right-load-mix-out-of-a-few-numbers/</link>
		<comments>http://blog.xceptance.com/2011/06/07/get-the-right-load-mix-out-of-a-few-numbers/#comments</comments>
		<pubDate>Tue, 07 Jun 2011 11:49:33 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[XLT]]></category>
		<category><![CDATA[concurrent users]]></category>
		<category><![CDATA[load test]]></category>
		<category><![CDATA[performance test]]></category>
		<category><![CDATA[SaaS]]></category>
		<category><![CDATA[user mix]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=639</guid>
		<description><![CDATA[When testing ecommerce applications on SaaS environments, you often do not get enough numbers from clients because they simply do not know these numbers or only a few. One reason for that is, that the client simply have not had any only presence before. Often the client also does not have detailed numbers, because the [...]]]></description>
			<content:encoded><![CDATA[<p>When testing ecommerce applications on SaaS environments, you often do not get enough numbers from clients because they simply do not know these numbers or only a few. One reason for that is, that the client simply have not had any only presence before. Often the client also does not have detailed numbers, because the previous hoster or the IT department just holds them back or simply cannot get to these numbers.</p>
<p>So what to do, when you do not know every detail about the current or future load pattern? We are describing one approach below that was very successful so far and always yielded satisfying results.</p>
<h3><strong>What we need</strong></h3>
<ul>
<li>Visits per peak hour (example 10k)</li>
<li>Page views per peak hour (example 100k)</li>
<li>Orders per peak hour (example 200 orders)</li>
<li>Optionally we can use the conversion rate to get from visits to orders or vice versa.</li>
<li>Optionally we can take searches, &#8220;add to cart&#8221; operations, user registrations, and so on into account.</li>
</ul>
<p>The mentioned scenarios are typical ecommerce scenarios and look like that. We will not talk about smaller scenarios such as address editing for a registered user.</p>
<ul>
<li>TSingleClickVisit: Enters the store only, does not move beyond the start page</li>
<li>TBrowsing: TVisitor plus category and product browsing</li>
<li>TSearch: TVisitor plus keyword search plus browsing of the result</li>
<li>TAdd2Cart: TBrowsing plus add to cart operations</li>
<li>TGuestCheckout: TAdd2Cart plus checkout without an order placement (anonymous user)</li>
<li>TGuestOrder: TAdd2Cart plus full checkout (anonymous user)</li>
<li>TRegisteredCheckout: TAdd2Cart plus checkout without an order placement (registered customer)</li>
<li>TRegisteredOrder: TAdd2Cart plus full checkout (registered customer)</li>
<li>TRegistration: Account creation</li>
</ul>
<h3>What we assume</h3>
<p>Ecommerce sites follow similar patterns and with a few       exceptions, such as special promotions, certain behavioral       patterns are nearly identical. So for instance, about 50% of all       checkouts are stopped before the order is placed. About 20 to 50%       of all created carts aren&#8217;t checked out at all.</p>
<h3>What we calculate</h3>
<p>Based on these assumptions, we put together a fairly simple but       sufficiently accurate load mix. Of course, we can also analyze the       current log files and try to come up with something more precise,       but that will be a snapshot only. Traffic is very volatile and so       we should be very generous when setting up this mix.</p>
<p>Since we do not take any daily averages as base but the peaks,       we will have a pretty comfortable buffer for our daily ecommerce       life anyway.</p>
<h4><strong>Bottom-Up</strong></h4>
<p>Let&#8217;s say, 200 orders are set as goal. Splitting them 50/50  between registered and anonymous users, we get 100 visits of each       type. All numbers are per hour of course.</p>
<ul>
<li> <em>TGuestOrder = 100</em></li>
<li><em> TRegisteredOrder = 100</em></li>
</ul>
<p>As a next step, we take our 50% checkout abandonment rate into       account. We have 200 checkouts per hour that are stopped and       200 that run through and turn up as orders (as counted       previously). So we need to add 200 visits. And because these       visitors can either run with their preset account or without, we       split them up in 100 guest and 100 registered checkout       attempts.</p>
<ul>
<li><em>TGuestCheckout = 100</em></li>
<li><em>TRegisteredCheckout = 100<br />
</em></li>
<li><em> </em>TGuestOrder = 100</li>
<li> TRegisteredOrder = 100</li>
</ul>
<p>This gives us 400 visits per hour that go into the checkout. We       now assume a low cart to checkout conversion rate, about 20% for       instance, and so we take 400 checkout visits * 5 and get 2,000       visits that involve cart usage. Since we already have 20%       converted into checkouts, we have 2,000 minus 400 visits that use the cart.</p>
<ul>
<li><em>TAdd2Cart = 1,600</em></li>
<li>TGuestCheckout = 100</li>
<li>TRegisteredCheckout = 100</li>
<li> TGuestOrder = 100</li>
<li> TRegisteredOrder = 100</li>
</ul>
<p>We also know that many users do not continue after hitting the       home page or any landing page. Let&#8217;s add some of these users now.</p>
<ul>
<li><em>TSingleClickVisitor = 1,000</em></li>
<li>TAdd2Cart = 1,600</li>
<li>TGuestCheckout = 100</li>
<li>TRegisteredCheckout = 100</li>
<li> TGuestOrder = 100</li>
<li> TRegisteredOrder = 100</li>
</ul>
<p>But wait, what are we missing? Well, we have not registered any new     accounts yet. Didn&#8217;t we? We did, because the registered checkout     creates accounts if required and reuses them several times. But to     get a more substantial customer growth, we simply add 200 visits     that run registrations:</p>
<ul>
<li><em>TRegistration = 200</em></li>
<li>TSingleClickVisitor = 1,000</li>
<li>TAdd2Cart = 1,600</li>
<li>TGuestCheckout = 100</li>
<li>TRegisteredCheckout = 100</li>
<li> TGuestOrder = 100</li>
<li> TRegisteredOrder = 100</li>
</ul>
<p>What is left to do? Well, we do not have any &#8220;I am just looking       around&#8221;-visitors yet. We know that our total visit count is 10,000       and we already assigned 3,200 of these to cart, checkout, and       registration, so we have 6,800 visits left we can now use for       something else. Depending on the shop type (large store, small       store etc), people tend to use search more or less. To put enough       stress on search and refinements, we simply assume 50% of all       people like to search. Thus the missing 6,800 visits will be 3,400       catalog browser visits and 3,400 visits with usage of search       before browsing the search result.</p>
<p>The total mix is:</p>
<ul>
<li>TBrowsing = 3,400</li>
<li>TSearch = 3,400</li>
<li>TRegistration = 200</li>
<li>TSingleClickVisitor = 1000</li>
<li>TAdd2Cart = 1,600</li>
<li>TGuestCheckout = 100</li>
<li>TRegisteredCheckout = 100</li>
<li> TGuestOrder = 100</li>
<li> TRegisteredOrder = 100</li>
</ul>
<p>Wait&#8230; where are my concurrent users? This is simple: &#8220;concurrent       users&#8221; is an inaccurate way of describing traffic, so we have not       used that number yet. Why is that?</p>
<p>To get to the bottom of that, we simply check how long a visit       takes. Depending on the shop, an average visit might take 2 to 4       minutes. Successfully shopping might take 15 minutes. If we expect       about 10 page views per visit and a page view takes 1 second to       load and 20 seconds to read it (already a really really high       number for an average), a visit would take 10 * 1 second + 9 * 20       seconds = 190 seconds.</p>
<p>Let&#8217;s go with the 190 seconds for a visit on average. If we just       could serve one visitor at a time, we could serve 60 minutes (3600       seconds) / 190 seconds per visits = 19 visitors per hour. But       because we would like to serve 10,000 per hour, we have to deal       with 10,000 / 19 = 526 visitors at the same time. This is the       famous concurrent user number.</p>
<p>If we now double the think time, we have 1,052 concurrent       users/visitors. If we cut it down to 1 second think time, we will       get a visit length of 19 seconds and therefore 10,000 visits /       (3600 seconds / 19) = 53 concurrent visitors.</p>
<p>So we already have three different &#8220;concurrent user&#8221; numbers and are still simulating the same traffic. This shows that the number of       concurrent users is a pretty questionable way of describing       traffic.</p>
<p>It does not matter which number we take, because most of the time       the servers will see the same traffic. Because we run against a       SaaS environment that serves a multiple of other customers at the       same time and is sized to serve the peak traffic for all customers       at the same time, we have plenty of comfortable room around us.       This permits us to run with 53 concurrent visitors for most of the       testing. This will save us client hardware resources for the load       generation. e.g. saves us money. We are basically only       interested in the runtime of requests and not if the environment       can handle that, because it can.</p>
<p>The goal of this test is to demonstrate that the implementation on the       SaaS platform is efficient, not that the SaaS platform itself is fast       and stable, because this is guaranteed by design and contract.       Testing this would require way more traffic and generate huge       costs, because the environment would suddenly no longer be a       shared one but exclusively used for this testing purpose.</p>
<p>When finalizing the entire test and all tests turned out good, we are going to turn up the concurrent user       count to 530 users and compare the result with the previous       measurements. Just to satisfy the traditional test expectations.</p>
<h3>Does that work for you?</h3>
<p>Hope that gives you an idea how to come up with a nice user mix for testing without having too much data in the first place. Comments welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2011/06/07/get-the-right-load-mix-out-of-a-few-numbers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XLT 4.0.5 Amazon-EC2 AMIs available</title>
		<link>http://blog.xceptance.com/2011/05/14/xlt-4-0-5-amazon-ec2-amis-available-2/</link>
		<comments>http://blog.xceptance.com/2011/05/14/xlt-4-0-5-amazon-ec2-amis-available-2/#comments</comments>
		<pubDate>Sat, 14 May 2011 03:54:10 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[XLT]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[AMI]]></category>
		<category><![CDATA[EC2]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=633</guid>
		<description><![CDATA[These are the AMI-IDs of the XLT 4.0.5 images for Amazon-EC2. EU-West: ami-772b1d03 US-East: ami-52649b3b US-West: ami-29bfec6c Images can be used free of charge. The EU image is brand new and features Ubuntu 11.04. It has also a smaller disk of only 8GB compared to 15GB before. This helps to make it eligible for a free [...]]]></description>
			<content:encoded><![CDATA[<p>These are the AMI-IDs of the XLT 4.0.5 images for Amazon-EC2.</p>
<ul>
<li>EU-West: ami-772b1d03</li>
<li>US-East: ami-52649b3b</li>
<li>US-West: ami-29bfec6c</li>
</ul>
<p>Images can be used free of charge. The EU image is brand new and features Ubuntu 11.04. It has also a smaller disk of only 8GB compared to 15GB before. This helps to make it eligible for a free tier micro instance. Of course this instance type is not recommended for load testing, but you can easily test deployment and remote execution of XLT before you move up to more expensive setups.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2011/05/14/xlt-4-0-5-amazon-ec2-amis-available-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spurious wakeup &#8211; the rare event</title>
		<link>http://blog.xceptance.com/2011/05/06/spurious-wakeup-the-rare-event/</link>
		<comments>http://blog.xceptance.com/2011/05/06/spurious-wakeup-the-rare-event/#comments</comments>
		<pubDate>Fri, 06 May 2011 00:12:08 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Object]]></category>
		<category><![CDATA[threads]]></category>
		<category><![CDATA[wait]]></category>
		<category><![CDATA[wakeup]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=628</guid>
		<description><![CDATA[After hunting for quite some for a strange application behavior, I finally found the reason. The Problem The Java application was behaving strangely in 4 out of 10 runs. It did not process all data available and assumed that the data input already ended. The application features several producer-consumer patterns, where one thread offers preprocessed data [...]]]></description>
			<content:encoded><![CDATA[<p>After hunting for quite some for a strange application behavior, I finally found the reason.</p>
<h3>The Problem</h3>
<p>The Java application was behaving strangely in 4 out of 10 runs. It did not process all data available and assumed that the data input already ended. The application features several producer-consumer patterns, where one thread offers preprocessed data to the next one, passing it into a buffer where the next thread reads it from.</p>
<p>The consumer or producer fall into a wait state in case no data is available or the buffer is full. In case of a state change, the active threads notifies all waiting threads about the new data or the fact that all data is consumed.</p>
<p>On 2-core and 8-core machines, the application was running fine but when we moved it to 24-cores, it suddenly started to act in an unpredictable manner.</p>
<h3>The Cause</h3>
<p>After a lot of debugging I found out that threads wake up without having been notified by their partner thread. In this case the consumer was woken up despite the fact that data was unavailable aka the producer has not delivered and therefore not notified anyone. But the consumer was awake&#8230;</p>
<p>The debugging nightmare finally revealed a rare behavior of any POSIX based application. This is the quote from the JDK6 doc:</p>
<blockquote><p>A thread can also wake up without being notified, interrupted, or  timing out, a so-called <em>spurious wakeup</em>.  While this will rarely  occur in practice, applications must guard against it by testing for  the condition that should have caused the thread to be awakened, and  continuing to wait if the condition is not satisfied.  In other words,  waits should always occur in loops.</p></blockquote>
<h3>The Verdict</h3>
<p>So never trust your notification chains. Threads might wake up even though nobody directly notified it. Additionally you should never exclude the possibility that the move from a small box to a big box does not influence the application behavior. More cores mean more trouble.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2011/05/06/spurious-wakeup-the-rare-event/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XLT 4.0.5 is out</title>
		<link>http://blog.xceptance.com/2011/05/05/xlt-4-0-5-is-out/</link>
		<comments>http://blog.xceptance.com/2011/05/05/xlt-4-0-5-is-out/#comments</comments>
		<pubDate>Thu, 05 May 2011 01:25:42 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[XLT]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[script developer]]></category>
		<category><![CDATA[test automation]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=619</guid>
		<description><![CDATA[We just released Xceptance LoadTest 4.0.5. It is a minor update and recommended for everyone. But you might have special interests if you use the Script Developer heavily. Besides a few defect fixes, release 4.0.5 delivers four great improvements to speed up test case creation and maintenance with Script Developer and make your work more [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="lightbox" href="/wp-content/uploads/2011/05/script-developer-evaluate-now.png"><img class="alignright size-medium wp-image-620" title="New Script Developer Evaluate Now" src="/wp-content/uploads/2011/05/script-developer-evaluate-now-300x185.png" alt="" width="300" height="185" /></a>We just released Xceptance LoadTest 4.0.5. It is a minor update and recommended for everyone. But you might have special interests if you use the Script Developer heavily.</p>
<p>Besides a few defect fixes, release 4.0.5 delivers four great improvements to speed up test case creation and maintenance with Script Developer and make your work more productive.</p>
<ul>
<li>The XLT Script Developer runs on Firefox 4 and 3 now.</li>
<li>Test variables are now resolved recursively, so you can use variables within resolved content.</li>
<li>There is no need to open modules anymore if you want to edit a line or two of it. Also enabling/disabling of module code can be done easily from the main test case. This saves time and aids script maintenance.</li>
<li>During script debugging and script execution, you can now evaluate assertions instantly to see whether or not your verification expression will match.</li>
</ul>
<p>The full set of <a href="https://lab.xceptance.de/releases/xlt/4.0.5/releasenotes.html">release notes</a> can be viewed directly <a href="https://lab.xceptance.de/releases/xlt/4.0.5/">in the release area</a>. You will also find documentation and the download link there. As usual, th</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2011/05/05/xlt-4-0-5-is-out/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nice reading: CSS3 vs. CSS</title>
		<link>http://blog.xceptance.com/2011/04/21/nice-reading-css3-vs-css/</link>
		<comments>http://blog.xceptance.com/2011/04/21/nice-reading-css3-vs-css/#comments</comments>
		<pubDate>Thu, 21 Apr 2011 14:06:23 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[speed]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=613</guid>
		<description><![CDATA[Nice article about the advantages of CSS3 in terms of coding as well as download speed: CSS3 vs. CSS: A Speed Benchmark. I believe in the power, speed and “update-ability” of CSS3. Not having to load background images as structural enhancements (such as PNGs for rounded corners and gradients) can save time in production (i.e. [...]]]></description>
			<content:encoded><![CDATA[<p>Nice article about the advantages of CSS3 in terms of coding as well as download speed: <a href="http://www.smashingmagazine.com/2011/04/21/css3-vs-css-a-speed-benchmark/">CSS3 vs. CSS: A Speed Benchmark</a>.</p>
<blockquote><p>I believe in the power, speed and “update-ability” of CSS3. Not having to load background images as structural enhancements (such as PNGs for rounded corners and gradients) can save time in production (i.e. billable hours) and loading (i.e. page speed). At our company, we’ve happily been using CSS3 on client websites for over a year now, and I find that implementing many of these properties right now is the most sensible way to build websites.</p>
<p>Until today, all of that was based on an assumption: that I can produce a pixel-perfect Web page with CSS3 quicker than I can with older image-based CSS methods, and that the CSS3 page will load faster, with a smaller overall file size and fewer HTTP requests. As a single use case experiment, I decided to design and code a Web page and add visual enhancements twice: once with CSS3, and a second time using background images sliced directly from the PSD. I timed myself each round that I added the enhancements, and when finished, I used Pingdom to measure the loading times.</p>
<p><a href="http://www.smashingmagazine.com/2011/04/21/css3-vs-css-a-speed-benchmark/">More&#8230;</a></p></blockquote>
<p>Enjoy reading.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2011/04/21/nice-reading-css3-vs-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How does Garbage Collection work?</title>
		<link>http://blog.xceptance.com/2011/04/11/how-does-garbage-collection-work/</link>
		<comments>http://blog.xceptance.com/2011/04/11/how-does-garbage-collection-work/#comments</comments>
		<pubDate>Mon, 11 Apr 2011 11:46:37 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[garbage collection]]></category>
		<category><![CDATA[gc]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=611</guid>
		<description><![CDATA[Just found two nice blog entries by Chaotic Java which explain nicely how Java Garbage Collection works. Might be still too much if you have never dealt with the topic before, but good reading for the others. Parallel and concurrent garbage collectors How does garbage collection work? Enjoy reading.]]></description>
			<content:encoded><![CDATA[<p>Just found two nice blog entries by <em>Chaotic Java</em> which explain nicely how Java Garbage Collection works. Might be still too much if you have never dealt with the topic before, but good reading for the others.</p>
<ul>
<li><a title="Permanent Link to Parallel and concurrent garbage collectors" href="http://chaoticjava.com/posts/parallel-and-concurrent-garbage-collectors/">Parallel and concurrent garbage collectors</a></li>
<li><a title="Permanent Link to How does garbage collection work?" href="http://chaoticjava.com/posts/how-does-garbage-collection-work/">How does garbage collection work?</a></li>
</ul>
<p>Enjoy reading.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2011/04/11/how-does-garbage-collection-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Our new company logo</title>
		<link>http://blog.xceptance.com/2011/03/18/our-new-company-logo/</link>
		<comments>http://blog.xceptance.com/2011/03/18/our-new-company-logo/#comments</comments>
		<pubDate>Fri, 18 Mar 2011 14:48:48 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[logo]]></category>
		<category><![CDATA[xceptance]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=581</guid>
		<description><![CDATA[Today we updated our web site with the new logo of our company and product. We hope you like it. It is modern, unique, and resembles our company colors. The font is distinct and the X is pretty eye-catching, because it has been carefully designed and crafted to express the uniqueness of Xceptance and it&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-582  alignleft" title="The new Xceptance Logo" src="/wp-content/uploads/2011/03/xceptance-title-stripe-logo_neu.png" alt="The new Xceptance Company Logo" width="265" height="50" />Today we updated our web site with the new logo of our company and product. We hope you like it.</p>
<p>It is modern, unique, and resembles our company colors. The font is distinct and the X is pretty eye-catching, because it has been carefully designed and crafted to express the uniqueness of Xceptance and it&#8217;s product and service offers.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2011/03/18/our-new-company-logo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XLT 4.0.4 is available</title>
		<link>http://blog.xceptance.com/2011/03/16/xlt-4-0-4-is-available/</link>
		<comments>http://blog.xceptance.com/2011/03/16/xlt-4-0-4-is-available/#comments</comments>
		<pubDate>Wed, 16 Mar 2011 17:02:43 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[XLT]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=578</guid>
		<description><![CDATA[Today we released update 4 of XLT 4.0. You will find all the details about it at the usual place: https://lab.xceptance.de/releases/xlt/4.0.4/. Check out the release notes too. This release addresses minor script developer defects. As always, updates are free for all customers and all people using XLT despite the license.]]></description>
			<content:encoded><![CDATA[<p>Today we released update 4 of XLT 4.0. You will find all the details about it at the usual place: <a href="https://lab.xceptance.de/releases/xlt/4.0.4/">https://lab.xceptance.de/releases/xlt/4.0.4/</a>. Check out the <a href="https://lab.xceptance.de/releases/xlt/4.0.4/releasenotes.html">release notes</a> too. This release addresses minor script developer defects. </p>
<p>As always, updates are free for all customers and all people using XLT despite the license.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2011/03/16/xlt-4-0-4-is-available/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Argument about the Curly Brackets</title>
		<link>http://blog.xceptance.com/2011/03/03/the-argument-about-the-curly-brackets/</link>
		<comments>http://blog.xceptance.com/2011/03/03/the-argument-about-the-curly-brackets/#comments</comments>
		<pubDate>Thu, 03 Mar 2011 07:00:57 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[Quotations]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[cartoon]]></category>
		<category><![CDATA[code style]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=570</guid>
		<description><![CDATA[When you talk about code styleguides, you often talk about basic formatting. This means you probably already fought the holy war over the curly brackets {} and where to put them. Of course, the next line is the only right place. A curly bracket is a hermit and does not like to be put next [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="lightbox" href="/wp-content/uploads/2011/03/next-line.jpg"><img class="alignleft size-medium wp-image-571" title="Curly brackets go..." src="/wp-content/uploads/2011/03/next-line-211x300.jpg" alt="" width="211" height="300" /></a>When you talk about code styleguides, you often talk about basic formatting. This means you probably already fought the holy war over the curly brackets <em>{}</em> and where to put them.</p>
<p>Of course, the next line is the only right place. A curly bracket is a hermit and does not like to be put next to any other character&#8230;  <img src='http://blog.xceptance.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>What is your opinion?</p>
<p>Cartoon courtesy of <a href="http://geekandpoke.typepad.com/geekandpoke/2011/02/simply-explained.html">Geek and Poke</a> under CC-BY-ND-2.0</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2011/03/03/the-argument-about-the-curly-brackets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XLT 4.0.2 released</title>
		<link>http://blog.xceptance.com/2011/03/02/xlt-4-0-2-released/</link>
		<comments>http://blog.xceptance.com/2011/03/02/xlt-4-0-2-released/#comments</comments>
		<pubDate>Wed, 02 Mar 2011 17:09:56 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[XLT]]></category>
		<category><![CDATA[loadtest]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=568</guid>
		<description><![CDATA[Today we released a minor update of XLT 4.0. You will find all the details about it at the usual place: https://lab.xceptance.de/releases/xlt/4.0.2/. Check out the release notes too. We mainly fixed some issues around the script recorder, such as start up time and behavior when invisible elements were encountered. An update of the AWS cloud [...]]]></description>
			<content:encoded><![CDATA[<p>Today we released a minor update of XLT 4.0. You will find all the details about it at the usual place: <a href="https://lab.xceptance.de/releases/xlt/4.0.2/">https://lab.xceptance.de/releases/xlt/4.0.2/</a>. Check out the <a href="https://lab.xceptance.de/releases/xlt/4.0.2/releasenotes.html">release notes</a> too. We mainly fixed some issues around the script recorder, such as start up time and behavior when invisible elements were encountered.</p>
<p>An update of the AWS cloud images will follow in the next hours.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2011/03/02/xlt-4-0-2-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free Money in Australia</title>
		<link>http://blog.xceptance.com/2011/03/02/free-money-in-australia/</link>
		<comments>http://blog.xceptance.com/2011/03/02/free-money-in-australia/#comments</comments>
		<pubDate>Wed, 02 Mar 2011 16:11:46 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Things went wrong]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[failure]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=565</guid>
		<description><![CDATA[A database error caused several ATMs of the Commonwealth Bank to give away money for free in Australia. Read more at ZDNet. There is another short article about that failure in this news. Up to 40 Commonwealth Bank Automatic Teller Machines are spewing cash across NSW just hours after suffering a computer error this morning.]]></description>
			<content:encoded><![CDATA[<p>A database error caused several ATMs of the Commonwealth Bank to give away money for free in Australia. <a href="http://www.zdnet.com.au/commbank-atms-spew-cash-339310494.htm">Read more at ZDNet</a>. There is another short article about that failure in <a href="http://www.zdnet.com.au/cba-atms-eftpos-hit-by-database-woes-339310464.htm">this news</a>.</p>
<blockquote><p>Up to 40 Commonwealth Bank Automatic Teller Machines are spewing cash across NSW just hours after suffering a computer error this morning.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2011/03/02/free-money-in-australia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XLT &#8211; Garbage Collector details visualized</title>
		<link>http://blog.xceptance.com/2011/02/17/xlt-garbage-collector-details-visualized/</link>
		<comments>http://blog.xceptance.com/2011/02/17/xlt-garbage-collector-details-visualized/#comments</comments>
		<pubDate>Thu, 17 Feb 2011 04:00:29 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[XLT]]></category>
		<category><![CDATA[charts]]></category>
		<category><![CDATA[gc]]></category>
		<category><![CDATA[JVM]]></category>
		<category><![CDATA[tuning]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=535</guid>
		<description><![CDATA[Today we want to give you a small preview of an upcoming XLT feature. Most of you probably know that XLT features agent statistics. These statistics help you to keep an eye on the health of the test execution engines (agents) to ensure that you do not influence the test results by providing insufficient hardware [...]]]></description>
			<content:encoded><![CDATA[<p>Today we want to give you a small preview of an upcoming XLT feature. Most of you probably know that XLT features agent statistics. These statistics help you to keep an eye on the health of the test execution engines (agents) to ensure that you do not influence the test results by providing insufficient hardware or by applying no or incorrect settings.</p>
<p>Most modern programming languages are virtual machine based and these machines have knobs you can turn to adjust their behavior according to your requirements. XLT runs on Java and so all the things you might have already learnt from tuning your Java-based servers apply to XLT as well. If you do not have experience in tuning your Java-based servers, you will learn a lot that can be applied to your servers and help you to increase performance.</p>
<p>So, let&#8217;s take a look at the upcoming XLT feature that provides you with more details about garbage collection (GC) without the need to use any external tool to monitor or analyze logs or JVMs runtime behavior.</p>
<div id="attachment_536" class="wp-caption aligncenter" style="width: 210px"><a rel="lightbox" href="/wp-content/uploads/2011/02/xlt-memory-and-gc-charts-good.png"><img class="size-thumbnail wp-image-536   " title="Example of XLT agent memory details - good example" src="/wp-content/uploads/2011/02/xlt-memory-and-gc-charts-good-200x200.png" alt="" width="200" height="200" /></a><p class="wp-caption-text">Perfect GC behavior</p></div>
<p>This is a chart displays nice memory statistics that indicate absolutely no problems with the garbage collection. As you can see the memory usage (first chart in the image) is alternating but never touching the upper limit. The second chart gives you the times when full garbage collection occurred, basically these are the bad events. Events that block the virtual machine from continuing to run. We should avoid these at any cost&#8230; nearly, because a full GC is costly. There was only one full GC right at the beginning at the test. This is a normal JVM behavior. So we seem to have done a pretty good job. No major collection of garbage. Sweat!</p>
<p>There are still the minor collections. Minor collections occur frequently and they reclaim small portions of memory with short living objects. The third charts shows us, that minor collection took about 10 to 30 ms, some spikes up to 70 ms. This is acceptable.</p>
<div class="wp-caption aligncenter" style="width: 210px"><a rel="lightbox" href="/wp-content/uploads/2011/02/xlt-memory-and-gc-charts-bad.png"><img title="Example of XLT memory example with bad data" src="/wp-content/uploads/2011/02/xlt-memory-and-gc-charts-bad-200x200.png" alt="" width="200" height="200" /></a><p class="wp-caption-text">GC with Issues</p></div>
<p>Ok, let&#8217;s have a bad example in comparison. It runs with almost default VM settings. This means just min and max heap were set (Xms256MB/Xmx512MB). You can see clearly that a lot of major collections were running for up to 800 ms each. Also the minor collections were longer.</p>
<p>Clearly, the new charts help you see and fix misbehavior quickly. &#8220;What about the settings?&#8221; you might ask now. Yes, this example is not very helpful without revealing the difference between both test runs. So, we will give you the settings of the good one. The bad run had only Xms and Xmx set, as mentioned before.</p>
<blockquote>
<pre>## Set minimum memory to use
-Xms512m

## Set maximum permitted memory
-Xmx512m

## Enable concurrent old GC to avoid sudden long pauses
-XX:+UseConcMarkSweepGC

## When to start GC for the tenured/old area of the memory.
## This has to be low enough to avoid that threads need
## memory and can not get any before the GC has finished.
## This will lower the wait time.
-XX:CMSInitiatingOccupancyFraction=70
</pre>
</blockquote>
<p>That&#8217;s really all. The use of the Concurrent-Mark-Sweep-Collector (CMS) is the most important setting. The CMS does not block the main VM worker threads, but collects the garbage concurrently. Because there might be situations were the CMS collector is not fast enough in cleaning up, this means the old space runs out of free memory, we give the CMS a hint with the last line. This line explicitly tells the CMS to start early with the clean up. In this case at a 70% fill level. The default is 96% and way too high.</p>
<p>One last thing. Setting Xms and Xmx to the same number helps the VM to relax because it will not try to get back to the minimal memory limit (Xms) and so it cleans less aggressively.</p>
<p>If you want to lean more about Java Garbage Collection, take a look at this Oracle documents: <a href="http://java.sun.com/javase/technologies/hotspot/gc/gc_tuning_6.html">GC Tuning</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2011/02/17/xlt-garbage-collector-details-visualized/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>QA Blog Collection</title>
		<link>http://blog.xceptance.com/2011/02/07/qa-blog-collection/</link>
		<comments>http://blog.xceptance.com/2011/02/07/qa-blog-collection/#comments</comments>
		<pubDate>Mon, 07 Feb 2011 01:17:49 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[blogs]]></category>
		<category><![CDATA[list]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=533</guid>
		<description><![CDATA[Steve collected a very nice list of QA and testing blogs. 100 + 4 different blogs to take a look at. Check it out: Top 100 Software Testing Blogs.]]></description>
			<content:encoded><![CDATA[<p>Steve collected a very nice list of QA and testing blogs. 100 + 4 different blogs to take a look at. Check it out: <a href="http://www.testingminded.com/2010/04/top-100-software-testing-blogs.html">Top 100 Software Testing Blogs</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2011/02/07/qa-blog-collection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XLT 4.0.1 released</title>
		<link>http://blog.xceptance.com/2011/02/05/xlt-4-0-1-released/</link>
		<comments>http://blog.xceptance.com/2011/02/05/xlt-4-0-1-released/#comments</comments>
		<pubDate>Sat, 05 Feb 2011 04:10:19 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[XLT]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=529</guid>
		<description><![CDATA[Today, we released XLT 4.0.1. This is an minor update to XLT 4.0 that fixes five defects. Additionally, it provides some documentation enhancements. You can download the release from here: https://lab.xceptance.de/releases/xlt/4.0.1/. At the same location, you will find the documentation as well as the release notes.]]></description>
			<content:encoded><![CDATA[<p>Today, we released XLT 4.0.1. This is an minor update to XLT 4.0 that fixes five defects. Additionally, it provides some documentation enhancements. You can download the release from here: <a href="https://lab.xceptance.de/releases/xlt/4.0.1/">https://lab.xceptance.de/releases/xlt/4.0.1/</a>. At the same location, you will find the documentation as well as the release notes.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2011/02/05/xlt-4-0-1-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XLT 4.0 Developer Screencasts</title>
		<link>http://blog.xceptance.com/2011/01/24/xlt-4-0-developer-screencasts/</link>
		<comments>http://blog.xceptance.com/2011/01/24/xlt-4-0-developer-screencasts/#comments</comments>
		<pubDate>Mon, 24 Jan 2011 17:14:47 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[XLT]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[screencast]]></category>
		<category><![CDATA[script developer]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[test automation]]></category>
		<category><![CDATA[video tutorial]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=498</guid>
		<description><![CDATA[We just published four brand-new screencasts about XLT 4.0, its features, and how to work with them. This is our first attempt to use screencasts as a way of documenting our software. They do not replace the written documentation, of course, but they do provide a quick and easy way to become familiar with XLT. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.xceptance-loadtest.com/screencasts/"><img class="alignleft size-full wp-image-523" title="XLT-Screencasts" src="/wp-content/uploads/2011/01/xlt-screencasts.jpg" alt="The XLT Screencast Page" width="300" height="205" /></a>We just published four brand-new <a href="http://www.xceptance-loadtest.com/screencasts/" title="Xceptance Load Test - XLT - Developer Screencasts">screencasts</a> about XLT 4.0, its features, and how to work with them. This is our first attempt to use screencasts as a way of documenting our software. They do not replace the written documentation, of course, but they do provide a quick and easy way to become familiar with XLT.</p>
<p>You might be especially interested in the new Script Developer. Our main feature of XLT 4.0.</p>
<p>The script developer is our approach to write and execute scripts efficiently within Firefox. It is a tool to quickly automate web application, share scripts without the hassle of complicated installations, while maintaining full control over possible other ways to execute scripts. The script developer lays the foundation to run test within the browser, execute scripts during builds, create and run test-driven tests, and, if required, export scripts into Java to unleash the power of a modern programming language.</p>
<p>Enjoy the screencasts and of course feedback is always welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2011/01/24/xlt-4-0-developer-screencasts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

