<?xml version="1.0" encoding="UTF-8" standalone="no"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:gd="http://schemas.google.com/g/2005" xmlns:georss="http://www.georss.org/georss" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-3154230739686508173</atom:id><lastBuildDate>Sat, 08 Nov 2025 08:09:45 +0000</lastBuildDate><category>Automated testing</category><category>visual tutorials</category><category>LoadRunner</category><category>QTP</category><category>Video</category><category>LR parameters</category><category>Correlation</category><category>My money</category><category>TopList</category><category>WMI</category><category>memory leaks</category><title>Easy way to automate testing</title><description>Automated software testing and different ways on how to do more and quicker at a shorter time</description><link>http://motevich.blogspot.com/</link><managingEditor>noreply@blogger.com (Dmitry Motevich)</managingEditor><generator>Blogger</generator><openSearch:totalResults>80</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><language>en-us</language><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3154230739686508173.post-24665706928752545</guid><pubDate>Wed, 09 Dec 2009 23:07:00 +0000</pubDate><atom:updated>2012-10-17T08:49:03.668+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Automated testing</category><category domain="http://www.blogger.com/atom/ns#">LoadRunner</category><category domain="http://www.blogger.com/atom/ns#">QTP</category><category domain="http://www.blogger.com/atom/ns#">Video</category><title>QTP Videos &amp; LoadRunner Videos</title><description>&lt;div style="text-align: center;"&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;span style="color: #330099; font-size: 130%; font-weight: bold;"&gt;HP QTP (QuickTest Professional) Videos&lt;/span&gt;&lt;span style="color: #330099; font-size: 130%;"&gt;&lt;span style="font-weight: bold;"&gt;:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;table border="1" cellpadding="5" cellspacing="0" style="width: 100%px;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/2008/03/how-to-record-qtp-script-video-tutorial_24.html"&gt;&lt;img alt="QTP video tutorial - How to record QTP script" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZ2fbqRhGFMWdeGCL_ewM4KbmN0QUJ8VevrT_HxbV01m6qgzK-0L4eoqE7PPOhWLTFqnLlkP42238HtKZDidQorT0xqKuDq-T7dFr7bIcZkskDkq1gEp7gaSFxOF3gUNLyQW_0rJO4k8c/" style="cursor: pointer; float: left; margin: 0pt 0px 0px 0pt;" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/2008/03/how-to-record-qtp-script-video-tutorial_24.html"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold;"&gt;QTP video tutorial - How to record QTP script&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The present  &lt;span style="color: black; font-weight: bold;"&gt;QTP&lt;/span&gt;&lt;span style="color: black;"&gt; (&lt;/span&gt;&lt;span style="color: black; font-weight: bold;"&gt;QuickTest Pro&lt;/span&gt;&lt;span style="color: black;"&gt;) &lt;/span&gt;&lt;span style="color: black; font-weight: bold;"&gt;video tutorial&lt;/span&gt; covers the following:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;How to &lt;span style="font-weight: bold;"&gt;record QTP script&lt;/span&gt; for Web applications&lt;/li&gt;
&lt;li&gt;What &lt;span style="font-weight: bold;"&gt;record and run settings&lt;/span&gt; should be used to run and execute QTP script&lt;/li&gt;
&lt;li&gt;How to &lt;span style="font-weight: bold;"&gt;replay/execute QTP script&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;How to &lt;span style="font-weight: bold;"&gt;get results&lt;/span&gt; of executed QTP script&lt;/li&gt;
&lt;li&gt;How to &lt;span style="font-weight: bold;"&gt;enable capturing screenshots&lt;/span&gt; during QTP scipt replaying&lt;/li&gt;
&lt;li&gt;How to &lt;span style="font-weight: bold;"&gt;enable capturing video&lt;/span&gt; during QTP scipt replaying&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/2008/03/qtp-how-to-capture-dynamic-text.html"&gt;&lt;img alt="QTP video tutorial - How to capture dynamic text" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzTWUrHhiq8AIA6JuHzrWBhGBdiHsNP5oUqbuk5Wcw_dEaxmE5MBLA1DPEwKdQl90IIWWMkZRfsfSb355pxNr_JceE88yHOO6A9KyJIlLqwCyPXbiZ7te_LPQm7e3iAmzRckmm_ajXvQ0/" style="cursor: pointer; float: left; margin: 0pt 0px 0px 0pt;" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/2008/03/qtp-how-to-capture-dynamic-text.html"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold;"&gt;QTP video tutorial - How to capture dynamic text&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: black;"&gt;The present  &lt;/span&gt;&lt;span style="color: black; font-weight: bold;"&gt;QTP&lt;/span&gt;&lt;span style="color: black;"&gt; (&lt;/span&gt;&lt;span style="color: black; font-weight: bold;"&gt;QuickTest Pro&lt;/span&gt;&lt;span style="color: black;"&gt;) &lt;/span&gt;&lt;span style="color: black; font-weight: bold;"&gt;video tutorial&lt;/span&gt; covers the following:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;How to use QTP to &lt;span style="font-weight: bold;"&gt;capture text&lt;/span&gt; from the page&lt;/li&gt;
&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Settings&lt;/span&gt; from QTP &lt;span style="font-weight: bold;"&gt;'Output Text Value Properties'&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Explanation for &lt;span style="font-weight: bold;"&gt;QTP Output value&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Explanation for&lt;span style="font-weight: bold;"&gt; left &amp;amp; right boundaries&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;How to &lt;span style="font-weight: bold;"&gt;save&lt;/span&gt; QTP Output text value into &lt;span style="font-weight: bold;"&gt;QTP DataTable&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Differences&lt;/span&gt; between &lt;span style="font-weight: bold;"&gt;Global&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;Local QTP DataTable sheets&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;How to &lt;span style="font-weight: bold;"&gt;read&lt;/span&gt; value from &lt;span style="font-weight: bold;"&gt;QTP DataTable&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/2008/12/qtp-datatable-qtp-video.html"&gt;&lt;img alt="QTP video tutorial - QTP Datatable" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMOBRfm4UY3p-oPwtgfufTbh0-md6Psm6A72YYhKGgzZClA78DUqUGxoFvUSsOe1OGzyu373k3O7NZ11RBEopTvYGaKftlpIO6hiDmgW3FnYq42emyyQ4wV38yvgn2Mgf7FQVrew1yj0w/" style="cursor: pointer; float: left; margin: 0pt 0px 0px 0pt;" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/2008/12/qtp-datatable-qtp-video.html"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold;"&gt;QTP video tutorial - QTP Datatable&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
This QTP video shows how to work with &lt;span style="font-weight: bold;"&gt;DataTable&lt;/span&gt;.&lt;br /&gt;
You will learn different &lt;span style="font-weight: bold;"&gt;QTP DataTable&lt;/span&gt; concepts:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;How to create QTP DataTable parameter using QTP Data Driver&lt;/li&gt;
&lt;li&gt;How to create QTP DataTable parameter manually&lt;/li&gt;
&lt;li&gt;How to read/write values from/to QTP DataTable&lt;/li&gt;
&lt;li&gt;QTP script and DataTable execution settings&lt;/li&gt;
&lt;li&gt;Global and local (action) sheets of DataTable&lt;/li&gt;
&lt;li&gt;QuickTest Professional data-driven tests&lt;/li&gt;
&lt;/ul&gt;
&lt;span style="color: black; font-weight: bold;"&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/2008/08/qtp-regexp-how-to-click-dynamic-link.html"&gt;&lt;img alt="QTP video tutorial - QTP RegExp and dynamic link in QTP" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNpimvZC1sKq-WNgIVy134DJldMf1x5TZGzSWmhoV7LVys2i5S2jCNl7Psi2lsLjEReRvvNs9jWpuN4ZrpEjudNhoVcPIxldBwVQ6Cb12oKmoROkv_479u9AU3T9oHIVANZTZq6YtoxgI/" style="cursor: pointer; float: left; margin: 0pt 0px 0px 0pt;" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/2008/08/qtp-regexp-how-to-click-dynamic-link.html"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold;"&gt;QTP video tutorial - QTP RegExp and dynamic link in QTP&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
This QTP video tutorial covers the following:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;working with &lt;span style="font-weight: bold;"&gt;QTP Object Repository&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-weight: bold;"&gt;identification properties&lt;/span&gt; of QTP objects&lt;/li&gt;
&lt;li&gt;&lt;span style="font-weight: bold;"&gt;QTP RegExp&lt;/span&gt; in object's properties&lt;/li&gt;
&lt;li&gt;how &lt;span style="font-weight: bold;"&gt;QTP identifies objects&lt;/span&gt; in application&lt;/li&gt;
&lt;li&gt;and others...&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/2008/12/qtp-descriptive-programming-qtp-video.html"&gt;&lt;img alt="QTP video tutorial - QTP Descriptive Programming" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZ2fbqRhGFMWdeGCL_ewM4KbmN0QUJ8VevrT_HxbV01m6qgzK-0L4eoqE7PPOhWLTFqnLlkP42238HtKZDidQorT0xqKuDq-T7dFr7bIcZkskDkq1gEp7gaSFxOF3gUNLyQW_0rJO4k8c/" style="cursor: pointer; float: left; margin: 0pt 0px 0px 0pt;" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/2008/12/qtp-descriptive-programming-qtp-video.html"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold;"&gt;QTP video tutorial - QTP DP (Descriptive Programming)&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
This QTP video shows and explains concepts of &lt;span style="font-weight: bold;"&gt;QTP Descriptive Programming&lt;/span&gt;:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;What is &lt;span style="font-weight: bold;"&gt;QTP Descriptive Programming&lt;/span&gt;?&lt;/li&gt;
&lt;li&gt;How to pass properties and their values directly to test object?&lt;/li&gt;
&lt;li&gt;How to pass properties and their values using &lt;span style="font-weight: bold;"&gt;Description&lt;/span&gt; object?&lt;/li&gt;
&lt;li&gt;How to select &lt;span style="font-weight: bold;"&gt;Descriptive Programming&lt;/span&gt; properties of a test object?&lt;/li&gt;
&lt;li&gt;How t0 oconvert usual QTP script into &lt;span style="font-weight: bold;"&gt;QTP Descriptive Programming&lt;/span&gt; script?&lt;/li&gt;
&lt;li&gt;How to debug &lt;span style="font-weight: bold;"&gt;QTP DP&lt;/span&gt;?&lt;/li&gt;
&lt;li&gt;Different secrets of &lt;span style="font-weight: bold;"&gt;QTP Descriptive Programming&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/2008/04/how-to-run-qtp-test-from-command-line.html"&gt;&lt;img alt="QTP video tutorial - How to run QTP test from command line" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5DwH6WGFxE_7tX7zMlSfhFjL4t6bn5agrIyKJOp2huaHKA6hgi-FF2yf73mwaoCNw7aJcQCDo3oIn413jYEi8Lg3FkQYspDfm_guAYeP2UhY8Mr4K5DfUyyvhaYAR_9TI738WzAQpXtE/" style="cursor: pointer; float: left; margin: 0pt 0px 0px 0pt;" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/2008/04/how-to-run-qtp-test-from-command-line.html"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold;"&gt;QTP video tutorial - How to run QTP test from command line&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Do you run your &lt;span style="font-weight: bold;"&gt;QTP tests suit&lt;/span&gt; manually?&lt;br /&gt;
What about running them &lt;span style="font-weight: bold;"&gt;on the schedule&lt;/span&gt;, for example nightly testing?&lt;br /&gt;
&lt;br /&gt;
I will show the way how to do that - i.e. &lt;span style="color: black; font-weight: bold;"&gt;how to run QTP tests from command line&lt;/span&gt;&lt;span style="color: black;"&gt;.&lt;/span&gt;&lt;br /&gt;
Using that approach, you can execute your QTP tests on the schedule.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/2008/09/qtp-recovery-scenario-video.html"&gt;&lt;img alt="QTP video tutorial - QTP Recovery Scenario" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvmaUSOKtTcTaBPNrIm-nAWjkzBRdZ_qR5s05CtxgL-xWUlXvLxGPm5yyc9nHxs0CxicmSk1mTpeuW5958-dhrwbZl_OEcnvkVxg_5tXluMj3mAlV0gQB8jQ3NxoC4pSJjejIyEmH0nEE/" style="cursor: pointer; float: left; margin: 0pt 0px 0px 0pt;" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/2008/09/qtp-recovery-scenario-video.html"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold;"&gt;QTP video tutorial - QTP Recovery Scenario&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
This &lt;span style="font-weight: bold;"&gt;QTP video&lt;/span&gt; shows and explains how to create and work with &lt;span style="font-weight: bold;"&gt;QTP Recovery Scenarios&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
For example, during an execution of QTP test, it can be interrupted by different windows, pop-ups, message boxes, etc. The problem is that they can appear at any time and &lt;span style="font-weight: bold;"&gt;you cannot predict these events.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;QTP &lt;/span&gt;provides &lt;span style="font-weight: bold;"&gt;Recoverry Scenarios&lt;/span&gt; to process such unexpected events and errors.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: 130%; font-weight: bold;"&gt;&lt;span style="color: #330099;"&gt;HP LoadRunner Videos:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;table border="1" cellpadding="5" cellspacing="0" style="width: 100%px;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/2008/11/automated-correlation-in-loadrunner.html"&gt;&lt;img alt="LoadRunner video tutorial - Automated Correlation in LoadRunner" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZZqwoYsYpCZ4bq_qtBx2VyfaLCbhn5Dh5f1KZ_YLbpLeIxf38PJCBh-t86Ig341U_jmxlU6TeUUzjhMVsCD8U8k36zLTZ4TfAZmhtfMBfkeI3Ng__DqwTfDQiQjRXcWWXjny53_z3VNU/" style="cursor: pointer; float: left; margin: 0pt 0px 0px 0pt;" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/2008/11/automated-correlation-in-loadrunner.html"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold;"&gt;LoadRunner video tutorial - Automated Correlation in LoadRunner&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Correlation is a key concept of HP LoadRunner. The present LoadRunner video tutorial explains &lt;span style="font-weight: bold;"&gt;how to correlate dynamic values in LoadRunner automatically&lt;/span&gt;:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;How to find dynamic values to be correlated&lt;/li&gt;
&lt;li&gt;How to compare recorded &amp;amp; replayed dynamic values&lt;/li&gt;
&lt;li&gt;How to correlate them in LoadRunner&lt;/li&gt;
&lt;li&gt;How to verify correlation&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/2008/11/manual-correlation-in-loadrunner.html"&gt;&lt;img alt="LoadRunner video tutorial - Manual Correlation in LoadRunner" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiTuKSwJBjspUj0oX-fpI8LxiPYtpjynrzo9CIYYafO84SQd3A6kIrYBMj-QH7oz50JsWk74AXQfVMIxdusQmbmr_X6BxlXyi4zp-r79pKeGs05HPZtwv2gJcvLeWFUFn5McUjHtoY78U/" style="cursor: pointer; float: left; margin: 0pt 0px 0px 0pt;" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/2008/11/manual-correlation-in-loadrunner.html"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold;"&gt;LoadRunner video tutorial - Manual Correlation in LoadRunner&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The present LoadRunner video explains &lt;span style="font-weight: bold;"&gt;how to manually correlate dynamic values&lt;/span&gt;:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;How to find dynamic values in a server response&lt;/li&gt;
&lt;li&gt;How to &lt;span style="font-weight: bold;"&gt;correlate&lt;/span&gt; them in LoadRunner&lt;/li&gt;
&lt;li&gt;How to &lt;span style="font-weight: bold;"&gt;verify the LoadRunner correlation&lt;/span&gt; manually&lt;/li&gt;
&lt;li&gt;How to use &lt;span style="font-weight: bold;"&gt;LoadRunner correlation functions&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/2008/06/loadrunner-video-tutorial-parameter-1.html"&gt;&lt;img alt="LoadRunner video tutorial - LoadRunner Parameters, part #1" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_BFloT4ks7NwudeZvIVWOkomuW-HWUu2hTNP4F9w2VyqY9h0TX80kQGefSPHNWo6hGCccy0s_cmdkbY_KS3dkmURXQSYR_ZMcm5-cqmAkbEBlUxerYX9lT1X5VeZPRPL9O7HPA4ZAVtc/" style="cursor: pointer; float: left; margin: 0pt 0px 0px 0pt;" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/2008/06/loadrunner-video-tutorial-parameter-1.html"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold;"&gt;LoadRunner video tutorial - LoadRunner Parameters,&lt;br /&gt;part 1 of 3 (Select next row = Sequential)&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: black;"&gt;The present &lt;/span&gt;&lt;span style="color: black; font-weight: bold;"&gt;LoadRunner video tutorial&lt;/span&gt; covers the following:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;How to create new &lt;span style="font-weight: bold;"&gt;LoadRunner parameter&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;How to use &lt;span style="font-weight: bold;"&gt;'Simulate Parameter'&lt;/span&gt; feature&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Settings on &lt;span style="font-weight: bold;"&gt;Parameter List dlg&lt;/span&gt;:&lt;br /&gt;Option 'Select next row' = &lt;span style="font-weight: bold;"&gt;'Sequential'&lt;/span&gt;&lt;br /&gt;Option 'Update value on' = &lt;span style="font-weight: bold;"&gt;'Each iteration'&lt;/span&gt;&lt;br /&gt;Option 'Update value on' = &lt;span style="font-weight: bold;"&gt;'Each occurrence'&lt;/span&gt;&lt;br /&gt;Option 'Update value on' = &lt;span style="font-weight: bold;"&gt;'Once'&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;How to view an &lt;span style="font-weight: bold;"&gt;output value&lt;/span&gt; of parameter&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/2008/07/loadrunner-video-tutorial-parameter-2.html"&gt;&lt;img alt="LoadRunner video tutorial - LoadRunner Parameters, part #2" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZH0Mc-j5v4hOKRx_S8lSyM090CM3n-JrQ-7VhVN0GEzt5bfJ49f8ULwaMlTWUG3lafnbZxZ5tHKuywBLtvEddVEQD5TaGv7ybC0rqlZy-Pmq08E3e4ThSS24w075o9gQtljpBNdtRoLw/" style="cursor: pointer; float: left; margin: 0pt 0px 0px 0pt;" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/2008/07/loadrunner-video-tutorial-parameter-2.html"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold;"&gt;LoadRunner video tutorial - LoadRunner Parameters,&lt;br /&gt;part 2 of 3 (Select next row = Random)&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The present &lt;span style="color: black; font-weight: bold;"&gt;LoadRunner video tutorial&lt;/span&gt; covers the following:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;How to create new &lt;span style="font-weight: bold;"&gt;LoadRunner parameter&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Settings on &lt;span style="font-weight: bold;"&gt;Parameter List dlg&lt;/span&gt;:&lt;br /&gt;Option 'Select next row' = &lt;span style="font-weight: bold;"&gt;'Random'&lt;/span&gt;&lt;br /&gt;Option 'Update value on' = &lt;span style="font-weight: bold;"&gt;'Each iteration'&lt;/span&gt;&lt;br /&gt;Option 'Update value on' = &lt;span style="font-weight: bold;"&gt;'Each occurrence'&lt;/span&gt;&lt;br /&gt;Option 'Update value on' = &lt;span style="font-weight: bold;"&gt;'Once'&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;How to view an &lt;span style="font-weight: bold;"&gt;output value&lt;/span&gt; of parameter&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/2008/08/loadrunner-video-tutorial-parameter-3.html"&gt;&lt;img alt="LoadRunner video tutorial - LoadRunner Parameters, part #3" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBhX4GAty_hdKjFBDIVFZdgBOYr5MfH06qu1U27R-TZB3h5JSYgZcFqVt-3LA_bKiQXoaMqLRNP2v6p-0TQF4tq-Bh-RzFFuYDJR3NZ-UJIPapFDmqrxoaes_Cst84hyrNiUyM5SZxe4c/" style="cursor: pointer; float: left; margin: 0pt 0px 0px 0pt;" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/2008/08/loadrunner-video-tutorial-parameter-3.html"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold;"&gt;LoadRunner video tutorial - LoadRunner Parameters,&lt;br /&gt;part 3 of 3 (Select next row = Unique)&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The present &lt;span style="color: black; font-weight: bold;"&gt;LoadRunner video tutorial&lt;/span&gt; covers the following:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Settings on &lt;span style="font-weight: bold;"&gt;Parameter List dlg&lt;/span&gt;:&lt;br /&gt;Option 'Select next row' = &lt;span style="font-weight: bold;"&gt;'Unique'&lt;/span&gt;&lt;br /&gt;Option 'Update value on' = &lt;span style="font-weight: bold;"&gt;'Each iteration'&lt;/span&gt;&lt;br /&gt;Option 'Update value on' = &lt;span style="font-weight: bold;"&gt;'Each occurrence'&lt;/span&gt;&lt;br /&gt;Option 'Update value on' = &lt;span style="font-weight: bold;"&gt;'Once'&lt;/span&gt;Option&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;'When out of values' = &lt;span style="font-weight: bold;"&gt;'Abort Vuser'&lt;/span&gt;Option 'When out of values' = &lt;span style="font-weight: bold;"&gt;'Continue in a cyclic manner'&lt;/span&gt;Option 'When out of values' = &lt;span style="font-weight: bold;"&gt;'Continue with last value'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'Allocate Vuser values in the Controller'&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;How to view an &lt;span style="font-weight: bold;"&gt;output value&lt;/span&gt; of LoadRunner parameter&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/2008/10/loadrunner-video-capture-web-page.html"&gt;&lt;img alt="LoadRunner video tutorial - How to capture the whole Web page" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMIUyD6OFlH6P6aQpx7w-Zo2TAibpD5y5L7CJSUv2SFp6AR-8L7J4zayB3LMOwaE01RYfqtH8dQ3GHIUDJVXO5s1PRwi-QRkZolMWKpCUp0R4jTf6u6ChFa-HSrTY8HNLM50M6754ECLM/" style="cursor: pointer; float: left; margin: 0pt 0px 0px 0pt;" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/2008/10/loadrunner-video-capture-web-page.html"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold;"&gt;LoadRunner video tutorial - How to capture the whole Web page&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
This LoadRunner video tutorial shows &lt;span style="font-weight: bold;"&gt;how to capture Web page&lt;/span&gt;.&lt;br /&gt;
Using this approach, you can get HTML source code of any Web page and then downloade it to a local file.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/2008/04/loadrunner-how-to-record-pdf-file.html"&gt;&lt;img alt="LoadRunner video tutorial - How to record a file saving in LoadRunner" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPGvuH1chzu0QGydseUCfefDSwBJ5qWrRUbFiA5BLb6GFJTp2hCT-9lX3kx9x8ksrqqMnpG564nbvOJ3m6NIl9PUtdHUNl40j6J1GRc4Iz04MYPUSCYwGrkyl5Z01EjQEKwvGVyGJ7q4Q/" style="cursor: pointer; float: left; margin: 0pt 0px 0px 0pt;" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/2008/04/loadrunner-how-to-record-pdf-file.html"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold;"&gt;LoadRunner video tutorial - How to record a file saving in LoadRunner&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
In some cases, we need to save PDF (or other) file on local disk and process it (edit, parse, or compare with 'etalon' file).&lt;br /&gt;
&lt;br /&gt;
The present LoadRunner video tutorial explains &lt;span style="font-weight: bold;"&gt;how to record PDF file saving in LoadRunner.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/2008/10/check-downloaded-file-loadrunner-video.html"&gt;&lt;img alt="LoadRunner video tutorial - How to check a downloaded file" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYr4L62Wtc_tnCAjCiOW4jCWI4c4KNBXoPLKo5-k35SjDZbM4G9Qv_x0Ms-8eHaxzJDscdO03XqXFbT613CDL3hTkClgjjsgcaf52g-zWA8xHNTgGC6InP1XC5aQUTnKYI9-_gUFe7tIs/" style="cursor: pointer; float: left; margin: 0pt 0px 0px 0pt;" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/2008/10/check-downloaded-file-loadrunner-video.html"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold;"&gt;LoadRunner video tutorial - How to check a downloaded file&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Do you know how to check that a file or a page was downloaded successfully in LoadRunner?&lt;br /&gt;
The present &lt;span style="font-weight: bold;"&gt;LoadRunner video tutorial&lt;/span&gt; explains how to do that.&lt;br /&gt;
&lt;br /&gt;
There is an easy and practical approach.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;
Dear readers, as you can see, I performed a huge work to prepare these videos.&lt;br /&gt;
In general, it took me ~ 60 hours for each video: &lt;br /&gt;
&lt;ul style="font-weight: normal;"&gt;
&lt;li&gt;to think up examples (they should be simple)&lt;/li&gt;
&lt;li&gt;to develop a scenario of video tutorial (I prefer logical and 'step-by-step' scenarios)&lt;/li&gt;
&lt;li&gt;to record video (actually, not easy task)&lt;/li&gt;
&lt;li&gt;to make, edit, check and recheck, and then again to remake movie (it should be ideal!)&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
I think, that my readers should get the &lt;span style="font-weight: bold;"&gt;perfect QTP and LoadRunner video tutorials&lt;/span&gt;. And I create such video tutorials.&lt;br /&gt;
That's why I ask you to help me - please, make donations. Your donation will mean that my videos were useful fot you and I'll be glad that you learnt something new. &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;It will motivate me to make new, even better videos!&lt;/span&gt;&lt;br /&gt;
&lt;form action="https://www.paypal.com/cgi-bin/webscr" method="post"&gt;
&lt;br /&gt;
&lt;input name="cmd" type="hidden" value="_s-xclick" /&gt;&lt;br /&gt;
&lt;input name="hosted_button_id" type="hidden" value="TU7VDPSQG7BBW" /&gt;&lt;br /&gt;
&lt;input alt="PayPal - The safer, easier way to pay online!" border="0" name="submit" src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" type="image" /&gt;&lt;/form&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Related articles:&lt;br /&gt;
&lt;ul&gt;
&lt;li style="font-weight: bold;"&gt;&lt;a href="http://motevich.blogspot.com/2008/01/qtp-tutorials.html"&gt;QTP video &amp;amp; text tutorials&lt;/a&gt;&lt;/li&gt;
&lt;li style="font-weight: bold;"&gt;&lt;a href="http://motevich.blogspot.com/2008/01/loadrunner-tutorials.html" style="font-weight: bold;"&gt;LoadRunner video &amp;amp; text tutorials&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
--&lt;br /&gt;
Dmitry Motevich</description><link>http://motevich.blogspot.com/2009/12/qtp-video-loadrunner-video.html</link><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZ2fbqRhGFMWdeGCL_ewM4KbmN0QUJ8VevrT_HxbV01m6qgzK-0L4eoqE7PPOhWLTFqnLlkP42238HtKZDidQorT0xqKuDq-T7dFr7bIcZkskDkq1gEp7gaSFxOF3gUNLyQW_0rJO4k8c/s72-c" width="72"/><thr:total>30</thr:total><author>noreply@blogger.com (http://motevich.blogspot.com)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3154230739686508173.post-2673942127824137208</guid><pubDate>Mon, 19 Jan 2009 14:31:00 +0000</pubDate><atom:updated>2009-10-19T23:05:46.070+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Automated testing</category><category domain="http://www.blogger.com/atom/ns#">QTP</category><category domain="http://www.blogger.com/atom/ns#">TopList</category><title>15 QTP sites/blogs/groups/forums</title><description>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;table border="1" cellpadding="5" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ7sqrrnQ08HpqYhmHBPEc4cQyycsG6uIeHpa4iXWW_WWlKJyHCRkIPE9D3lrtZOhOSTwhGEpaCgEBGf-U1lKe6Qk12qRuu6nNL1jGsBWml-CbiscpSGkTPT0_frbsV2XkyfpLQe4CHkU/" alt="QTP on Easy way to automate testing" border="0" /&gt;&lt;/a&gt;&lt;a style="font-weight: bold;" href="http://motevich.blogspot.com/"&gt;QTP on Easy way to automate testing&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There are a lot of QTP videos. Each QTP text tutorial contains screen shots.&lt;br /&gt;So, this is a well-illustrated blog containing interesting info for QTP newcomers and professionals.&lt;br /&gt;You can find here different &lt;a href="http://motevich.blogspot.com/2008/01/qtp-tutorials.html"&gt;QTP videos and tutorials&lt;/a&gt;. Example &lt;a href="http://motevich.blogspot.com/2008/03/how-to-record-qtp-script-video-tutorial_24.html"&gt;QTP video #1&lt;/a&gt;, &lt;a href="http://motevich.blogspot.com/2008/03/qtp-how-to-capture-dynamic-text.html"&gt;#2&lt;/a&gt;, &lt;a href="http://motevich.blogspot.com/2008/12/qtp-descriptive-programming-qtp-video.html"&gt;#3&lt;/a&gt;, &lt;a href="http://motevich.blogspot.com/2008/12/qtp-datatable-qtp-video.html"&gt;#4&lt;/a&gt;, etc.&lt;br /&gt;To get new QTP videos and articles automatically, you can &lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;a href="http://motevich.blogspot.com/2008/04/how-to-subscribe-to-my-blog.html"&gt;subscribe to blog&lt;/a&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;&lt;a href="http://groups.google.com/group/MercuryQTP"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCKTolyvrRAZ-yp_lVaLnD5FgjNOa_MpopS_vksea57BRXqweWz42_N_TKKP5OHDlAJ47YznGhr8k5ZaBWKO0puBnzIPLCJWDHaEHpxJYfMuKwj6vixkqz3SpzS7PN2ypQsvYVVQGSiJA/" alt="QTP Google group" border="0" /&gt;&lt;/a&gt;&lt;a style="font-weight: bold;" href="http://groups.google.com/group/MercuryQTP"&gt;QTP Google group&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is a moderated QTP group. A great place for newcomers and professionals to improve knowledge and experience in QTP.&lt;br /&gt;This is a very big QTP group - more than 1250 members as at Jan 19th, 2009. So all issues will be resolved quickly.&lt;br /&gt;You can subscribe to this group &lt;a href="http://groups.google.com/group/MercuryQTP/subscribe"&gt;here&lt;/a&gt;.&lt;br /&gt;Before posting, please read &lt;a href="http://groups.google.com/group/MercuryQTP/web"&gt;Rules, FAQ, and others pages&lt;/a&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://forums13.itrc.hp.com/service/forums/categoryhome.do?categoryId=895"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjljD9Ihw2TMxaDI4y2I8OXaA7t9A8eJAFwqBeRW2LDbPyaW-bPO-Q2CyaKEYES_zLgRYW8artVn0ew1cDlCfAcnMmpQdEFcJ2rdVkA2BNoWro7siaJ7iOZnvLbR-Fn8uA2X2azlWCj0HE/" alt="Quality Center on HP Forums" border="0" /&gt;&lt;/a&gt;&lt;a style="font-weight: bold;" href="http://forums13.itrc.hp.com/service/forums/categoryhome.do?categoryId=895"&gt;Quality Center on HP Forums&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Office HP forum for all questions related to HP Quality Center.&lt;br /&gt;Unfortunately, there is no subbranch of QTP-related questions.&lt;br /&gt;There are a lot highly professional specialists on this forum, so visit this forum from time to time to improve your professional skills.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;4&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.sqaforums.com/postlist.php?Cat=0&amp;amp;Board=UBB20"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXn3Wme_jJCYM5b9avXldpCdtQYGCGNkkPyH0EL2tu6KEnWY2AZtkogWHhQr6KMcMfup8PlaQHQYf5g1eNjBb7MF7xgPsz2yN6FOELTQ836elXYr5Vbe_96B5ji-g-2DXURdeCXwD6PDM/" alt="QTP on sqaforums" border="0" /&gt;&lt;/a&gt;&lt;a style="font-weight: bold;" href="http://www.sqaforums.com/postlist.php?Cat=0&amp;amp;Board=UBB20"&gt;QTP on SQAForums&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is a QTP branch of SQAforums site. Moderated forums where you can find solutions to different QTP questions.&lt;br /&gt;As a bonus, several HP QTP Support engineers share their knowledge and experience.&lt;br /&gt;Before posting, please read forum &lt;a href="http://www.sqaforums.com/showflat.php?Cat=0&amp;amp;Number=402530&amp;amp;an=0&amp;amp;page=0#Post402530"&gt;guidelines&lt;/a&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.advancedqtp.com/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQGRZ3nthP5FSEpJLekjfPKhkx8aV9LkI23U6P73hOdXAt8nH83VgwXyju0o_RY3JVXbKWDTKaF0N7kgjzEwNdML9cAC4hIyR5-zK2gZVYQXxyt39iIfVPHsRd5D_kYQpgPn1BEo38fMA/" alt="AdvancedQTP site" border="0" /&gt;&lt;/a&gt;&lt;a style="font-weight: bold;" href="http://www.advancedqtp.com/"&gt;AdvancedQTP site&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Great site containing unique and interesting information about QTP.&lt;br /&gt;Authors publish periodically articles about non-documented QTP features, investigations, books, etc.&lt;br /&gt;Site contains internal &lt;a href="http://www.advancedqtp.com/forums/"&gt;forum&lt;/a&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;&lt;a href="http://knowledgeinbox.com/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMKHghIeTprtHJoE8gcW1_Ns7jPGn_dfdBO8oHEuzXhNvsJmiQwbzObXpPpMmbNxXHtg_3fIsfXUaWVZepXH0sybvlMO7mUiQetenwxT8O6sBgxZINPjP2m_nr-pqKoDRG__OGXUdoIxw/" alt="KnowledgeInbox by Tarun Lalwani" border="0" /&gt;&lt;/a&gt;&lt;a style="font-weight: bold;" href="http://knowledgeinbox.com/"&gt;KnowledgeInbox by Tarun Lalwani&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Tarun Lalwani is well-known in QTP global community as a highly professional QTP engineer.&lt;br /&gt;His site contains a lot of artciles about different QTP features and topics - &lt;a href="http://knowledgeinbox.com/articles/qtp/descriptive-programming/"&gt;Descriptive Programming&lt;/a&gt;, &lt;a href="http://knowledgeinbox.com/articles/vbscript/"&gt;VBScript&lt;/a&gt;, and even &lt;a href="http://knowledgeinbox.com/downloads/"&gt;original QTP tools&lt;/a&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;7&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.softwareinquisition.com/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikcIYufjMavyVJWGpGzHCgyCjmOchINJoBOobsFLuemDBrintb8bkbW8MUaSfVfFgMZmNSRvRoWyACjZSu_BY7HZKsIMAydc3Q8vDAqJdugXujPp52DMkhYZgYTAvSU2XltSnq1o6U4HM/" alt="Software Iinquisition site" border="0" /&gt;&lt;/a&gt;&lt;a style="font-weight: bold;" href="http://www.softwareinquisition.com/"&gt;Software Iinquisition site&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Amazing site! Definetely, you will like their simple and clear QTP articles.&lt;br /&gt;Authors (Marcus Merrell &amp;amp; Will Roden) describe parts of their &lt;a href="http://www.softwareinquisition.com/2007/08/introducing-sifl"&gt;Software Inquisition Foundation Library for QTP&lt;/a&gt; (a kind of QTP Framework), and many &lt;a href="http://www.softwareinquisition.com/2006/03/named-optional-arguments-in-vbscript"&gt;others&lt;/a&gt; &lt;a href="http://www.softwareinquisition.com/2008/06/our-automated-test-process"&gt;interesting&lt;/a&gt; &lt;a href="http://www.softwareinquisition.com/2006/09/classes-objects-and-quicktest-pro-9"&gt;things&lt;/a&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;8&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://abouttesting.blogspot.com/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin78HLL76xMMURrazJvWqpF6VQXGi2FIPE9IK00PxtPMKjhCUmYa7sUOKXw4NIF8wkJU3Cg0fuXY31lN6RdQItd49lETEvgssJWrcbQjfGIdCUHVOKcyNPs3TjOwpn265RKCA7sdaFsF8/" alt="Stefan Thelenius' blog" border="0" /&gt;&lt;/a&gt;&lt;a style="font-weight: bold;" href="http://abouttesting.blogspot.com/"&gt;Stefan Thelenius' blog&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Don't want to waste your time developing and implementing &lt;a href="http://abouttesting.blogspot.com/2008/06/test-automation-report-source-code.html"&gt;Test Automation report&lt;/a&gt;, &lt;a href="http://abouttesting.blogspot.com/2008/05/test-suite-driver-script.html"&gt;Test Suite Driver Script&lt;/a&gt;, and &lt;a href="http://abouttesting.blogspot.com/2008/04/qtp-debug-class-for-dictionary.html"&gt;others&lt;/a&gt; &lt;a href="http://abouttesting.blogspot.com/2008/01/test-framework-data-model-snapshot.html"&gt;interesting&lt;/a&gt; &lt;a href="http://abouttesting.blogspot.com/2008/01/create-dictionary-object-from-record.html"&gt;things&lt;/a&gt;? Read Stefan's blog.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;&lt;a href="https://h10078.www1.hp.com/cda/hpms/display/main/hpms_content.jsp?zn=bto&amp;amp;cp=1-11-127-24%5E1352_4000_100__"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRsaAAW7UmmdrbnQRdYC3UeQ590qUfjC4_S0bdATbX-FSQOKP6kiMLKsUT5dyUYK5C8ddwbg8Yv_QAD2UUhL-Y_opneJgHaocAN3Nz6vHGL4pLecSqfF4Qxq3xb0emNYlGeXv4kIOQ_Fo/" alt="HP QuickTest Professional Software site" border="0" /&gt;&lt;/a&gt;&lt;a style="font-weight: bold;" href="https://h10078.www1.hp.com/cda/hpms/display/main/hpms_content.jsp?zn=bto&amp;amp;cp=1-11-127-24%5E1352_4000_100__"&gt;HP QuickTest Professional Software site&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Official HP QTP's site.&lt;br /&gt;There is a lot of related information - documentation, demos, guides, downloads, news, and so on.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;10&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://automated-chaos.blogspot.com/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-viPw3zGdq7l2RFmK7Otlp4FA5JcQ84xqwlDoGxVec_IBDxKaNRWIXnQHiqLoSWLrPKRtuAxKyFghX6e8pru-R9I5672_jEs5otjX5uH4kR7blj__riepaLZzCyy1koKamJ3FJqsCjII/" alt="'Automated Chaos' blog" border="0" /&gt;&lt;/a&gt;&lt;a style="font-weight: bold;" href="http://automated-chaos.blogspot.com/"&gt;'Automated Chaos' blog&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The blog does not contain too many QTP articles, but all of them are interesting and unique.&lt;br /&gt;Use this practical experience to save your time while debugging your QTP script or implementing QTP framework.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;&lt;a href="http://mercuryquicktestprofessional.blogspot.com/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3HVO1aOC4nZQLyUK37DSkycEFmvvz7uG8Gd__YRy8cymkf29uRPv2q9OfTZm-dy-wbezMBWqBKeHqZdRJLwzZ8qK0EARihfCB8-ZiAHG5wSKYYDYZRiyMTPNJ4pHSIisdSWMVjwn_b-w/" alt="Ankur Jain's blog" border="0" /&gt;&lt;/a&gt;&lt;a style="font-weight: bold;" href="http://mercuryquicktestprofessional.blogspot.com/"&gt;Ankur Jain's blog&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Yet another great blog about QTP and QTP-related issues.  Ankur has the ability to describe complex things in simple terms.&lt;br /&gt;Also, it's possible to ask questions in comments or on &lt;a href="http://www.learnqtp.com/forums"&gt;local forum&lt;/a&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;12&lt;/td&gt;&lt;td&gt;&lt;a href="http://geekswithblogs.net/tmoore/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSjNmvfwqMN3DYF5WzFaVHShLRsgFW5cuhL_J8Y_iN3yUKzc-dg4pyE25QI44l86CTBXuIn235DMYGVqLLIMJc_bgzvmn8bbQbu_dcaNLwz1cn3b6O_C5zoxZUt6XTUNspavpUIp-by7s/" alt="Theo Moore's blog" border="0" /&gt;&lt;/a&gt;&lt;a style="font-weight: bold;" href="http://geekswithblogs.net/tmoore/"&gt;Theo Moore's blog&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Theo Moore is a man who knows everything :)&lt;br /&gt;As for QTP, readers will find different articles to extend their theoretical knowledge and improve their practical experience.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13&lt;/td&gt;&lt;td&gt;&lt;a href="http://support.openview.hp.com/selfsolve/documents"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhctiKqOs6Co-gxJ_n30LPnNEMDj7Gq9FYb4nnbcpSUrr6Dwzmd1NqaMpPBw86i3DF9xosCEXtRO1vQiKeGZX6Rv6fOx6zcGzq9x1TiKaSul5yjUPP_P_U3f2w1gIqG-0iXUtYqCLtkOZQ/" alt="HP Advanced Self-Solve Knowledge Search" border="0" /&gt;&lt;/a&gt;&lt;a style="font-weight: bold;" href="http://support.openview.hp.com/selfsolve/documents"&gt;HP Advanced Self-Solve Knowledge Search&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;'Knowledge Base' of QTP-related articles, manuals, documents, webinars, and others extremely useful documents.&lt;br /&gt;Many artciles contains 'must know' technical information. Greate place to prepare for QTP certifications.&lt;br /&gt;This site requires HP login.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;14&lt;/td&gt;&lt;td&gt;&lt;a href="http://tdforums.tdadmins.com/index.php?showforum=43"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIbiFyjRgJEKx3kjFRsVghr1iw6iKWnBxmZyMlXHPofKbhTBk5mvA6nT4WqUfgGJUFozOk9AsOpfltULP3f7yMAvUoQhY630lzuEU0oAEg3X3o6cM_l2xgx-V13vz7lGX1fBSUrRLNrS4/" alt="QTP on tdforums" border="0" /&gt;&lt;/a&gt;&lt;a style="font-weight: bold;" href="http://tdforums.tdadmins.com/index.php?showforum=43"&gt;QTP on TDForums&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There is another good forum about QTP. Also, &lt;a href="http://tdforums.tdadmins.com/"&gt;TDForum&lt;/a&gt; contains great info about working and tuning of Quality Center.&lt;br /&gt;Site requres registration from corporate (not public) email account.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;15&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://quicktestprofessional.wordpress.com/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg1wXuVk7qWADsLDYkVR6Ky_rHr_BKGYT0VjR9Me7JJUa-jD13Tg5y24rPV4CZwgMsfyw2sj4BWP-7qtMflsDoX0RWB2WaJm34Ddkl_1wRRipZH0ygSmkqja-i_j9qEFFZmj3AnifRoEM/" alt="Mohan Kumar Kakarla's QTP blog" border="0" /&gt;&lt;/a&gt;&lt;a style="font-weight: bold;" href="http://quicktestprofessional.wordpress.com/"&gt;Mohan Kumar Kakarla's QTP blog&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Site contains QTP scripts which can be a core of QTP Functions library. Real-life examples.&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Note:&lt;/span&gt; I understand that this list of QTP sites is not complete and ideal.&lt;br /&gt;It only expresses my own opinion.&lt;br /&gt;&lt;br /&gt;I would be thankful if you shared your favorite QTP Internet sources  to expand the present list.&lt;br /&gt;So, feel free to send them to me:&lt;br /&gt;&lt;img style="border: medium none ; position: absolute; width: 153px; height: 15px;" src="http://lh3.ggpht.com/mangazey/SOEnGH9pgQI/AAAAAAAAA1o/5wy7BypPrOw/my_email4.gif" alt="Dmitry Motevich's email" /&gt;&lt;br /&gt;&lt;br /&gt;--&lt;br /&gt;Dmitry Motevich&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-weight: bold;"&gt;Related articles:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/06/10-steps-to-become-qtp-guru.html"&gt;10 steps to become QTP guru&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/11/top-40-automated-testing-blogs.html"&gt;Top 40 Automated Testing Blogs&lt;/a&gt;&lt;/li&gt;&lt;li style="font-weight: bold;"&gt;&lt;a href="http://motevich.blogspot.com/2008/01/qtp-tutorials.html"&gt;QTP video &amp;amp; text tutorials&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;Do you like this &lt;span style="font-weight: bold;"&gt;QTP Sites List&lt;/span&gt;? Would you like to receive them in the future?&lt;br /&gt;If yes, please subscribe to this &lt;a href="http://feeds.feedburner.com/motevich"&gt;blog RSS feed&lt;/a&gt; or &lt;a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=1890249&amp;amp;loc=en_US"&gt;by Email&lt;/a&gt;. (&lt;a href="http://motevich.blogspot.com/2008/04/how-to-subscribe-to-my-blog.html"&gt;How to subscribe? Video guide&lt;/a&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;Do you &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;like this QTP tutorial?&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;a href="http://motevich.blogspot.com/2008/09/free-use-copy-publish-blog-materials.html"&gt;Feel free to use/copy/publish all my materials&lt;/a&gt; on your site/blog!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;    &lt;span class="post-author vcard"&gt; &lt;/span&gt;</description><link>http://motevich.blogspot.com/2009/01/qtp-sites-blogs-groups-forums.html</link><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ7sqrrnQ08HpqYhmHBPEc4cQyycsG6uIeHpa4iXWW_WWlKJyHCRkIPE9D3lrtZOhOSTwhGEpaCgEBGf-U1lKe6Qk12qRuu6nNL1jGsBWml-CbiscpSGkTPT0_frbsV2XkyfpLQe4CHkU/s72-c" width="72"/><thr:total>15</thr:total><author>noreply@blogger.com (http://motevich.blogspot.com)</author><enclosure length="4607" type="application/x-httpd-ea-php72" url="http://www.learnqtp.com/forums"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3154230739686508173.post-6310283386844490398</guid><pubDate>Thu, 25 Dec 2008 23:23:00 +0000</pubDate><atom:updated>2009-10-19T23:05:34.019+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Automated testing</category><category domain="http://www.blogger.com/atom/ns#">QTP</category><category domain="http://www.blogger.com/atom/ns#">Video</category><title>QTP DataTable - QTP video</title><description>This QTP video shows how to work with &lt;span style="font-weight: bold;"&gt;DataTable&lt;/span&gt;.&lt;br /&gt;You will learn different &lt;span style="font-weight: bold;"&gt;QTP DataTable&lt;/span&gt; concepts:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;How to create QTP DataTable parameter using QTP Data Driver&lt;/li&gt;&lt;li&gt;How to create QTP DataTable parameter manually&lt;/li&gt;&lt;li&gt;How to read/write values from/to QTP DataTable&lt;/li&gt;&lt;li&gt;QTP script and DataTable execution settings&lt;/li&gt;&lt;li&gt;Global and local (action) sheets of DataTable&lt;br /&gt;&lt;/li&gt;&lt;li&gt;QuickTest Professional data-driven tests&lt;/li&gt;&lt;/ul&gt;There is a sample screenshot from the present QTP video:&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz5BeNPBcjitJcsDFW7okR6Hi4X3HGxoxi70PP64-MNgJ1R0BLQERU10nfQf6OHOw1mAvQVC03-ZZZ5Go5RZlAfF95uK1zOv5gYN4pP0nvKrYULcTeCgY9HCXKydu2d2Vjw2VoIQkBLEg/" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center; color: rgb(0, 0, 153);"&gt;&lt;span style="font-weight: bold;"&gt;QTP DataTable - QTP video&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a style="left: 340.5px ! important; top: 0px ! important;" title="Block this object with Adblock Plus" class="abp-objtab-0033267947992554614 visible ontop" href="http://blip.tv/play/AeL2cAA"&gt;&lt;/a&gt;&lt;embed src="http://blip.tv/play/AeL2cAA" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="390"&gt;&lt;/embed&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Dear reader! Would you like to get new QTP videos?&lt;br /&gt;Please, suggest new topics! What videos would you most interested in?&lt;br /&gt;&lt;br /&gt;Also, I will be grateful for any shared information about QTP and others automated testing tools.&lt;br /&gt;&lt;br /&gt;Feel free to cantact me.&lt;br /&gt;My email is:  &lt;img style="border: medium none ; position: absolute; width: 153px; height: 15px;" src="http://lh3.ggpht.com/mangazey/SOEnGH9pgQI/AAAAAAAAA1o/5wy7BypPrOw/my_email4.gif" alt="Dmitry Motevich's email" /&gt;&lt;br /&gt;&lt;br /&gt;--&lt;br /&gt;Dmitry Motevich&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-weight: bold;"&gt;Related articles:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/03/how-to-record-qtp-script-video-tutorial_24.html"&gt;How to record QTP script - QTP video tutorial&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/07/how-to-get-iteration-number-qtp-script.html"&gt;How to get current iteration number of QTP script?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/06/10-steps-to-become-qtp-guru.html"&gt;10 steps to become QTP guru&lt;/a&gt;&lt;/li&gt;&lt;li style="font-weight: bold;"&gt;&lt;a href="http://motevich.blogspot.com/2008/01/qtp-tutorials.html"&gt;QTP video &amp;amp; text tutorials&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;Do you like this &lt;span style="font-weight: bold;"&gt;QTP Video tutorial&lt;/span&gt;? Would you like to receive them in the future?&lt;br /&gt;If yes, please subscribe to this &lt;a href="http://feeds.feedburner.com/motevich"&gt;blog RSS feed&lt;/a&gt; or &lt;a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=1890249&amp;amp;loc=en_US"&gt;by Email&lt;/a&gt;. (&lt;a href="http://motevich.blogspot.com/2008/04/how-to-subscribe-to-my-blog.html"&gt;How to subscribe? Video guide&lt;/a&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;Do you &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;like this QTP tutorial?&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;a href="http://motevich.blogspot.com/2008/09/free-use-copy-publish-blog-materials.html"&gt;Feel free to use/copy/publish all my materials&lt;/a&gt; on your site/blog!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;</description><link>http://motevich.blogspot.com/2008/12/qtp-datatable-qtp-video.html</link><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz5BeNPBcjitJcsDFW7okR6Hi4X3HGxoxi70PP64-MNgJ1R0BLQERU10nfQf6OHOw1mAvQVC03-ZZZ5Go5RZlAfF95uK1zOv5gYN4pP0nvKrYULcTeCgY9HCXKydu2d2Vjw2VoIQkBLEg/s72-c" width="72"/><thr:total>17</thr:total><author>noreply@blogger.com (http://motevich.blogspot.com)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3154230739686508173.post-912241308676085979</guid><pubDate>Sat, 20 Dec 2008 01:41:00 +0000</pubDate><atom:updated>2009-10-19T23:05:22.005+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Automated testing</category><category domain="http://www.blogger.com/atom/ns#">QTP</category><category domain="http://www.blogger.com/atom/ns#">Video</category><category domain="http://www.blogger.com/atom/ns#">visual tutorials</category><title>QTP DP (Descriptive Programming) - QTP video</title><description>&lt;span style="font-weight: bold;"&gt;QTP DP (Descriptive Programming)&lt;/span&gt; allows working without native QTP Object Repository. QTP Descriptive Programming provides test objects' properties and their values.&lt;br /&gt;So, QTP uses Descriptive Programming statements to identify objects in AUT (application under test) during Run-time.&lt;br /&gt;&lt;br /&gt;This QTP video shows and explains concepts of &lt;span style="font-weight: bold;"&gt;QTP Descriptive Programming&lt;/span&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;What is &lt;span style="font-weight: bold;"&gt;QTP Descriptive Programming&lt;/span&gt;?&lt;/li&gt;&lt;li&gt;How to pass properties and their values directly to test object?&lt;/li&gt;&lt;li&gt;How to pass properties and their values using &lt;span style="font-weight: bold;"&gt;Description&lt;/span&gt; object?&lt;/li&gt;&lt;li&gt;How to select &lt;span style="font-weight: bold;"&gt;Descriptive Programming&lt;/span&gt; properties of a test object?&lt;/li&gt;&lt;li&gt;How t0 oconvert usual QTP script into &lt;span style="font-weight: bold;"&gt;QTP Descriptive Programming&lt;/span&gt; script?&lt;/li&gt;&lt;li&gt;How to debug &lt;span style="font-weight: bold;"&gt;QTP DP&lt;/span&gt;?&lt;/li&gt;&lt;li&gt;Different secrets of &lt;span style="font-weight: bold;"&gt;QTP Descriptive Programming&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;There is a sample screenshot from the present QTP video:&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwv5x9MAN9oMdl5U0Y-VYDDhNFzGYcVqjDewREcWcBG_nfT3ppJrZdYtXI_r4m-pstgzAF4jH24__mQEeacVsrysCkdp8OexF_0O7gGFKmpwSbEJsuxqLM_uWSa6cTE35pIquhG9G6pi0/" alt="QTP DP (Descriptive Programming) screenshot" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center; font-weight: bold; color: rgb(0, 0, 153);"&gt;QTP DP (Descriptive Programming) - QTP video&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a style="left: 340.483px ! important; top: 15px ! important;" title="Block this object with Adblock Plus" class="abp-objtab-08219342112807709 visible ontop" href="http://blip.tv/play/AeKUOgA"&gt;&lt;/a&gt;&lt;a style="left: 340.483px ! important; top: 15px ! important;" title="Block this object with Adblock Plus" class="abp-objtab-08219342112807709 visible ontop" href="http://blip.tv/play/AeKUOgA"&gt;&lt;/a&gt;&lt;a style="left: 340.483px ! important; top: 15px ! important;" title="Block this object with Adblock Plus" class="abp-objtab-08219342112807709 visible ontop" href="http://blip.tv/play/AeKUOgA"&gt;&lt;/a&gt;&lt;a style="left: 340.483px ! important; top: 15px ! important;" title="Block this object with Adblock Plus" class="abp-objtab-08219342112807709 visible ontop" href="http://blip.tv/play/AeKUOgA"&gt;&lt;/a&gt;&lt;a style="left: 340.483px ! important; top: 15px ! important;" title="Block this object with Adblock Plus" class="abp-objtab-08219342112807709 visible ontop" href="http://blip.tv/play/AeKUOgA"&gt;&lt;/a&gt;&lt;a style="left: 340.483px ! important; top: 15px ! important;" title="Block this object with Adblock Plus" class="abp-objtab-0033267947992554614 visible ontop" href="http://blip.tv/play/AeKUOgA"&gt;&lt;/a&gt;&lt;embed src="http://blip.tv/play/AeKUOgA" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="390"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Dear reader!&lt;br /&gt;As usual, I need your help :)&lt;br /&gt;&lt;br /&gt;Do you have ideas about new video tutorials? Could you suggest new topics? What videos would you most interested in?&lt;br /&gt;Please remember - The content of this blog depends on your wishes and creative ideas!&lt;br /&gt;&lt;br /&gt;So, feel free to cantact me.&lt;br /&gt;My email is:  &lt;img style="border: medium none ; position: absolute; width: 153px; height: 15px;" src="http://lh3.ggpht.com/mangazey/SOEnGH9pgQI/AAAAAAAAA1o/5wy7BypPrOw/my_email4.gif" alt="Dmitry Motevich's email" /&gt;&lt;br /&gt;&lt;br /&gt;--&lt;br /&gt;Dmitry Motevich&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-weight: bold;"&gt;Related articles:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/08/qtp-regexp-how-to-click-dynamic-link.html"&gt;QTP RegExp VIDEO - How to click dynamic link?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/08/qtp-descriptive-programming-operations_13.html"&gt;QTP Descriptive Programming - How to perform operations on objects?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/08/qtp-descriptive-programming-number.html"&gt;QTP Descriptive Programming - How to get number of objects?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/05/qtp-descriptive-programming-processing.html"&gt;QTP Descriptive Programming - Processing images&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/06/qtp-descriptive-programming-browsers.html"&gt;QTP Descriptive Programming - How to close browsers?&lt;/a&gt;&lt;/li&gt;&lt;li style="font-weight: bold;"&gt;&lt;a href="http://motevich.blogspot.com/2008/01/qtp-tutorials.html"&gt;All QTP video and text tutorials&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;Do you like this &lt;span style="font-weight: bold;"&gt;QTP Video tutorial&lt;/span&gt;? Would you like to receive them in the future?&lt;br /&gt;If yes, please subscribe to this &lt;a href="http://feeds.feedburner.com/motevich"&gt;blog RSS feed&lt;/a&gt; or &lt;a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=1890249&amp;amp;loc=en_US"&gt;by Email&lt;/a&gt;. (&lt;a href="http://motevich.blogspot.com/2008/04/how-to-subscribe-to-my-blog.html"&gt;How to subscribe? Video guide&lt;/a&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;Do you &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;know that &lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;a href="http://motevich.blogspot.com/2008/09/free-use-copy-publish-blog-materials.html"&gt;you are free to use/copy/publish all my materials&lt;/a&gt; on your site/blog?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span class="post-author vcard"&gt;&lt;/span&gt;    &lt;span class="post-author vcard"&gt; &lt;/span&gt;</description><link>http://motevich.blogspot.com/2008/12/qtp-descriptive-programming-qtp-video.html</link><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwv5x9MAN9oMdl5U0Y-VYDDhNFzGYcVqjDewREcWcBG_nfT3ppJrZdYtXI_r4m-pstgzAF4jH24__mQEeacVsrysCkdp8OexF_0O7gGFKmpwSbEJsuxqLM_uWSa6cTE35pIquhG9G6pi0/s72-c" width="72"/><thr:total>14</thr:total><author>noreply@blogger.com (http://motevich.blogspot.com)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3154230739686508173.post-8714227120513185587</guid><pubDate>Thu, 04 Dec 2008 21:08:00 +0000</pubDate><atom:updated>2009-10-19T23:05:07.664+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Automated testing</category><category domain="http://www.blogger.com/atom/ns#">QTP</category><category domain="http://www.blogger.com/atom/ns#">visual tutorials</category><title>QTP Hackers - How to decrypt encrypted (SetSecure'd) password</title><description>I will explain you &lt;span style="font-weight: bold;"&gt;how to decode an encoded password in QTP&lt;/span&gt;.&lt;br /&gt;Using QuickTest Professional and this approach, you can &lt;span style="font-weight: bold;"&gt;hack email accounts&lt;/span&gt; published on Internet. Are you interested? :) So, continue reading this QTP tutorial for details.&lt;br /&gt;&lt;br /&gt;I've just recorded a simple script, which signs into &lt;a href="http://gmail.com/"&gt;Gmail&lt;/a&gt;. It:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Fills 'Username' in&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fills 'Password' in&lt;/li&gt;&lt;li&gt;Clicks 'Sign in' button&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1tHljiIZlWBayPTdTqt-MXFIvMZHSKmKO6lgxckH6dVm8DI0fWAPHK7pyB76EcvaE-5WJGkzyuEPfCTh7E_IjIvhZm-orJ9Twz1DTygY5GFfcojhehP4LbCIbw55oyrR0YO0BFDDoNnI/" alt="Gmail screen" /&gt;&lt;br /&gt;And the recorded QTP script is:&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240); font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;Browser(&lt;span style="color: rgb(102, 51, 51);"&gt;"Gmail"&lt;/span&gt;).Page(&lt;span style="color: rgb(102, 51, 51);"&gt;"Gmail"&lt;/span&gt;).WebEdit(&lt;span style="color: rgb(102, 51, 51);"&gt;"Email"&lt;/span&gt;).Set &lt;span style="color: rgb(102, 51, 51);"&gt;"someaccount"&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Browser(&lt;span style="color: rgb(102, 51, 51);"&gt;"Gmail"&lt;/span&gt;).Page(&lt;span style="color: rgb(102, 51, 51);"&gt;"Gmail"&lt;/span&gt;).&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;WebEdit(&lt;span style="color: rgb(102, 51, 51);"&gt;"Passwd"&lt;/span&gt;).SetSecure &lt;span style="color: rgb(102, 51, 51);"&gt;"493844a99bee0e3ab952f2e867fd08e3"&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Browser(&lt;span style="color: rgb(102, 51, 51);"&gt;"Gmail"&lt;/span&gt;).Page(&lt;span style="color: rgb(102, 51, 51);"&gt;"Gmail"&lt;/span&gt;).&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;WebButton(&lt;span style="color: rgb(102, 51, 51);"&gt;"Sign in"&lt;/span&gt;).Click&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;As you can see, QTP script is simple enough.&lt;br /&gt;I've set &lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;"someaccount" &lt;/span&gt;&lt;/span&gt;to 'Username' editbox. But what about 'Password' editbox? What value have I filled in?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;QTP encrypted the password using &lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;SetSecure&lt;/span&gt; method:&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240); font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;WebEdit(&lt;span style="color: rgb(102, 51, 51);"&gt;"Passwd"&lt;/span&gt;).&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;SetSecure &lt;span style="color: rgb(102, 51, 51);"&gt;"493844a99bee0e3ab952f2e867fd08e3"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;QTP Help: &lt;/span&gt;&lt;br /&gt;The &lt;span style="font-weight: bold;"&gt;SetSecure&lt;/span&gt; method is recorded when a password or other secure text is entered.&lt;br /&gt;The text is encrypted while recording and &lt;span style="font-weight: bold;"&gt;decrypted during the test run&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center; font-weight: bold; color: rgb(0, 0, 153);"&gt;How to know the initial text?&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;There is one trick. Apply &lt;span style="font-weight: bold;"&gt;SetSecure&lt;/span&gt; method to non-secured edit box!&lt;br /&gt;Instead of this QTP code:&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240); font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;Browser(&lt;span style="color: rgb(102, 51, 51);"&gt;"Gmail"&lt;/span&gt;).Page(&lt;span style="color: rgb(102, 51, 51);"&gt;"Gmail"&lt;/span&gt;).WebEdit(&lt;span style="color: rgb(102, 51, 51);"&gt;"Email"&lt;/span&gt;).Set &lt;span style="color: rgb(102, 51, 51);"&gt;"someaccount"&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Browser(&lt;span style="color: rgb(102, 51, 51);"&gt;"Gmail"&lt;/span&gt;).Page(&lt;span style="color: rgb(102, 51, 51);"&gt;"Gmail"&lt;/span&gt;).&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;WebEdit(&lt;span style="color: rgb(102, 51, 51);"&gt;"Passwd"&lt;/span&gt;).SetSecure &lt;span style="color: rgb(102, 51, 51);"&gt;"493844a99bee0e3ab952f2e867fd08e3"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt; I run this QTP script:&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240); font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;Browser(&lt;span style="color: rgb(102, 51, 51);"&gt;"Gmail"&lt;/span&gt;).Page(&lt;span style="color: rgb(102, 51, 51);"&gt;"Gmail"&lt;/span&gt;).WebEdit(&lt;span style="color: rgb(102, 51, 51);"&gt;"Email"&lt;/span&gt;).&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;SetSecure &lt;span style="color: rgb(102, 51, 51);"&gt;"493844a99bee0e3ab952f2e867fd08e3"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt; And the result of this QTP script is:&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEDu2PiwqJKiHaUO1Fu7Tlxtx9hU8YqGT7dD5azeZ6Y843o9DZEk4v2fXJYyRhQxdF-qSKQrjP59nMBQthXkC_Q4FBApzlya4i7g70Mh8vE4YXT0N_nNND39cfGI4_JycHg91B639pNsw/" alt="Revealed Password" /&gt;Yes, &lt;span style="font-weight: bold; color: rgb(102, 51, 51);"&gt;"mypwd"&lt;/span&gt; was encrypted to &lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;"493844a99bee0e3ab952f2e867fd08e3"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;.&lt;/span&gt; So, &lt;span style="font-weight: bold; color: rgb(102, 51, 51);"&gt;"mypwd"&lt;/span&gt;  is the &lt;span style="font-weight: bold;"&gt;password&lt;/span&gt; I filled!&lt;br /&gt;So, this is an easy way to decrypt an encrypted password in QTP.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;By the way, there are two ways &lt;span style="font-weight: bold;"&gt;how to decrypt a password in QuickTest Professional&lt;/span&gt;:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Using &lt;span style="font-weight: bold;"&gt;Crypt.Encrypt&lt;/span&gt;&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240); font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;str = &lt;span style="color: rgb(102, 51, 51);"&gt;"Some Text"&lt;/span&gt;&lt;br /&gt;encrStr = Crypt.Encrypt(str)&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;'encrStr' will contain an encrypted text.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Using &lt;span style="font-weight: bold;"&gt;Password Encoder&lt;/span&gt; from 'Start/Programs/QuickTest Professional/Tools'&lt;br /&gt;&lt;img style="border: medium none ; margin: 0px auto 10px; display: block; text-align: center;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwpuGHYIu7jCT9X2zKNJENT_8DjRdpesw4LKm0tklqgk4QxtIfbBbRJjKE4q44egevkquf-OixNyMzFckJiErwFri4aVPPmsFJ6UnhBl_FLr36r9gINEqN_81ono5cvXXmKQ4nsjbYYjA/" alt="QTP Password Encoder" /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Summary:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I explained two ways how to crypt a text in QTP&lt;/li&gt;&lt;li&gt;I shown an approach how to decrypt an encrypted text&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Well, I promised to show how to hack email addresses...  I remember!&lt;br /&gt;&lt;br /&gt;I searched several QTP sites and forums for &lt;span style="font-weight: bold;"&gt;"SetSecure"&lt;/span&gt; function and found that some QTP engineers published their code snippets with encrypted passwords  (for example, entrance into email accounts) :)&lt;br /&gt;&lt;br /&gt;Now you know how to "read" (=steal) passwords in plain text.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Why do I tell that? &lt;/span&gt;&lt;br /&gt;Just to remind - be careful when you publish such private info on Internet.&lt;br /&gt;&lt;br /&gt;--&lt;br /&gt;Dmitry Motevich&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-weight: bold;"&gt;Related articles:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/03/qtp-how-to-capture-dynamic-text.html"&gt;QTP VIDEO - How to capture dynamic text?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/11/top-40-automated-testing-blogs.html"&gt;Top 40 Automated Testing Blogs - Nov 2008&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2007/09/qtp-font-size-color-background-color.html"&gt;QTP - How to get font size/color, background color etc of controls?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/06/10-steps-to-become-qtp-guru.html"&gt;10 steps to become QTP guru&lt;/a&gt;&lt;/li&gt;&lt;li style="font-weight: bold;"&gt;&lt;a href="http://motevich.blogspot.com/2008/01/qtp-tutorials.html"&gt;All QTP visual tutorials&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;hr /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;Do you like this &lt;span style="font-weight: bold;"&gt;QTP tutorial&lt;/span&gt;? Would you like to receive them automatically in the future?&lt;br /&gt;If yes, please subscribe to this &lt;a href="http://feeds.feedburner.com/motevich"&gt;blog RSS feed&lt;/a&gt; or &lt;a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=1890249&amp;amp;loc=en_US"&gt;by Email&lt;/a&gt;. (&lt;a href="http://motevich.blogspot.com/2008/04/how-to-subscribe-to-my-blog.html"&gt;How to subscribe? VIDEO guide&lt;/a&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;Do you &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;know that &lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;a href="http://motevich.blogspot.com/2008/09/free-use-copy-publish-blog-materials.html"&gt;you are free to use/copy/publish all my materials&lt;/a&gt; on your site/blog?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;</description><link>http://motevich.blogspot.com/2008/12/qtp-decrypt-encrypted-password.html</link><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1tHljiIZlWBayPTdTqt-MXFIvMZHSKmKO6lgxckH6dVm8DI0fWAPHK7pyB76EcvaE-5WJGkzyuEPfCTh7E_IjIvhZm-orJ9Twz1DTygY5GFfcojhehP4LbCIbw55oyrR0YO0BFDDoNnI/s72-c" width="72"/><thr:total>7</thr:total><author>noreply@blogger.com (http://motevich.blogspot.com)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3154230739686508173.post-6224163269459200836</guid><pubDate>Tue, 25 Nov 2008 03:01:00 +0000</pubDate><atom:updated>2009-10-19T23:04:53.807+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Automated testing</category><category domain="http://www.blogger.com/atom/ns#">QTP</category><category domain="http://www.blogger.com/atom/ns#">visual tutorials</category><title>QTP - How to get all Object Indentification Properties?</title><description>There are two ways &lt;span style="font-weight: bold;"&gt;how to get all properties of an object in QuickTest Professional&lt;/span&gt;:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Manually&lt;/li&gt;&lt;li&gt;Programmatically&lt;/li&gt;&lt;/ol&gt;Use QTP Object Spy to get manually object properties.&lt;br /&gt;I've captured properties of ''Advanced Search" link from Google's page:&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMJEvfb_ziex3ZYnt3TZ1GSr4abz0LjUsxsUMJ6SUA_CpPnxuCpEjUpKycb1pkfiXN7bNWSRULJnT5svt1yZpCDNbKGmcPudG7DJe8IZ01a6kpSEDJA4nLt2-TbdtT_-k95LVV0Slp0PY/" /&gt;So, QTP Object Spy shows these values:&lt;br /&gt;&lt;img style="border: medium none ; margin: 0px auto 10px; display: block; text-align: center;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHRxFuh8CIPzLCm3DbuqzgkaPQFL1RgmT3hbfw2dFmEsaDRn-saCQCqu-ty_4nNYH_dzWqD0d94iRK_wHSEJAHtwWHWhKQs1uJ8O0zHvQLX3wzGx8PQlSENeku0oPzogomVL0xB2RQN4w/" alt="QTP Spy Object" /&gt;Using QTP Object Spy you can get &lt;span style="font-weight: bold;"&gt;Run-time Object Properties&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;Test Object Properties.&lt;/span&gt;&lt;br /&gt;It's possible to get these properties programatically:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The &lt;span style="font-weight: bold;"&gt;GetTOProperty&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;GetTOProperties&lt;/span&gt; methods enable you to retrieve a specific property value or all the properties and values that QuickTest uses to identify an object.&lt;/li&gt;&lt;li&gt;The &lt;span style="font-weight: bold;"&gt;GetROProperty&lt;/span&gt; returns the current value of the test object property from the object in the application.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;GetTOProperty&lt;/span&gt; differs from the &lt;span style="font-weight: bold;"&gt;GetROProperty&lt;/span&gt; method:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;GetTOProperty&lt;/span&gt; returns the value from the test object's description.&lt;br /&gt;&lt;span class="wrapbody"&gt;Test Object Properties are stored in the QTP Object Repository.&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;GetROProperty&lt;/span&gt; returns the current property value of the object in the application during the test run.&lt;br /&gt;QTP reads Run-time Object &lt;span class="wrapbody"&gt;Properties from actual objects during the runnins can be read and accessed during the run session.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;That means that when you work with objects using QTP Descriptive Programming (DP), you will be able to access run-time object properties only (using &lt;span style="font-weight: bold;"&gt;GetROProperty&lt;/span&gt; function). Test object properties (using &lt;span style="font-weight: bold;"&gt;GetTOProperty&lt;/span&gt; function) will not be accessed, because QTP DP doesn't work Object Repository.&lt;br /&gt;&lt;br /&gt;There is a problem with Run-time object properties.&lt;br /&gt;In contrast to &lt;span style="font-weight: bold;"&gt;GetTOProperties &lt;/span&gt;&lt;span&gt;(which returns the collection of &lt;span style="font-weight: bold;"&gt;all&lt;/span&gt; properties and values used to identify the test object)&lt;/span&gt;,&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;GetROProperties&lt;/span&gt; function does NOT exist!&lt;br /&gt;Once again - &lt;span style="font-weight: bold;"&gt;GetROProperties&lt;/span&gt; function does NOT exist!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Well, how to get all Object Indentification Properties of an object?&lt;/span&gt; &lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;br /&gt;Answer:&lt;/span&gt; We can read them from Windows Registry.&lt;br /&gt;&lt;br /&gt;The following registry key contains properties of a given test object:&lt;br /&gt;&lt;span style="color: rgb(102, 51, 51); font-weight: bold;"&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Mercury Interactive\QuickTest Professional\MicTest\Test Objects\_&lt;span style="font-style: italic;"&gt;&lt;test object=""&gt;&lt;/test&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 51, 51); font-weight: bold; font-style: italic;"&gt;Test_Object&lt;/span&gt;&lt;span style="color: rgb(102, 51, 51); font-weight: bold;"&gt;_\Properties&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For example, I've opened:&lt;br /&gt;&lt;span style="color: rgb(102, 51, 51); font-weight: bold;"&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Mercury Interactive\QuickTest Professional\MicTest\Test Objects\Link\Properties&lt;/span&gt;  and I've got properties of Link object:&lt;br /&gt;&lt;img style="border: medium none ; margin: 0px auto 10px; display: block; text-align: center;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA6Ei4FhgxWGwqF9a-F3dDsF9C9fvVvFqDgcjG1uNBtz5T2mx4lOYuYLBP11bPl1Io6RIMNRc1pT4kUUrMqCGSUeCLfHBTZBIQbSUgOv1Iitt475zRjQ7qE6YgIvPZtJCduycUJ14tVo4/" /&gt;&lt;br /&gt;Please note that you can find the same Link Identification Properties in QuickTest Professional Help:&lt;br /&gt;&lt;img style="border: medium none ; margin: 0px auto 10px; display: block; text-align: center;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz3Yl58ivt63cwCEmir-Y_2l9eTdrar_Fk3qGqF_McEA0nwy4UGGh8UxoVtAGebYZuBjEZzW-3M9lbcqAaraMqPfDsRMe6OZbvxJDIWBS2m_VPoZq7jz3tODKytvAkJkbjnIR7Zi4zcW0/" alt="Link Indentification Properties from QuickTest Professional Help" /&gt;&lt;br /&gt;QTP Object Identification Properties can be used:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;in the object  repository description&lt;/li&gt;&lt;li&gt;in programmatic descriptions&lt;/li&gt;&lt;li&gt;in checkpoint and output  value steps&lt;/li&gt;&lt;li&gt;and as argument values for the &lt;b style="font-weight: bold;"&gt;GetTOProperty&lt;/b&gt; and &lt;b style="font-weight: bold;"&gt;GetROProperty&lt;/b&gt; methods &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;So we have to read all Identification Properties from the registry.&lt;br /&gt;This QTP code reads Link Identification Properties: &lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240); font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Const &lt;/span&gt;HKEY_LOCAL_MACHINE = &lt;span style="color: rgb(102, 51, 51);"&gt;&amp;amp;H80000002&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Set &lt;/span&gt;oReg = GetObject(&lt;span style="color: rgb(102, 51, 51);"&gt;"winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv"&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;sKeyPath = &lt;span style="color: rgb(102, 51, 51);"&gt;"SOFTWARE\Mercury Interactive\QuickTest Professional\MicTest\Test Objects\Link\Properties"&lt;/span&gt;&lt;br /&gt;oReg.EnumValues HKEY_LOCAL_MACHINE, sKeyPath, arrNames&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;As a result, &lt;span style="font-weight: bold;"&gt;arrNames&lt;/span&gt; array contains all names of properties.&lt;br /&gt;To prove my words I use this QTP script:&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240); font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;sNames = &lt;span style="color: rgb(102, 51, 51);"&gt;"Identfication Properties:"&lt;/span&gt; &amp;amp; &lt;span style="color: rgb(0, 0, 153);"&gt;vbNewLine&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;For &lt;/span&gt;i = 0 &lt;span style="color: rgb(0, 0, 153);"&gt;to UBound&lt;/span&gt;(arrNames)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sNames&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; = &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;sNames &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&amp;amp; arrNames(i) &amp;amp; &lt;span style="color: rgb(0, 0, 153);"&gt;vbNewLine&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Next&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;MsgBox &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;sNames&lt;/span&gt;&lt;/div&gt; The result is:&lt;br /&gt;&lt;img style="border: medium none ; margin: 0px auto 10px; display: block; text-align: center;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEbf-17TeHtKdjqv4i5wep5fMZkuXnK5UoTh8sk0jUF9XBmQ5bxOBHeQovD3V5UKAGWdFSCpV0bbCBfrw1xVlih1_ipLfW5XKfdSllehXxPy5LUYoH8wtmMZWN0wvAtAc7aHlIi5JNb94/" /&gt;Compare these Link Identification Properties with properties from the registry. They are the same!&lt;br /&gt;&lt;br /&gt;So, we can read names of properties.&lt;br /&gt;&lt;br /&gt;Next step is to read their values. It can be archived using &lt;span style="font-weight: bold;"&gt;GetTOProperty&lt;/span&gt; or &lt;span style="font-weight: bold;"&gt;GetROProperty&lt;/span&gt;.&lt;br /&gt;Also, I'm going to show how &lt;span style="font-weight: bold;"&gt;GetTOProperty&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;GetROProperty&lt;/span&gt; work for &lt;span style="font-weight: bold;"&gt;Test Object &lt;/span&gt;(located in QTP Object Repository) and &lt;span style="font-weight: bold;"&gt;Run-time Object&lt;/span&gt; (actual object, created during the run session).&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Properties of Test Object&lt;/span&gt;&lt;br /&gt;QTP script is:&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240); font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;' Link("Advanced Search") is an object from QTP Object Repository&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Set &lt;/span&gt;TestLink = Browser(&lt;span style="color: rgb(102, 51, 51);"&gt;"Google"&lt;/span&gt;).Page(&lt;span style="color: rgb(102, 51, 51);"&gt;"Google"&lt;/span&gt;).Link(&lt;span style="color: rgb(102, 51, 51);"&gt;"Advanced Search"&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;sNamesTO = &lt;span style="color: rgb(102, 51, 51);"&gt;"GetTOProperty for Test Object"&lt;/span&gt; &amp;amp; &lt;span style="color: rgb(0, 0, 153);"&gt;vbNewLine &lt;/span&gt;&amp;amp; &lt;span style="color: rgb(102, 51, 51);"&gt;"Identfication Properties: Values"&lt;/span&gt; &amp;amp; &lt;span style="color: rgb(0, 0, 153);"&gt;vbNewLine&lt;/span&gt;&lt;br /&gt;sNamesRO = &lt;span style="color: rgb(102, 51, 51);"&gt;"GetROProperty for Test Object"&lt;/span&gt; &amp;amp; &lt;span style="color: rgb(0, 0, 153);"&gt;vbNewLine &lt;/span&gt;&amp;amp; &lt;span style="color: rgb(102, 51, 51);"&gt;"Identfication Properties: Values"&lt;/span&gt; &amp;amp; &lt;span style="color: rgb(0, 0, 153);"&gt;vbNewLine&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;For&lt;/span&gt; i = 0 &lt;span style="color: rgb(0, 0, 153);"&gt;to UBound&lt;/span&gt;(arrNames)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sNamesTO = sNamesTO &amp;amp; arrNames(i) &amp;amp; &lt;span style="color: rgb(102, 51, 51);"&gt;": "&lt;/span&gt; &amp;amp; TestLink.GetTOProperty(arrNames(i)) &amp;amp; &lt;span style="color: rgb(0, 0, 153);"&gt;vbNewLine&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sNamesRO = sNamesRO &amp;amp; arrNames(i) &amp;amp; &lt;span style="color: rgb(102, 51, 51);"&gt;": &lt;/span&gt;" &amp;amp; TestLink.GetROProperty(arrNames(i)) &amp;amp; &lt;span style="color: rgb(0, 0, 153);"&gt;vbNewLine&lt;/span&gt;&lt;br /&gt;Next&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;MsgBox &lt;/span&gt;sNamesTO&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;MsgBox &lt;/span&gt;sNamesRO&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Test Object Properties of Test Object&lt;/span&gt;&lt;br /&gt;Test Object Properties of Test Object and their values are:&lt;br /&gt;&lt;img style="border: medium none ; margin: 0px auto 10px; display: block; text-align: center;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrAqLKQaReZkw_ugeEDDRk7ticUbAfkzePlSeHs2A3d_52JXWZnGY8Lrc6OlEJgxB0B39dbniA8P8n0T5XZ3tU-o1nzw8egKT2HCiIUNRwLwTJ_pIoB6Mlxv4cSg4_m8adFS1YI6iPL98/" alt="Test Object Properties for Test Object" /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Run-time Object Properties of Test Object&lt;br /&gt;&lt;/span&gt;Run-time Object Properties of Test Object and their values are:&lt;br /&gt;&lt;img style="border: medium none ; margin: 0px auto 10px; display: block; text-align: center;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeyUcO0FgCUuLrq9dYVmmKChz0TnQqCZwzcq9GvB8s_J5j-eJF_iZHmhfDrEkwDSOVe6bYSQIbZePjOcE89NPEYcP9VWavtQBBULprl1MuGxejff0DXucrTt7kmVfqKgKcvv1uilpB8Ok/" alt="Run-time Object Properties for Test Object" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Properties of Run-time Object&lt;br /&gt;&lt;/span&gt;QTP script is:&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240); font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;' Link("text:=Advanced Search") is a dynamic run-time object&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Set &lt;/span&gt;TestLink = Browser(&lt;span style="color: rgb(102, 51, 51);"&gt;"Google"&lt;/span&gt;).Page(&lt;span style="color: rgb(102, 51, 51);"&gt;"Google"&lt;/span&gt;).Link(&lt;span style="color: rgb(102, 51, 51);"&gt;"text:=Advanced Search"&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;sNamesTO = &lt;span style="color: rgb(102, 51, 51);"&gt;"GetTOProperty for Run-time Object"&lt;/span&gt; &amp;amp; &lt;span style="color: rgb(0, 0, 153);"&gt;vbNewLine &lt;/span&gt;&amp;amp; &lt;span style="color: rgb(102, 51, 51);"&gt;"Identfication Properties: Values"&lt;/span&gt; &amp;amp; &lt;span style="color: rgb(0, 0, 153);"&gt;vbNewLine&lt;/span&gt;&lt;br /&gt;sNamesRO = &lt;span style="color: rgb(102, 51, 51);"&gt;"GetROProperty for Run-time Object"&lt;/span&gt; &amp;amp; &lt;span style="color: rgb(0, 0, 153);"&gt;vbNewLine &lt;/span&gt;&amp;amp; &lt;span style="color: rgb(102, 51, 51);"&gt;"Identfication Properties: Values"&lt;/span&gt; &amp;amp; &lt;span style="color: rgb(0, 0, 153);"&gt;vbNewLine&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;For&lt;/span&gt; i = 0 &lt;span style="color: rgb(0, 0, 153);"&gt;to UBound&lt;/span&gt;(arrNames)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sNamesTO = sNamesTO &amp;amp; arrNames(i) &amp;amp; &lt;span style="color: rgb(102, 51, 51);"&gt;": "&lt;/span&gt; &amp;amp; TestLink.GetTOProperty(arrNames(i)) &amp;amp; &lt;span style="color: rgb(0, 0, 153);"&gt;vbNewLine&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sNamesRO = sNamesRO &amp;amp; arrNames(i) &amp;amp; &lt;span style="color: rgb(102, 51, 51);"&gt;": &lt;/span&gt;" &amp;amp; TestLink.GetROProperty(arrNames(i)) &amp;amp; &lt;span style="color: rgb(0, 0, 153);"&gt;vbNewLine&lt;/span&gt;&lt;br /&gt;Next&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;MsgBox &lt;/span&gt;sNamesTO&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;MsgBox &lt;/span&gt;sNamesRO&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Test Object Properties of Run-time Object&lt;br /&gt;&lt;/span&gt;Test Object Properties of Run-time Object and their values are:&lt;br /&gt;&lt;img style="border: medium none ; margin: 0px auto 10px; display: block; text-align: center;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggwLZQjdEfdichvjS6onJtIsXU8_LkxDoGNtb9hMFlJHa4XcYILupPgutMFvHvrhPpPCEIQpU9me9L9Yo-nDdChvTAvIVyn204267Wb9l8T8o0Hxf1UljCtA_2es1X3lGccyG0GuCkqgo/" alt="Test Object Properties and their values of Run-time Object" /&gt;Why almost all properties are empty?&lt;br /&gt;&lt;br /&gt;As I said, &lt;span style="font-weight: bold;"&gt;GetTOProperty&lt;/span&gt; function gets values from Test Object, which is stored in QTP Object Repository. Since Run-time Object is a dynamic object, it's not stored in QTP Object Repository. That's why &lt;span style="font-weight: bold;"&gt;GetTOProperty&lt;/span&gt; function cannot read object's properties.&lt;br /&gt;&lt;br /&gt;Look at the above screenshot again. The only one property (&lt;span style="color: rgb(102, 51, 51);"&gt;'text'&lt;/span&gt;) contains its value (&lt;span style="color: rgb(102, 51, 51);"&gt;'Advanced Search'&lt;/span&gt;). We used this property to create description for our link:&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240); font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Set &lt;/span&gt;TestLink = Browser(&lt;span style="color: rgb(102, 51, 51);"&gt;"Google"&lt;/span&gt;).Page(&lt;span style="color: rgb(102, 51, 51);"&gt;"Google"&lt;/span&gt;).Link(&lt;span style="color: rgb(102, 51, 51);"&gt;"text:=Advanced Search"&lt;/span&gt;)&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;That's why this Run-time Object contains the only property.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Run-time Object Properties of &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Run-time Object&lt;br /&gt;&lt;/span&gt;Run-time Object Properties of Run-time Object and their values are:&lt;br /&gt;&lt;img style="border: medium none ; margin: 0px auto 10px; display: block; text-align: center;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdcywj4mKSKBGfuRL5FPzZCm8wtLIYLdPXlACZC5tf7zVBdWtD1zBR8Zq545ahvbopgeAaayd0GvX3XrXfCO4-QlW4S3D9WXO7v6FiDddYcRo5OVfbciWu79d9gHGQrxiG5IMsfoTwqYQ/" alt="Run-time Object Properties of Run-time Object" /&gt;As you can see, we got the same Run-time Object Properties both for Test Object and for Run-time Object. I can explain it.&lt;br /&gt;During the run session, &lt;span style="font-weight: bold;"&gt;QTP creates a Run-time copy of Test Object&lt;/span&gt;. That's why Run-time Object Properties were the same for Test Object and Run-time Object.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Note:&lt;/span&gt; You can download final QTP script &lt;a href="http://motevich0308.googlepages.com/GetAllObjectProperties.zip"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;--&lt;br /&gt;Dmitry Motevich&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-weight: bold;"&gt;Related articles:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/08/qtp-regexp-how-to-click-dynamic-link.html"&gt;QTP RegExp VIDEO - How to click dynamic link?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2007/09/qtp-font-size-color-background-color.html"&gt;QTP - How to get font size/color, background color and other attributes of controls?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/05/qtp-how-to-capture-tool-tip.html"&gt;QTP - How to capture tool tip of link?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/11/4-ways-to-get-count-objects-in-qtp.html"&gt;4 ways to get &amp;amp; count objects in QTP&lt;/a&gt;&lt;/li&gt;&lt;li style="font-weight: bold;"&gt;&lt;a href="http://motevich.blogspot.com/2008/01/qtp-tutorials.html"&gt;All QTP visual tutorials&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;hr /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;How about automatic receiving such &lt;span style="font-weight: bold;"&gt;QTP tutorials&lt;/span&gt;?&lt;br /&gt;Just subscribe to this &lt;a href="http://feeds.feedburner.com/motevich"&gt;blog RSS feed&lt;/a&gt; or &lt;a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=1890249&amp;amp;loc=en_US"&gt;by Email&lt;/a&gt;. (&lt;a href="http://motevich.blogspot.com/2008/04/how-to-subscribe-to-my-blog.html"&gt;How to subscribe? VIDEO guide&lt;/a&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;Do you &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;like this QTP visual tutorial? Feel free to &lt;a href="http://motevich.blogspot.com/2008/09/free-use-copy-publish-blog-materials.html"&gt;place it on your site or blog&lt;/a&gt;.&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span class="post-author vcard"&gt;&lt;/span&gt;&lt;span class="post-author vcard"&gt;&lt;/span&gt;</description><link>http://motevich.blogspot.com/2008/11/qtp-object-indentification-properties.html</link><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMJEvfb_ziex3ZYnt3TZ1GSr4abz0LjUsxsUMJ6SUA_CpPnxuCpEjUpKycb1pkfiXN7bNWSRULJnT5svt1yZpCDNbKGmcPudG7DJe8IZ01a6kpSEDJA4nLt2-TbdtT_-k95LVV0Slp0PY/s72-c" width="72"/><thr:total>9</thr:total><author>noreply@blogger.com (http://motevich.blogspot.com)</author><enclosure length="30198" type="application/octet-stream; charset=UTF-8" url="http://motevich0308.googlepages.com/GetAllObjectProperties.zip"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3154230739686508173.post-4316425494233551700</guid><pubDate>Thu, 20 Nov 2008 21:52:00 +0000</pubDate><atom:updated>2009-10-19T23:04:38.029+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Automated testing</category><category domain="http://www.blogger.com/atom/ns#">QTP</category><category domain="http://www.blogger.com/atom/ns#">visual tutorials</category><title>4 ways to get &amp; count objects in QTP</title><description>Imagine simple and practical QTP tasks:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;How to count &lt;span style="font-weight: bold;"&gt;all &lt;/span&gt;links on Web page?&lt;/li&gt;&lt;li&gt;How to get them and click each link?&lt;/li&gt;&lt;li&gt;How to get &lt;span style="font-weight: bold;"&gt;all&lt;/span&gt; WebEdits and check their values?&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;I'm going to show 4 approaches how to get lists of UI controls and process them (for example get their count).&lt;br /&gt;As an example, I will work with links on &lt;a href="http://labs.google.com/"&gt;Google Labs&lt;/a&gt; page. My goal is to get the list of links and count them.&lt;br /&gt;&lt;br /&gt;I've added &lt;a href="http://labs.google.com/"&gt;Google Labs&lt;/a&gt; page to my Object Repository and now it looks like:&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8GQyPK-Nheb7uSRC4Ym20XyEbLAti_ibor-DT5U_9g28a4NuvuVLRE2UmdvMvq41jIbLB_gl_n07iUF8SZqgBgp3_sRyhSEe3IBKLtY1TKSlnsqm3_8FnCBB3yQE-7pK1ybzYUiDYEro/" /&gt;I use Object Repository (OR) to simplify my demo-scripts.&lt;br /&gt;Since the browser &amp;amp; the page were added to OR, we can use them later like:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Browser(&lt;/span&gt;&lt;span style="color: rgb(102, 51, 51); font-weight: bold;"&gt;"Google Labs"&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;).Page(&lt;/span&gt;&lt;span style="color: rgb(102, 51, 51); font-weight: bold;"&gt;"Google Labs"&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now we are ready to start!&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;QTP Descriptive Programming&lt;/span&gt; (QTP DP) and &lt;span class="tdvamseel"&gt;&lt;span style="font-weight: bold;"&gt;ChildObjects&lt;/span&gt; QTP function&lt;br /&gt;The approach uses Description object, which contains a 'mask'&lt;/span&gt; for objects we would like to get.&lt;br /&gt;QTP script is:&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240); font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;Set&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; oDesc = &lt;/span&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;Description&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;.Create()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;oDesc(&lt;/span&gt;&lt;span style="color: rgb(102, 51, 51); font-weight: bold;"&gt;"micclass"&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;).Value = &lt;span style="color: rgb(102, 51, 51);"&gt;"Link"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;&lt;br /&gt;Set &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Links = Browser(&lt;/span&gt;&lt;span style="color: rgb(102, 51, 51); font-weight: bold;"&gt;"Google Labs"&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;).Page(&lt;/span&gt;&lt;span style="color: rgb(102, 51, 51); font-weight: bold;"&gt;"Google Labs"&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;).ChildObjects(oDesc)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;Msgbox &lt;/span&gt;&lt;span style="color: rgb(102, 51, 51); font-weight: bold;"&gt;"Total links: "&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &amp;amp; Links.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;Count&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;The result of this QTP script is:&lt;br /&gt;&lt;img style="border: medium none ; margin: 0px auto 10px; display: block; text-align: center;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5CLZxG034gibsAYesuXzTCr5dMPg1njmomec8bXyolwHIqRO38lGBc6ROTC7Des9gFkkZcRa5qn6uC8s2LBz7i1-mSCwOwPhFQoBI6fBNEzoxUiDkYQtFYo1CxVugv24b-N8nejkOs7Y/" /&gt;&lt;span style="font-weight: bold;"&gt;ChildObjects&lt;/span&gt; returns the collection of child objects matched the description (&lt;span style="color: rgb(102, 51, 51);"&gt;"micclass"&lt;/span&gt; is &lt;span style="color: rgb(102, 51, 51);"&gt;"Link"&lt;/span&gt;) and contained within the object (Page(&lt;span style="color: rgb(102, 51, 51);"&gt;"Google Labs"&lt;/span&gt;)).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span id="sort1"&gt;&lt;span class="tdvamseel"&gt;&lt;strong&gt;Object&lt;/strong&gt; QTP property and objects &lt;span style="font-weight: bold;"&gt;collections&lt;/span&gt;&lt;br /&gt;QTP can work with DOM&lt;span style="font-weight: bold;"&gt;:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240); font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;Set &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Links = Browser(&lt;/span&gt;&lt;span style="color: rgb(102, 51, 51); font-weight: bold;"&gt;"Google Labs"&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;).Page(&lt;/span&gt;&lt;span style="color: rgb(102, 51, 51); font-weight: bold;"&gt;"Google Labs"&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;).Object.Links&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;Msgbox &lt;/span&gt;&lt;span style="color: rgb(102, 51, 51); font-weight: bold;"&gt;"Total links: "&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &amp;amp; Links.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;Length&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;I use Object property of Page object. It represents the &lt;a href="http://msdn.microsoft.com/en-us/library/ms531073%28VS.85%29.aspx"&gt;HTML document&lt;/a&gt; in a given browser window.&lt;br /&gt;This document contains different collections - &lt;a href="http://msdn.microsoft.com/en-us/library/ms537457%28VS.85%29.aspx"&gt;forms&lt;/a&gt;, &lt;a href="http://msdn.microsoft.com/en-us/library/ms537459%28VS.85%29.aspx"&gt;frames&lt;/a&gt;, &lt;a href="http://msdn.microsoft.com/en-us/library/ms537461%28VS.85%29.aspx"&gt;images&lt;/a&gt;, &lt;a href="http://msdn.microsoft.com/en-us/library/ms537465%28VS.85%29.aspx"&gt;links&lt;/a&gt;, etc.&lt;br /&gt;&lt;span id="sort1"&gt;&lt;span class="tdvamseel"&gt;And we use &lt;span style="color: rgb(0, 0, 153);"&gt;Length&lt;/span&gt; property to get the number of items in a collection.&lt;br /&gt;&lt;br /&gt;The result is the same as for the previous QTP script:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;img style="border: medium none ; margin: 0px auto 10px; display: block; text-align: center;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoTmST8FM438ZB4ccnLSqQMV6DwVYPNvsdcUYbC07L5kxxlf2UdQNlpDAHZmI9mIEGzOVQEdTZoHii_6HIovC3M1MOWsA3ymwjL1x4fJP_fxRQbIHnsTdTGfhQP-6wF4FfjETGqjLWoy8/" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span id="sort1"&gt;&lt;span class="tdvamseel"&gt;&lt;strong&gt;Object&lt;/strong&gt; QTP property and &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="tdvamseel"&gt;&lt;span style="font-weight: bold;"&gt;GetElementsByTagName&lt;/span&gt; method&lt;br /&gt;Again, we can get access to &lt;/span&gt;&lt;/span&gt;the &lt;a href="http://msdn.microsoft.com/en-us/library/ms531073%28VS.85%29.aspx"&gt;HTML document&lt;/a&gt; and use its &lt;span&gt;&lt;span class="tdvamseel"&gt;&lt;span style="font-weight: bold;"&gt;GetElementsByTagName&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="tdvamseel"&gt;method&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="tdvamseel"&gt;. &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="tdvamseel"&gt;&lt;br /&gt;As the name says, &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="tdvamseel"&gt;&lt;span style="font-weight: bold;"&gt;GetElementsByTagName&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;method returns a collection of objects with the specified tag.&lt;br /&gt;Since we are going to get all link, we should use "a" tag.&lt;br /&gt;&lt;span&gt;&lt;span class="tdvamseel"&gt;&lt;br /&gt;QTP script is:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240); font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;Set &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Links = Browser(&lt;/span&gt;&lt;span style="color: rgb(102, 51, 51); font-weight: bold;"&gt;"Google Labs"&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;).Page(&lt;/span&gt;&lt;span style="color: rgb(102, 51, 51); font-weight: bold;"&gt;"Google Labs"&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;).Object.&lt;/span&gt;GetElementsByTagName(&lt;span style="color: rgb(102, 51, 51);"&gt;"a"&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;Msgbox &lt;/span&gt;&lt;span style="color: rgb(102, 51, 51); font-weight: bold;"&gt;"Total links: "&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &amp;amp; Links.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;Length&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;The result is the following:&lt;br /&gt;&lt;img style="border: medium none ; margin: 0px auto 10px; display: block; text-align: center;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcSRTxtenkcZsbWi6AbuHwQ-C1lnFU8ZGztJlGXaj87BfhdmvSp7Fsy3QX2XIfqix-OGvXVZwBQ8MHkry5JUr-9I6P-aFds3H4M709CprSdaQAMoV3XZvps9hVbQEXpFVSL_sWAs0Kj5E/" /&gt;&lt;span&gt;&lt;span class="tdvamseel"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Note:&lt;/span&gt; There is another way how to select objects by tag name:&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240); font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;Set &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Links = Browser(&lt;/span&gt;&lt;span style="color: rgb(102, 51, 51); font-weight: bold;"&gt;"Google Labs"&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;).Page(&lt;/span&gt;&lt;span style="color: rgb(102, 51, 51); font-weight: bold;"&gt;"Google Labs"&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;).Object.&lt;/span&gt;all.tags(&lt;span style="color: rgb(102, 51, 51);"&gt;"a"&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;Msgbox &lt;/span&gt;&lt;span style="color: rgb(102, 51, 51); font-weight: bold;"&gt;"Total links: "&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &amp;amp; Links.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;Length&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;The result will be the same. 69 link will be found.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span class="tdvamseel"&gt;&lt;span style="font-weight: bold;"&gt;XPath queries in QTP&lt;/span&gt;&lt;br /&gt;The idea of this approach is to use &lt;a href="http://msdn.microsoft.com/en-us/library/ms256086%28VS.85%29.aspx"&gt;XPath queries&lt;/a&gt; on a source code of Web page.&lt;br /&gt;For example, "&lt;span style="font-weight: bold;"&gt;//a&lt;/span&gt;" XPath query returns all "a" nodes (= links) from XML file.&lt;br /&gt;&lt;br /&gt;There is one problem. Web page contains HTML code, which looks like XML code but actually it is not.&lt;br /&gt;For example:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;&lt;span class="tdvamseel"&gt;HTML code can contain unclosed &lt;span style="font-weight: bold;"&gt;img&lt;/span&gt; or &lt;span style="font-weight: bold;"&gt;br&lt;/span&gt; tags, XML code cannot. &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span class="tdvamseel"&gt;HTML code &lt;/span&gt;&lt;/span&gt;is a case-&lt;span style="font-weight: bold;"&gt;in&lt;/span&gt;sensitive markup language, XML is a case-sensitive markup language, etc&lt;br /&gt;&lt;span&gt;&lt;span class="tdvamseel"&gt;More details &lt;a href="http://en.wikipedia.org/wiki/XHTML#Relationship_to_HTML"&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span&gt;&lt;span class="tdvamseel"&gt;&lt;br /&gt;So, we have to convert HTML source code into XML. The converted code is named as &lt;a href="http://en.wikipedia.org/wiki/XHTML"&gt;XHTML&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;You can convert HTML documents into XHTML using an Open Source &lt;a href="http://www.w3.org/MarkUp/#tidy"&gt;HTML Tidy&lt;/a&gt; utility.&lt;br /&gt;You can find more info about how to convert HTML code into XHTML code &lt;a href="http://www.ibm.com/developerworks/library/x-tiptidy.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I will use the final QTP script from &lt;a href="http://www.vidbob.com/qtp_xpath.php"&gt;this page&lt;/a&gt;, a bit modified:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240); font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;' to get an HTML source code of Web page&lt;/span&gt;&lt;br /&gt;HtmlCode = &lt;span style="font-weight: bold;"&gt;Browser(&lt;/span&gt;&lt;span style="color: rgb(102, 51, 51); font-weight: bold;"&gt;"Google Labs"&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;).Page(&lt;/span&gt;&lt;span style="color: rgb(102, 51, 51); font-weight: bold;"&gt;"Google Labs"&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;)&lt;/span&gt;.Object.documentElement.outerHtml&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;' save HTML code to a local file&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Set&lt;/span&gt; fso = &lt;span style="color: rgb(0, 0, 153);"&gt;CreateObject&lt;/span&gt;("Scripting.FileSystemObject")&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Set&lt;/span&gt; f =  fso.&lt;span style="color: rgb(0, 0, 153);"&gt;CreateTextFile&lt;/span&gt;(&lt;span style="color: rgb(102, 51, 51);"&gt;"C:\HtmlCode.html"&lt;/span&gt;, &lt;span style="color: rgb(0, 0, 153);"&gt;True&lt;/span&gt;, -1)&lt;br /&gt;f.&lt;span style="color: rgb(0, 0, 153);"&gt;Write&lt;/span&gt;(HtmlCode)&lt;br /&gt;f.&lt;span style="color: rgb(0, 0, 153);"&gt;Close&lt;/span&gt;()&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;' run tidy.exe to convert HTML to XHTML &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Set&lt;/span&gt; oShell = &lt;span style="color: rgb(0, 0, 153);"&gt;CreateObject&lt;/span&gt;("Wscript.shell")&lt;br /&gt;oShell.Run &lt;span style="color: rgb(102, 51, 51);"&gt;"C:\tidy.exe --doctype omit -asxhtml -m -n C:\HtmlCode.html"&lt;/span&gt;, 1, &lt;span style="color: rgb(102, 51, 51);"&gt;True&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;' waits for tidy.exe to be finished&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;' create MSXML parser&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Set&lt;/span&gt; objXML = &lt;span style="color: rgb(0, 0, 153);"&gt;CreateObject&lt;/span&gt;(&lt;span style="color: rgb(102, 51, 51);"&gt;"MSXML2.DOMDocument.3.0"&lt;/span&gt;)&lt;br /&gt;objXML.Async = &lt;span style="color: rgb(0, 0, 153);"&gt;False &lt;/span&gt;&lt;br /&gt;objXML.Load(&lt;span style="color: rgb(102, 51, 51);"&gt;"C:\HtmlCode.html"&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;XPath = &lt;span style="color: rgb(102, 51, 51);"&gt;"//a"&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;' XPath query means to find all links&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Set&lt;/span&gt; Links = objXML.SelectNodes(XPath)&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;Msgbox &lt;/span&gt;&lt;span style="color: rgb(102, 51, 51); font-weight: bold;"&gt;"Total links: " &lt;/span&gt;&amp;amp; Links.&lt;span style="color: rgb(0, 0, 153);"&gt;Length&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 51, 51); font-weight: bold;"&gt;&lt;/span&gt;&lt;/div&gt;Note: you can download tidy.exe &lt;a href="http://www.paehl.com/open_source/?HTML_Tidy_for_Windows"&gt;here&lt;/a&gt; for above QTP script.&lt;br /&gt;&lt;span&gt;&lt;span class="tdvamseel"&gt;&lt;br /&gt;This QTP script leads to the same results - 69 links found:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwq8HnnVNSCwYlQH2jM9Ij_6hfoJCC8b-LLFaE4un0MGNKvNWPmf-_rQpimktyBUkX2_o2coRoyN5LQseBwL1OaqCFhSZ-DQQQDd5FX2aF2VtALbUmnuOvilmHTcq8M4ZiDsrWlOduoIo/s1600-h/5_result4_c.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 256px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwq8HnnVNSCwYlQH2jM9Ij_6hfoJCC8b-LLFaE4un0MGNKvNWPmf-_rQpimktyBUkX2_o2coRoyN5LQseBwL1OaqCFhSZ-DQQQDd5FX2aF2VtALbUmnuOvilmHTcq8M4ZiDsrWlOduoIo/s400/5_result4_c.gif" alt="" id="BLOGGER_PHOTO_ID_5271388190004173394" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;(Click the image to enlarge it)&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;span class="tdvamseel"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span class="tdvamseel"&gt;&lt;span style="font-weight: bold;"&gt;Bonus approah &lt;/span&gt;&lt;br /&gt;Why don't you count all Wen page objects &lt;span style="font-weight: bold;"&gt;manually&lt;/span&gt;? :) Open a source code of the page and start counting :)&lt;br /&gt;Just joking :)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span class="tdvamseel"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;br /&gt;Summary:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="tdvamseel"&gt;I shown 4 practical approaches &lt;span style="font-weight: bold;"&gt;how to count Web page links&lt;/span&gt;.&lt;br /&gt;&lt;/span&gt;Similarly &lt;span class="tdvamseel"&gt;you can process images, webedits, etc&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Each approach gets a list of objects.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="tdvamseel"&gt;First approach (&lt;span style="font-weight: bold;"&gt;QTP DP + ChildObjects&lt;/span&gt;) is the most easy&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="tdvamseel"&gt;Second &amp;amp; third approaches (&lt;/span&gt;&lt;span id="sort1"&gt;&lt;span class="tdvamseel"&gt;&lt;span style="font-weight: bold;"&gt;Object + collections&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="tdvamseel"&gt;; &lt;span style="font-weight: bold;"&gt;Object + &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span class="tdvamseel"&gt;&lt;span&gt;GetElementsByTagName&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="tdvamseel"&gt;) will work on Internet Explorer, because they use DOM methods&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="tdvamseel"&gt;Fours &lt;/span&gt;&lt;span class="tdvamseel"&gt;approach is biggest but it is more powerful. It allows to use complex XPath queries.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-weight: bold;"&gt;Related articles:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/09/how-to-read-xml-file-from-qtp_08.html"&gt;XML file reading from QTP&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/09/how-to-update-xml-file-from-qtp.html"&gt;How to update XML file from QTP&lt;/a&gt;&lt;/li&gt;&lt;li style="font-weight: bold;"&gt;&lt;a href="http://motevich.blogspot.com/2008/01/qtp-tutorials.html"&gt;All QTP visual tutorials&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;hr /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;Do you like this &lt;span style="font-weight: bold;"&gt;QTP tutorial&lt;/span&gt;? Would you like to receive them in the future?&lt;br /&gt;If yes, please subscribe to this &lt;a href="http://feeds.feedburner.com/motevich"&gt;blog RSS feed&lt;/a&gt; or &lt;a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=1890249&amp;amp;loc=en_US"&gt;by Email&lt;/a&gt;. (&lt;a href="http://motevich.blogspot.com/2008/04/how-to-subscribe-to-my-blog.html"&gt;How to subscribe? VIDEO guide&lt;/a&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;Do you &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;know that &lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;a href="http://motevich.blogspot.com/2008/09/free-use-copy-publish-blog-materials.html"&gt;you are free to use/copy/publish all my materials&lt;/a&gt; on your site/blog?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span class="post-author vcard"&gt;&lt;/span&gt;</description><link>http://motevich.blogspot.com/2008/11/4-ways-to-get-count-objects-in-qtp.html</link><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8GQyPK-Nheb7uSRC4Ym20XyEbLAti_ibor-DT5U_9g28a4NuvuVLRE2UmdvMvq41jIbLB_gl_n07iUF8SZqgBgp3_sRyhSEe3IBKLtY1TKSlnsqm3_8FnCBB3yQE-7pK1ybzYUiDYEro/s72-c" width="72"/><thr:total>10</thr:total><author>noreply@blogger.com (http://motevich.blogspot.com)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3154230739686508173.post-8403342931544114487</guid><pubDate>Fri, 14 Nov 2008 19:36:00 +0000</pubDate><atom:updated>2009-10-19T23:04:22.895+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Automated testing</category><category domain="http://www.blogger.com/atom/ns#">TopList</category><title>Top 40 Automated Testing Blogs - Nov 2008</title><description>&lt;img style="border: medium none ; margin: 0pt 10px 10px 0pt; float: left;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOFAz6y5wY6mlGvSjJXjbayNMYJarEQyq7GdemOdGwv7qVebv_2itVNk0TgWhB2j6jyvXb-yeq8jn0t3pPV5MHJRETMdZH0dFRb2nKTjSpJHO0_W6I44y-bJNwWeSCW8cJAWk6_1pQQLk/" /&gt;At the end of October 2008 I &lt;a href="http://motevich.blogspot.com/2008/09/call-votes-top-automated-testing-blogs.html"&gt;invited my readers&lt;/a&gt; to send me their favorite Automated Software Testing blogs.&lt;br /&gt;&lt;br /&gt;I would like to thank those readers who shared most interesting and useful blogs.&lt;br /&gt;Great job, dear colleagues! :)&lt;br /&gt;&lt;br /&gt;As a result, I'm glad to introduce the final list of &lt;span style="font-weight: bold;"&gt;Top 40 Automated Testing Blogs&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;I sorted these blogs on the basis of:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/PageRank"&gt;PageRank&lt;/a&gt; (&lt;span style="font-weight: bold;"&gt;PR&lt;/span&gt;) - Google's view of the importance of a pag. The bigger, the better.&lt;/li&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Alexa_Internet"&gt;AlexaRank&lt;/a&gt; (&lt;span style="font-weight: bold;"&gt;AR&lt;/span&gt;) - Alexa's range of a site based on a traffic.The lower, the better.&lt;/li&gt;&lt;li&gt;&lt;a href="http://support.technorati.com/faq/topic/71"&gt;TechnoratiRank&lt;/a&gt; (&lt;span style="font-weight: bold;"&gt;TR&lt;/span&gt;) - position of the blog among all Technorati blogs. The lower, the better.&lt;/li&gt;&lt;li&gt;Comments (&lt;span style="font-weight: bold;"&gt;Cmts&lt;/span&gt;) - number of comments for all articles posted during previous 3 months (Aug, Sep, Oct 2008). The bigger, the better.&lt;/li&gt;&lt;li&gt;Incoming links (&lt;span style="font-weight: bold;"&gt;Links&lt;/span&gt;) - number calculated by &lt;a href="http://siteexplorer.search.yahoo.com/"&gt;Yahoo Site Explorer&lt;/a&gt;. The bigger, the better.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;Top 40 Automated Testing Blogs&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;table style="width: 600px; text-align: left; margin-left: auto; margin-right: auto;" border="0" cellpadding="2" cellspacing="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td style="width: 30px; text-align: center;" bgcolor="#cccccc"&gt;&lt;strong&gt;#&lt;/strong&gt;&lt;/td&gt; &lt;td style="text-align: center;" bgcolor="#cccccc"&gt;&lt;strong&gt;Site / Author&lt;/strong&gt;&lt;/td&gt; &lt;td style="text-align: center;" bgcolor="#cccccc"&gt;&lt;strong&gt;PR&lt;/strong&gt;&lt;/td&gt; &lt;td style="text-align: center;" bgcolor="#cccccc"&gt;&lt;strong&gt;AR&lt;/strong&gt;&lt;/td&gt; &lt;td style="text-align: center;" bgcolor="#cccccc"&gt;&lt;strong&gt;TR&lt;/strong&gt;&lt;/td&gt; &lt;td style="width: 50px; text-align: center;" bgcolor="#cccccc"&gt;&lt;strong&gt;Cmts&lt;/strong&gt;&lt;/td&gt; &lt;td style="text-align: center;" bgcolor="#cccccc"&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;       &lt;tr&gt;&lt;td style="text-align: center;"&gt;1&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://googletesting.blogspot.com/"&gt;Google Testing Blog&lt;/a&gt; (various)&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;5&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;219028&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;47930&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;112&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;8507&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;2&lt;br /&gt;&lt;/td&gt;&lt;td bgcolor="#eeeeee"&gt;&lt;a href="http://blogs.msdn.com/ricom/"&gt;Performance Tidbits&lt;/a&gt; Rico Mariani&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;5&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;113248&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;31&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;16924&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;3&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.testingreflections.com/blog/74"&gt;Scott Barber's blog&lt;/a&gt; Scott Barber&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;4&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;72223&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;19683&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;4&lt;br /&gt;&lt;/td&gt;&lt;td bgcolor="#eeeeee"&gt;&lt;a href="http://www.kohl.ca/blog/"&gt;Collaborative Software Testing&lt;/a&gt; Jonathan Kohl&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;5&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;404815&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;8838&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;5&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.satisfice.com/kaner/"&gt;Cem Kaner's blog&lt;/a&gt; Cem Kaner&lt;/td&gt;&lt;td style="text-align: center;"&gt;5&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;5077&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;6&lt;br /&gt;&lt;/td&gt;&lt;td bgcolor="#eeeeee"&gt;&lt;a href="http://agiletesting.blogspot.com/"&gt;Agile Testing&lt;/a&gt; Grig Gheorghiu&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;5&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;315063&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;205275&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;56&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;4393&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;7&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.satisfice.com/blog/"&gt;James Bach’s blog&lt;/a&gt; James Bach&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;4&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;164842&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;44&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;14020&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;8&lt;br /&gt;&lt;/td&gt;&lt;td bgcolor="#eeeeee"&gt;&lt;a href="http://xndev.blogspot.com/"&gt;Creative Chaos&lt;/a&gt; Matthew Heusser&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;5&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;2306703&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;373134&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;54&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;7655&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;9&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.advancedqtp.com/"&gt;Advanced QTP&lt;/a&gt; (various)&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;4&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;620947&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;722230&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;79&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;8585&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;10&lt;br /&gt;&lt;/td&gt;&lt;td bgcolor="#eeeeee"&gt;&lt;a href="http://coreygoldberg.blogspot.com/"&gt;Corey Goldberg's   blog&lt;/a&gt; Corey Goldberg&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;4&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;1282348&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;256345&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;142&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;3244&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;11&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://blogs.msdn.com/micahel/"&gt;The Braidy Tester&lt;/a&gt; Michael J Hunter&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;5&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;437554&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;17&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;4692&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;12&lt;br /&gt;&lt;/td&gt;&lt;td bgcolor="#eeeeee"&gt;&lt;a href="http://testertested.blogspot.com/"&gt;Tester Tested!&lt;/a&gt; Pradeep Soundararajan&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;4&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;1195245&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;770942&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;99&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;3810&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;13&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.wilsonmar.com/"&gt;WilsonMar.com&lt;/a&gt; Wilson Mar&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;4&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;164760&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;512788&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;1431&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;14&lt;br /&gt;&lt;/td&gt;&lt;td bgcolor="#eeeeee"&gt;&lt;a href="http://www.io.com/%7Ewazmo/blog/"&gt;Testing Hotlist Update&lt;/a&gt; Bret Pettichord&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;4&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;1657484&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;446540&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;11&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;7487&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;15&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://testobsessed.com/"&gt;Test Obsessed&lt;/a&gt; Elisabeth Hendrickson&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;5&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;3148166&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;351547&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;6&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;2493&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;16&lt;br /&gt;&lt;/td&gt;&lt;td bgcolor="#eeeeee"&gt;&lt;a href="http://www.myloadtest.com/"&gt;My Load Test&lt;/a&gt; Stuart Moncrieff&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;4&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;1009095&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;553587&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;921&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;17&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://geekswithblogs.net/tmoore/"&gt;Theo Moore's blog&lt;/a&gt; Theo Moore&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;3&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;804025&lt;/td&gt;&lt;td style="text-align: center;"&gt;32&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;9155&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;18&lt;br /&gt;&lt;/td&gt;&lt;td bgcolor="#eeeeee"&gt;&lt;a href="http://shrinik.blogspot.com/"&gt;Thinking Tester&lt;/a&gt; Shrini Kulkarni&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;4&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;1427381&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;1052395&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;30&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;3482&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;19&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.developsense.com/blog.html"&gt;Observations on   software testing and quality&lt;/a&gt; Michael Bolton&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;4&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;1038615&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;11&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;3653&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;20&lt;br /&gt;&lt;/td&gt;&lt;td bgcolor="#eeeeee"&gt;&lt;a href="http://adam.goucher.ca/"&gt;Quality through   Innovation&lt;/a&gt; Adam Goucher&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;4&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;8063489&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;722230&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;11&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;3973&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;21&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://motevich.blogspot.com/"&gt;Easy way to   automate testing&lt;/a&gt; Dmitry Motevich&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;3&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;675427&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;1038615&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;131&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;503&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;22&lt;br /&gt;&lt;/td&gt;&lt;td bgcolor="#eeeeee"&gt;&lt;a href="http://software-testing-zone.blogspot.com/"&gt;Software Testing Zone&lt;/a&gt; Debasis Pradhan&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;3&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;760191&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;906103&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;14&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;1461&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;23&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://blogs.msdn.com/james_whittaker/"&gt;JW on Test&lt;/a&gt; James Whittaker&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;3&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;71&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;1027&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;24&lt;br /&gt;&lt;/td&gt;&lt;td bgcolor="#eeeeee"&gt;&lt;a href="http://www.testingreflections.com/blog/55"&gt;Mike Kelly's blog&lt;/a&gt; Mike Kelly&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;4&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;1038615&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;1&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;2757&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;25&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.questioningsoftware.com/"&gt;Questioning Software&lt;/a&gt; Ben Simo&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;5&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;4064149&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;1285236&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;4&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;1679&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;26&lt;br /&gt;&lt;/td&gt;&lt;td bgcolor="#eeeeee"&gt;&lt;a href="http://testinglondon.wordpress.com/"&gt;London software testing news&lt;/a&gt; (various)&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;4&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;2598600&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;2593630&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;3&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;1937&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;27&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://mercuryquicktestprofessional.blogspot.com/"&gt;Ankur Jain's blog&lt;/a&gt; Ankur Jain&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;2&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;478294&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;655996&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;9&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;281&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;28&lt;br /&gt;&lt;/td&gt;&lt;td bgcolor="#eeeeee"&gt;&lt;a href="http://testingjeff.wordpress.com/"&gt;Jeff Fry on Testing&lt;/a&gt; Jeff Fry&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;4&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;11028482&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;1214675&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;7&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;1565&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;29&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.softwareinquisition.com/"&gt;The Software Inquisition&lt;/a&gt; (various)&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;3&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;1449194&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;1214675&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;7&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;886&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;30&lt;br /&gt;&lt;/td&gt;&lt;td bgcolor="#eeeeee"&gt;&lt;a href="http://www.90kts.com/blog/"&gt;90kts&lt;/a&gt; Tim Koopmans&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;2&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;1648922&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;600724&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;5&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;63&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;31&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.testthisblog.com/"&gt;Test this Blog&lt;/a&gt; Eric Jacobson&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;3&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;9632080&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;3324847&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;27&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;716&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;32&lt;br /&gt;&lt;/td&gt;&lt;td bgcolor="#eeeeee"&gt;&lt;a href="http://abouttesting.blogspot.com/"&gt;Stefan Thelenius about Software Testing&lt;/a&gt;&lt;br /&gt;Stefan Thelenius&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;3&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;5716662&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;1867832&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;5&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;916&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;33&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://loadrunnertnt.com/"&gt;LoadRunner Tips and Tricks&lt;/a&gt; Hwee Seong Tan&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;0&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;2422241&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;1214675&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;24&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;478&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;34&lt;br /&gt;&lt;/td&gt;&lt;td bgcolor="#eeeeee"&gt;&lt;a href="http://quicktestprofessional.wordpress.com/"&gt;QuickTest Pro&lt;/a&gt; Mohan Kumar Kakarla&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;3&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;1884598&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;1211403&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;1&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;91&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;35&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://knowledgeinbox.com/"&gt;KnowledgeInbox&lt;/a&gt; Tarun Lalwani&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;2&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;1165000&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;121&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;36&lt;br /&gt;&lt;/td&gt;&lt;td bgcolor="#eeeeee"&gt;&lt;a href="http://www.testingreflections.com/blog/67"&gt;Alexander Podelko's blog&lt;/a&gt; Alexander Podelko&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;3&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;490&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;37&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.performanceengineer.com/blog/"&gt;Software Performance Engineering &amp;amp; Testing&lt;/a&gt; Charlie Weiblen&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;3&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;5451220&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;4978471&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;152&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;38&lt;br /&gt;&lt;/td&gt;&lt;td bgcolor="#eeeeee"&gt;&lt;a href="http://software-testing-blog.blogspot.com/"&gt;Software Testing Blog&lt;/a&gt; Unknown&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;2&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;2712832&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;2593630&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;430&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;39&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://automated-chaos.blogspot.com/"&gt;Automated Chaos&lt;/a&gt; Bas M. Dam&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;2&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;5130521&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;"&gt;148&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;40&lt;br /&gt;&lt;/td&gt;&lt;td bgcolor="#eeeeee"&gt;&lt;a href="http://www.automatedwebtest.info/"&gt;Automated Web Test&lt;/a&gt; Meena&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;2&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;7702460&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;4697735&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;2&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center;" bgcolor="#eeeeee"&gt;144&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;Note: You can download raw statistic of this list &lt;a href="http://motevich0308.googlepages.com/TopAutomatedTestingBlogs.zip"&gt;here&lt;/a&gt;. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I know for sure - authors of these blogs did an excellent job. Thank you very much!&lt;br /&gt;&lt;br /&gt;&lt;img style="border: medium none ; margin: 0pt 10px 10px 0pt; float: left;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrVlXjUV0E4s2H7XJOy-MhqNevxdOOHAtVPMu2bLpzfDZk6M-YRlirNGVsORXejTluSihJymxSRdSarg8uV-171AqQLNPiCs1qguqGT-z7vbt1CKsiJ-XOHnaVy9cGdVF2ovdishdmKbI/" /&gt;&lt;span style="font-weight: bold;"&gt;Note:&lt;/span&gt; I understand that nothing is constant. And this list of Automated Testing Blogs should be updated periodically. Also I'm sure that some cool blogs are not present on this list.&lt;br /&gt;&lt;br /&gt;That's why I need to know your opinions. Do you have something to add? Please share.&lt;br /&gt;&lt;br /&gt;Dear reader, do you have interesting ideas for such future lists, surveys, actions? What posts would you like to see here? Let  me know please.&lt;br /&gt;My email is: &lt;img style="border: medium none ; position: absolute; width: 153px; height: 15px;" src="http://lh3.ggpht.com/mangazey/SOEnGH9pgQI/AAAAAAAAA1o/5wy7BypPrOw/my_email4.gif" alt="Dmitry Motevich's email" /&gt;&lt;br /&gt;&lt;br /&gt;--&lt;br /&gt;Dmitry Motevich&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Related articles:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2009/01/qtp-sites-blogs-groups-forums.html"&gt;15 QTP sites/blogs/groups/forums&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/06/10-steps-to-become-qtp-guru.html"&gt;10 steps to become QTP guru&lt;/a&gt;&lt;/li&gt;&lt;li style="font-weight: bold;"&gt;&lt;a href="http://motevich.blogspot.com/2008/01/qtp-tutorials.html"&gt;All QTP tutorials&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://motevich.blogspot.com/2008/01/loadrunner-tutorials.html"&gt;All LoadRunner tutorials&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;I recommend to subscribe to my blog and you will receive updates automatically.&lt;br /&gt;You can subscribe to this &lt;a href="http://feeds.feedburner.com/motevich"&gt;blog RSS feed&lt;/a&gt; or &lt;a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=1890249&amp;amp;loc=en_US"&gt;by Email&lt;/a&gt;. (&lt;a href="http://motevich.blogspot.com/2008/04/how-to-subscribe-to-my-blog.html"&gt;How to subscribe? Video guide&lt;/a&gt;)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;Would you like to publish this &lt;span style="font-weight: bold;"&gt;Top 40 Automated Testing Blogs List&lt;/span&gt; on your site or blog?&lt;br /&gt;Please know that &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;a href="http://motevich.blogspot.com/2008/09/free-use-copy-publish-blog-materials.html"&gt;you are free to use/copy/publish all my materials&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;</description><link>http://motevich.blogspot.com/2008/11/top-40-automated-testing-blogs.html</link><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOFAz6y5wY6mlGvSjJXjbayNMYJarEQyq7GdemOdGwv7qVebv_2itVNk0TgWhB2j6jyvXb-yeq8jn0t3pPV5MHJRETMdZH0dFRb2nKTjSpJHO0_W6I44y-bJNwWeSCW8cJAWk6_1pQQLk/s72-c" width="72"/><thr:total>10</thr:total><author>noreply@blogger.com (http://motevich.blogspot.com)</author><enclosure length="20696" type="application/octet-stream; charset=UTF-8" url="http://motevich0308.googlepages.com/TopAutomatedTestingBlogs.zip"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3154230739686508173.post-5875374276499034753</guid><pubDate>Tue, 11 Nov 2008 19:01:00 +0000</pubDate><atom:updated>2009-10-19T23:04:08.618+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Automated testing</category><category domain="http://www.blogger.com/atom/ns#">Correlation</category><category domain="http://www.blogger.com/atom/ns#">LoadRunner</category><category domain="http://www.blogger.com/atom/ns#">Video</category><category domain="http://www.blogger.com/atom/ns#">visual tutorials</category><title>Manual Correlation in LoadRunner - Video</title><description>In previous LoadRunner video (&lt;a href="http://motevich.blogspot.com/2008/11/automated-correlation-in-loadrunner.html"&gt;Automated Correlation in LoadRunner&lt;/a&gt;) I shown how to use Automated Correlation. The present LoadRunner video explains &lt;span style="font-weight: bold;"&gt;how to manually correlate dynamic values&lt;/span&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;How to find dynamic values in a server response&lt;/li&gt;&lt;li&gt;How to correlate them in LoadRunner&lt;/li&gt;&lt;li&gt;How to verify the correlation&lt;/li&gt;&lt;/ul&gt;There is a screenshot from the present LoadRunner video:&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6wM-Y6HYeU2EqBIsJbNtn742EMgbsFoVfPNEoBdyRm46RlPYDQc469CBuIbUQTO7upEe9MluUNtRodxBfmOmXe7RHWlOsrDC2ZcootEzNeBGYGGrsXzPauCbANcH7LjoCmdds_WCzmY4/" alt="Manual Correlation in LoadRunner" /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Manual Correlation in LoadRunner&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt; - Video&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;div style="text-align: center;"&gt;&lt;embed src="http://blip.tv/play/AdmueQA" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="390"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-weight: bold;"&gt;Related articles:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/11/automated-correlation-in-loadrunner.html"&gt;Automated Correlation in LoadRunner - Video tutorial&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2007/10/loadrunner-scripts-correlation-tutorial.html"&gt;Using Correlation in LoadRunner scripts - visual tutorial&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2007/11/loadrunner-correlation-dynamic-data.html"&gt;LoadRunner Correlation - Capturing of dynamic data &lt;/a&gt;&lt;a href="http://motevich.blogspot.com/2007/11/loadrunner-correlation-dynamic-data.html"&gt;array &lt;/a&gt;&lt;a href="http://motevich.blogspot.com/2007/11/loadrunner-correlation-dynamic-data.html"&gt;with web_reg_save_param&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2007/11/loadrunner-webregsaveparam-boundaries.html"&gt;How to select correct boundaries for web_reg_save_param function&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://motevich.blogspot.com/2008/01/loadrunner-tutorials.html"&gt;All LoadRunner visual tutorials&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Do you like these &lt;span style="font-weight: bold;"&gt;LoadRunner video&lt;/span&gt;? Would you like to receive them in the future?&lt;br /&gt;If yes, please subscribe to this &lt;a href="http://feeds.feedburner.com/motevich"&gt;blog RSS feed&lt;/a&gt; or &lt;a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=1890249&amp;amp;loc=en_US"&gt;by Email&lt;/a&gt;. (&lt;a href="http://motevich.blogspot.com/2008/04/how-to-subscribe-to-my-blog.html"&gt;How to subscribe? Video guide&lt;/a&gt;)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;Do you &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;know that &lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;a href="http://motevich.blogspot.com/2008/09/free-use-copy-publish-blog-materials.html"&gt;you are free to use/copy/publish all my materials&lt;/a&gt; on your site/blog?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;    &lt;span class="post-author vcard"&gt; &lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</description><link>http://motevich.blogspot.com/2008/11/manual-correlation-in-loadrunner.html</link><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6wM-Y6HYeU2EqBIsJbNtn742EMgbsFoVfPNEoBdyRm46RlPYDQc469CBuIbUQTO7upEe9MluUNtRodxBfmOmXe7RHWlOsrDC2ZcootEzNeBGYGGrsXzPauCbANcH7LjoCmdds_WCzmY4/s72-c" width="72"/><thr:total>8</thr:total><author>noreply@blogger.com (http://motevich.blogspot.com)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3154230739686508173.post-5129666871172781220</guid><pubDate>Thu, 06 Nov 2008 16:14:00 +0000</pubDate><atom:updated>2009-10-19T23:03:56.439+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Automated testing</category><category domain="http://www.blogger.com/atom/ns#">Correlation</category><category domain="http://www.blogger.com/atom/ns#">LoadRunner</category><category domain="http://www.blogger.com/atom/ns#">Video</category><category domain="http://www.blogger.com/atom/ns#">visual tutorials</category><title>Automated Correlation in LoadRunner - Video</title><description>Correlation is a key concept of HP LoadRunner. The present LoadRunner video tutorial explains &lt;span style="font-weight: bold;"&gt;how to correlate dynamic values in LoadRunner automatically&lt;/span&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;How to find dynamic values to be correlated&lt;/li&gt;&lt;li&gt;How to compare recorded &amp;amp; replayed dynamic values&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How to correlate them in LoadRunner&lt;/li&gt;&lt;li&gt;How to verify correlation&lt;/li&gt;&lt;/ul&gt;There is a screenshot from the present LoadRunner video:&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9ISuuuSrtmIjCWOMGT5cun809ZpYFf2uZtBrIsZMzzxKF1VHoDf75G5Io3GNr5I_nLadHUHHFlZkDY1TU0m_UMifSwpRLArjDl0Vhcy4YKeI-A8VoSMNp6dJlC8X_pMNyqJd2Q6j9EXs/" alt="Different server responses" /&gt;&lt;br /&gt;Also, this LoadRunner video explains concepts of Correlation and how Correlation works.&lt;br /&gt;Video tutorial demonstrates &lt;span style="font-weight: bold;"&gt;LoadRunner Correlation&lt;/span&gt; by the example of HP Web Tours application, which is shipped with LoadRunner. So, you can repeat and learn all shown actions yourself.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Automated Correlation in LoadRunner&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt; - Video&lt;/span&gt;&lt;br /&gt;&lt;embed src="http://blip.tv/play/AdieIgA" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="390"&gt;&lt;/embed&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-weight: bold;"&gt;Related articles:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/11/manual-correlation-in-loadrunner.html"&gt;Manual Correlation in LoadRunner - Video tutorial&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2007/10/loadrunner-scripts-correlation-tutorial.html"&gt;Using Correlation in LoadRunner scripts - visual tutorial&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/10/loadrunner-video-capture-web-page.html"&gt;LoadRunner video tutorial - How to capture the content of Web page&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;a href="http://motevich.blogspot.com/2007/11/loadrunner-correlation-dynamic-data.html"&gt;LoadRunner Correlation - Capturing of dynamic data &lt;/a&gt;&lt;a href="http://motevich.blogspot.com/2007/11/loadrunner-correlation-dynamic-data.html"&gt;array &lt;/a&gt;&lt;a href="http://motevich.blogspot.com/2007/11/loadrunner-correlation-dynamic-data.html"&gt;with web_reg_save_param&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/08/loadrunner-video-tutorial-parameter-3.html"&gt;LoadRunner video - Parameters part3 ('Select next row' = 'Unique')&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://motevich.blogspot.com/2008/01/loadrunner-tutorials.html"&gt;All LoadRunner visual tutorials&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Do you like these &lt;span style="font-weight: bold;"&gt;LoadRunner video&lt;/span&gt;? Would you like to receive them in the future?&lt;br /&gt;If yes, please subscribe to this &lt;a href="http://feeds.feedburner.com/motevich"&gt;blog RSS feed&lt;/a&gt; or &lt;a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=1890249&amp;amp;loc=en_US"&gt;by Email&lt;/a&gt;. (&lt;a href="http://motevich.blogspot.com/2008/04/how-to-subscribe-to-my-blog.html"&gt;How to subscribe? Video guide&lt;/a&gt;)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;Do you &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;know that &lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;a href="http://motevich.blogspot.com/2008/09/free-use-copy-publish-blog-materials.html"&gt;you are free to use/copy/publish all my materials&lt;/a&gt; on your site/blog?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;</description><link>http://motevich.blogspot.com/2008/11/automated-correlation-in-loadrunner.html</link><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9ISuuuSrtmIjCWOMGT5cun809ZpYFf2uZtBrIsZMzzxKF1VHoDf75G5Io3GNr5I_nLadHUHHFlZkDY1TU0m_UMifSwpRLArjDl0Vhcy4YKeI-A8VoSMNp6dJlC8X_pMNyqJd2Q6j9EXs/s72-c" width="72"/><thr:total>16</thr:total><author>noreply@blogger.com (http://motevich.blogspot.com)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3154230739686508173.post-4224352117000157815</guid><pubDate>Sat, 25 Oct 2008 17:21:00 +0000</pubDate><atom:updated>2009-10-19T23:03:44.541+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Automated testing</category><category domain="http://www.blogger.com/atom/ns#">LoadRunner</category><category domain="http://www.blogger.com/atom/ns#">Video</category><category domain="http://www.blogger.com/atom/ns#">visual tutorials</category><title>LoadRunner video - How to check manually a downloaded file</title><description>Do you know how to check that file or page was downloaded successfully in LoadRunner?&lt;br /&gt;The present &lt;span style="font-weight: bold;"&gt;LoadRunner video tutorial&lt;/span&gt; explains how to do that. All you need is to check LoadRunner snapshot files (inf-files) located in LoadRunner script folder:&lt;br /&gt;&lt;img style="border: medium none ; margin: 0px auto 10px; display: block; text-align: center;" src="http://lh3.ggpht.com/mangazey/SQNP5Bu79cI/AAAAAAAAA3M/g55uqgeAIPg/1_files_c.gif" alt="LoadRunner script files" /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;LoadRunner video - &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;How to check manually a downloaded file&lt;/span&gt;&lt;br /&gt;&lt;embed src="http://blip.tv/play/AdXRFAA" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="390"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-weight: bold;"&gt;Related articles:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/04/loadrunner-how-to-record-pdf-file.html"&gt;How to record PDF file saving - &lt;/a&gt;&lt;a href="http://motevich.blogspot.com/2008/04/loadrunner-how-to-record-pdf-file.html"&gt;LoadRunner video&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/10/loadrunner-video-capture-web-page.html"&gt;LoadRunner video - How to capture the whole Web page&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2007/10/loadrunner-save-download-file-server.html"&gt;LoadRunner script - How to download file from server?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://motevich.blogspot.com/2008/01/loadrunner-tutorials.html"&gt;All LoadRunner visual tutorials&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Do you like this &lt;span style="font-weight: bold;"&gt;LoadRunner video tutorial&lt;/span&gt;? Would you like to receive them in the future?&lt;br /&gt;If yes, please subscribe to this &lt;a href="http://feeds.feedburner.com/motevich"&gt;blog RSS feed&lt;/a&gt; or &lt;a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=1890249&amp;amp;loc=en_US"&gt;by Email&lt;/a&gt;. (&lt;a href="http://motevich.blogspot.com/2008/04/how-to-subscribe-to-my-blog.html"&gt;How to subscribe? Video guide&lt;/a&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;Do you &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;know that &lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;a href="http://motevich.blogspot.com/2008/09/free-use-copy-publish-blog-materials.html"&gt;you are free to use/copy/publish all my materials&lt;/a&gt; on your site/blog?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;</description><link>http://motevich.blogspot.com/2008/10/check-downloaded-file-loadrunner-video.html</link><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="http://lh3.ggpht.com/mangazey/SQNP5Bu79cI/AAAAAAAAA3M/g55uqgeAIPg/s72-c/1_files_c.gif" width="72"/><thr:total>3</thr:total><author>noreply@blogger.com (http://motevich.blogspot.com)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3154230739686508173.post-6031149310698578556</guid><pubDate>Thu, 09 Oct 2008 23:07:00 +0000</pubDate><atom:updated>2009-10-19T23:03:18.090+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Automated testing</category><category domain="http://www.blogger.com/atom/ns#">LoadRunner</category><category domain="http://www.blogger.com/atom/ns#">Video</category><category domain="http://www.blogger.com/atom/ns#">visual tutorials</category><title>LoadRunner video - How to capture the whole Web page?</title><description>This LoadRunner video tutorial shows &lt;span style="font-weight: bold;"&gt;how to capture Web page&lt;/span&gt;.&lt;br /&gt;Using this approach, you can get HTML source code of any Web page and then downloade it to a local file.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;LoadRunner video - How to capture the whole Web page?&lt;/span&gt;&lt;br /&gt;&lt;embed src="http://blip.tv/play/AdPRNQA" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="390"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;There is a final LR script for capturing and saving Web page:&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;int&lt;/span&gt; hFile;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;char&lt;/span&gt; *szFileName = &lt;span style="color: rgb(51, 153, 153);"&gt;"c:\\page.html"&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:Green;"&gt;//Mark that we will capture the whole body of Web page&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;//Note: Mark that &lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;web_reg_save_param should be placed *before* web_url&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;web_reg_save_param&lt;/span&gt;(&lt;span style="color: rgb(51, 153, 153);"&gt;"prmPage"&lt;/span&gt;, &lt;span style="color: rgb(51, 153, 153);"&gt;"LB="&lt;/span&gt;, &lt;span style="color: rgb(51, 153, 153);"&gt;"RB="&lt;/span&gt;, &lt;span style="color: rgb(51, 153, 153);"&gt;"Search=Body"&lt;/span&gt;, &lt;span style="color: rgb(51, 153, 153);"&gt;"RelFrameID=1"&lt;/span&gt;, &lt;span style="color: rgb(51, 51, 255);"&gt;LAST&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;web_url&lt;/span&gt;(&lt;span style="color: rgb(51, 153, 153);"&gt;"labs.google.com"&lt;/span&gt;,&lt;span style="color: rgb(102, 51, 51);"&gt; &lt;span style="color: rgb(0, 204, 204);"&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;"URL=http://labs.google.com/&lt;/span&gt;"&lt;/span&gt;&lt;/span&gt;, &lt;span style="color: rgb(51, 51, 255);"&gt;LAST&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&lt;span style="color:Green;"&gt;//Web page has been captured, so print it out&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 51);"&gt; lr_output_message&lt;/span&gt;(&lt;span style="color: rgb(51, 153, 153);"&gt;"Page is: \r\n%s"&lt;/span&gt;, &lt;span style="color: rgb(102, 51, 51);"&gt;lr_eval_string&lt;/span&gt;(&lt;span style="color: rgb(51, 153, 153);"&gt;"{prmPage}"&lt;/span&gt;));&lt;br /&gt;&lt;br /&gt;&lt;span style="color:Green;"&gt;//Truncate to zero length or create file for writing.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;if&lt;/span&gt; ((hFile = fopen(szFileName, &lt;span style="color: rgb(51, 153, 153);"&gt;"wb"&lt;/span&gt;)) == &lt;span style="color: rgb(51, 51, 255);"&gt;NULL&lt;/span&gt;)&lt;br /&gt;{&lt;br /&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lr_error_message&lt;/span&gt;(&lt;span style="color: rgb(51, 153, 153);"&gt;"Cannot open %s"&lt;/span&gt;, szFileName);&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return LR_FAIL&lt;/span&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:Green;"&gt;&lt;/span&gt;&lt;span style="color:Green;"&gt;//Write &lt;/span&gt;&lt;span style="color:Green;"&gt;captured Web page &lt;/span&gt;&lt;span style="color:Green;"&gt;to an output file&lt;/span&gt;&lt;br /&gt;fprintf(hFile, &lt;span style="color: rgb(51, 153, 153);"&gt;"%s"&lt;/span&gt;, &lt;span style="color: rgb(102, 51, 51);"&gt;lr_eval_string&lt;/span&gt;(&lt;span style="color: rgb(51, 153, 153);"&gt;"{prmPage}"&lt;/span&gt;));&lt;br /&gt;&lt;span style="color:Green;"&gt;&lt;br /&gt;//Close the file pointer.&lt;/span&gt;&lt;br /&gt;fclose(hFile);&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-weight: bold;"&gt;Related articles:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/04/loadrunner-how-to-record-pdf-file.html"&gt;How to record PDF file saving - &lt;/a&gt;&lt;a href="http://motevich.blogspot.com/2008/04/loadrunner-how-to-record-pdf-file.html"&gt;LoadRunner video&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/02/loadrunner-webregfind-function-verify.html"&gt;web_reg_find - How to verify web page content?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2007/11/loadrunner-webregsaveparam-boundaries.html"&gt;How to select correct boundaries for web_reg_save_param LoadRunner function?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://motevich.blogspot.com/2008/01/loadrunner-tutorials.html"&gt;All LoadRunner visual tutorials&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Do you like this &lt;span style="font-weight: bold;"&gt;LoadRunner video tutorial&lt;/span&gt;? Would you like to receive them in the future?&lt;br /&gt;If yes, please subscribe to this &lt;a href="http://feeds.feedburner.com/motevich"&gt;blog RSS feed&lt;/a&gt; or &lt;a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=1890249&amp;amp;loc=en_US"&gt;by Email&lt;/a&gt;. (&lt;a href="http://motevich.blogspot.com/2008/04/how-to-subscribe-to-my-blog.html"&gt;How to subscribe? VIDEO guide&lt;/a&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;</description><link>http://motevich.blogspot.com/2008/10/loadrunner-video-capture-web-page.html</link><thr:total>3</thr:total><author>noreply@blogger.com (http://motevich.blogspot.com)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3154230739686508173.post-4106196473969063412</guid><pubDate>Sun, 28 Sep 2008 04:13:00 +0000</pubDate><atom:updated>2009-10-19T23:03:06.585+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Automated testing</category><title>Call for votes - Top Automated Software Testing Blogs</title><description>&lt;img style="border: medium none ; margin: 0pt 10px 10px 0pt; float: left;" src="http://lh4.ggpht.com/mangazey/SOEaHAS6Q_I/AAAAAAAAA1g/8TAn1j3Po3s/vote.gif" /&gt;Today I've decided to create a &lt;span style="font-weight: bold;"&gt;list of best &amp;amp; recommended Automated Software Testing Blogs&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;It will be extremely useful for every engineer or manager working in QA field and in automated testing especially.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;How the list of blogs will be created?&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;I think, the best way is to ask persons who work in automated software testing. I mean you, my readers!&lt;br /&gt;That's why I ask your help, dear readers.&lt;br /&gt;Your vote is important! Please, email me URLs of your favorite and most valuable blogs on automated testing.&lt;br /&gt;My email is: &lt;img style="border: medium none ; position: absolute; width: 153px; height: 15px;" src="http://lh3.ggpht.com/mangazey/SOEnGH9pgQI/AAAAAAAAA1o/5wy7BypPrOw/my_email4.gif" alt="Dmitry Motevich's email" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;What blogs can participate?&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;Blogs can contain any information related to automated testing:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;working with automated testing tools&lt;/li&gt;&lt;li&gt;test automation frameworks&lt;/li&gt;&lt;li&gt;automated testing approaches anf methodologies&lt;br /&gt;&lt;/li&gt;&lt;li&gt;tips, tricks, experience&lt;/li&gt;&lt;li&gt;etc.&lt;/li&gt;&lt;/ul&gt;Please, pay attention, that only &lt;span style="font-weight: bold;"&gt;blogs&lt;/span&gt; can participate in the present poll.&lt;br /&gt;I will create separate lists for automated testing sites, forums etc.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;What are criteria to include blog into the list?&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;I will use these criteria to select most popular automated software testing blogs:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/PageRank"&gt;Google PageRank&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.alexa.com/site/help/traffic_learn_more"&gt;Alexa Rank&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Number of RSS/Email readers (if available)&lt;/li&gt;&lt;li&gt;Number of comments&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Opinion of &lt;a href="http://en.wikipedia.org/wiki/Tarot_cards"&gt;tarot cards&lt;/a&gt; :) &lt;a href="http://en.wikipedia.org/wiki/Tarot_cards"&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;What is a deadline for blogs submitting?&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;The deadline is an &lt;span style="font-weight: bold;"&gt;end of October 2008&lt;/span&gt;. So, please hurry up :)&lt;br /&gt;I plan to create the final list of &lt;span&gt;Automated Software Testing Blogs &lt;/span&gt;in &lt;span style="font-weight: bold;"&gt;early November 2008&lt;/span&gt; and publish it on my blog.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Update:&lt;/span&gt; &lt;a href="http://motevich.blogspot.com/2008/11/top-40-automated-testing-blogs.html"&gt;Top 40 Automated Testing Blogs&lt;/a&gt; created :) Thank you very much!&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;Do you &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;know that &lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;a href="http://motevich.blogspot.com/2008/09/free-use-copy-publish-blog-materials.html"&gt;you are free to use/copy/publish all my materials&lt;/a&gt; on your site/blog?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;</description><link>http://motevich.blogspot.com/2008/09/call-votes-top-automated-testing-blogs.html</link><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="http://lh4.ggpht.com/mangazey/SOEaHAS6Q_I/AAAAAAAAA1g/8TAn1j3Po3s/s72-c/vote.gif" width="72"/><thr:total>5</thr:total><author>noreply@blogger.com (http://motevich.blogspot.com)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3154230739686508173.post-6768251211550577846</guid><pubDate>Sat, 27 Sep 2008 10:34:00 +0000</pubDate><atom:updated>2009-10-19T23:02:53.729+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Automated testing</category><category domain="http://www.blogger.com/atom/ns#">QTP</category><category domain="http://www.blogger.com/atom/ns#">visual tutorials</category><title>How to update XML file from QTP</title><description>In previous &lt;span style="font-weight: bold;"&gt;QTP tutorial&lt;/span&gt; I shown &lt;a href="http://motevich.blogspot.com/2008/09/how-to-read-xml-file-from-qtp_08.html"&gt;how QTP can read data from XML file&lt;/a&gt;.&lt;br /&gt;Today I will explain &lt;span style="font-weight: bold;"&gt;how to update XML data from QTP&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;We will use this XML file:&lt;br /&gt;&lt;img style="border: medium none ; margin: 0px auto 10px; display: block; text-align: center;" src="http://lh3.ggpht.com/mangazey/SMLnfkjGM2I/AAAAAAAAAws/kWSzz5qLImY/01_XMLData_c.gif" alt="Initial XML file" /&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;Note: You can download this XML file &lt;a href="http://motevich0308.googlepages.com/TestData.xml"&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Let's check how to update different values in above XML file:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;How to rename the title of first book?&lt;/span&gt;&lt;br /&gt;The QTP script is:&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240);"&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;Const&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; XMLDataFile = &lt;span style="color: rgb(102, 51, 51);"&gt;"C:\TestData.xml"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Const &lt;/span&gt;XMLNewFile = &lt;span style="color: rgb(102, 51, 51);"&gt;"C:\TestData2.xml"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Set &lt;/span&gt;xmlDoc = &lt;span style="color: rgb(0, 0, 153);"&gt;CreateObject&lt;/span&gt;(&lt;span style="color: rgb(102, 51, 51);"&gt;"Microsoft.XMLDOM"&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;xmlDoc.Async = &lt;span style="color: rgb(0, 0, 153);"&gt;False&lt;/span&gt;&lt;/span&gt;    &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;xmlDoc.Load(XMLDataFile)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;' update the title of the first book&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Set &lt;/span&gt;node = xmlDoc.SelectSingleNode(&lt;span style="color: rgb(102, 51, 51);"&gt;"/bookstore/book[0]/title"&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;node.Text = &lt;span style="color: rgb(102, 51, 51);"&gt;"Romeo and Juliet - Salvation"&lt;/span&gt;&lt;/span&gt;        &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;&lt;br /&gt;&lt;br /&gt;' save changes&lt;/span&gt;    &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;xmlDoc.Save(XMLNewFile)&lt;/span&gt;&lt;/div&gt;And the result is:&lt;br /&gt;&lt;img style="border: medium none ; margin: 0px auto 10px; display: block; text-align: center;" src="http://lh4.ggpht.com/mangazey/SNzd6L135EI/AAAAAAAAA0U/8OrwAsksawU/1__.gif" /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Note:&lt;/span&gt; The numeration begins from zero. That's why I use &lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;book[0] &lt;/span&gt;&lt;/span&gt;to access &lt;span style="font-weight: bold;"&gt;first&lt;/span&gt; item.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;How to change the year of second book?&lt;br /&gt;&lt;/span&gt;I skip the opening and saving of XML file (see above QTP script). I show only the essence:&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240);"&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;' update the attribute of the second book&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Set &lt;/span&gt;node = xmlDoc.SelectSingleNode(&lt;span style="color: rgb(102, 51, 51);"&gt;"/bookstore/book[1]/title/@published"&lt;/span&gt;)&lt;/span&gt;    &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;node.Text = &lt;span style="color: rgb(102, 51, 51);"&gt;"2009"&lt;/span&gt;&lt;/span&gt;        &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;And the result is:&lt;br /&gt;&lt;img style="border: medium none ; margin: 0px auto 10px; display: block; text-align: center;" src="http://lh3.ggpht.com/mangazey/SNz8L9D_KYI/AAAAAAAAA0c/J9A6N9a3jeg/2__.gif" /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Note:&lt;/span&gt; Use &lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;@&lt;/span&gt;&lt;/span&gt; to access an attribute of XML node.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;How to add new author add its new attribute?&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;&lt;br /&gt;&lt;/span&gt;QTP script:&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240);"&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;' select a parent node&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Set &lt;/span&gt;parentNode = xmlDoc.SelectSingleNode(&lt;span style="color: rgb(102, 51, 51);"&gt;"/bookstore/book[2]"&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;' add a new author&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Set &lt;/span&gt;newNode = xmlDoc.CreateElement(&lt;span style="color: rgb(102, 51, 51);"&gt;"author&lt;/span&gt;")&lt;br /&gt;newNode.Text = &lt;span style="color: rgb(102, 51, 51);"&gt;"Mr. Noname"&lt;/span&gt;&lt;br /&gt;parentNode.AppendChild (newNode)&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;And the result is:&lt;br /&gt;&lt;img style="border: medium none ; margin: 0px auto 10px; display: block; text-align: center;" src="http://lh6.ggpht.com/mangazey/SN0BmV1DNzI/AAAAAAAAA0k/nlqTt6zivwc/3__.gif" /&gt;As you can see, we've added &lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;"Mr. Noname" &lt;/span&gt;&lt;/span&gt;as the new author.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;How to add new attribute for author (XML node)?&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;&lt;br /&gt;&lt;/span&gt;QTP script:&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;' select a parent node&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Set &lt;/span&gt;parentNode = xmlDoc.SelectSingleNode(&lt;span style="color: rgb(102, 51, 51);"&gt;"/bookstore/book[2]"&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;' add its attribute&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Set &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;newAttrib = xmlDoc.CreateAttribute(&lt;span style="color: rgb(102, 51, 51);"&gt;"bestseller"&lt;/span&gt;)&lt;br /&gt;newAttrib.Text = &lt;span style="color: rgb(102, 51, 51);"&gt;"yes"&lt;/span&gt;&lt;br /&gt;parentNode.Attributes.SetNamedItem(newAttrib)&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;The result is:&lt;br /&gt;&lt;img style="border: medium none ; margin: 0px auto 10px; display: block; text-align: center;" src="http://lh3.ggpht.com/mangazey/SN0DFVQs7aI/AAAAAAAAA0s/N0yCWldwgog/4__.gif" /&gt;New attribute of a boof and its value (&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;"bestseller"&lt;/span&gt;&lt;/span&gt;=&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;"yes"&lt;/span&gt;&lt;/span&gt;) have been added.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Well, the working with XML files from QTP is easy enough.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Summary:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;shown in QTP - &lt;span style="font-weight: bold;"&gt;how to change value of XML node&lt;/span&gt;&lt;/li&gt;&lt;li&gt;shown in QTP - &lt;span style="font-weight: bold;"&gt;how to change value of attribute&lt;/span&gt;&lt;/li&gt;&lt;li&gt;shown in QTP - &lt;span style="font-weight: bold;"&gt;how to add new XML node&lt;/span&gt;&lt;/li&gt;&lt;li&gt;shown in QTP - &lt;span style="font-weight: bold;"&gt;how to add new attribute&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;&lt;/span&gt;&lt;br /&gt;Do you have any comments, dear reader? Please, leave them below the present article.&lt;br /&gt;Thank you in advance :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-weight: bold;"&gt;Related articles:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/09/qtp-recovery-scenario-video.html"&gt;QTP Recovery Scenario VIDEO&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/09/qtp-vbscript-tutorial.html"&gt;QTP VBScript tutorial - Are you sure that 1+1=2?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/09/how-to-read-xml-file-from-qtp_08.html"&gt;XML file reading from QTP&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="font-weight: bold;"&gt;&lt;a href="http://motevich.blogspot.com/2008/01/qtp-tutorials.html"&gt;All QTP visual tutorials&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;hr /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;Do you like this &lt;span style="font-weight: bold;"&gt;QTP tutorial&lt;/span&gt;? Would you like to receive them in the future?&lt;br /&gt;If yes, please subscribe to this &lt;a href="http://feeds.feedburner.com/motevich"&gt;blog RSS feed&lt;/a&gt; or &lt;a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=1890249&amp;amp;loc=en_US"&gt;by Email&lt;/a&gt;. (&lt;a href="http://motevich.blogspot.com/2008/04/how-to-subscribe-to-my-blog.html"&gt;How to subscribe? VIDEO guide&lt;/a&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;Do you &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;know that &lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;a href="http://motevich.blogspot.com/2008/09/free-use-copy-publish-blog-materials.html"&gt;you are free to use/copy/publish all my materials&lt;/a&gt; on your site/blog?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span class="post-author vcard"&gt;&lt;/span&gt;</description><link>http://motevich.blogspot.com/2008/09/how-to-update-xml-file-from-qtp.html</link><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="http://lh3.ggpht.com/mangazey/SMLnfkjGM2I/AAAAAAAAAws/kWSzz5qLImY/s72-c/01_XMLData_c.gif" width="72"/><thr:total>20</thr:total><author>noreply@blogger.com (http://motevich.blogspot.com)</author><enclosure length="398" type="application/octet-stream; charset=UTF-8" url="http://motevich0308.googlepages.com/TestData.xml"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3154230739686508173.post-974160890690713619</guid><pubDate>Fri, 26 Sep 2008 07:59:00 +0000</pubDate><atom:updated>2009-10-19T23:02:38.982+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Automated testing</category><category domain="http://www.blogger.com/atom/ns#">LoadRunner</category><category domain="http://www.blogger.com/atom/ns#">visual tutorials</category><title>LoadRunner unique file name with web_save_timestamp_param function</title><description>Earlier, I shown two ways &lt;span style="font-weight: bold;"&gt;how to create unique file names in LoadRunner&lt;/span&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/05/loadrunner-unique-file-name.html"&gt;How to get unique file name in LoadRunner&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/06/unique-file-name-loadrunner-parameter.html"&gt;Generating unique file name using LoadRunner parameter&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Today I'm going to show the simplest way. And I would like to thank &lt;a href="http://www.performanceengineer.com/"&gt;Charlie&lt;/a&gt; for &lt;a href="http://motevich.blogspot.com/2008/05/loadrunner-unique-file-name.html?showComment=1212422700000#c2314267475377746949"&gt;his comment&lt;/a&gt;.&lt;br /&gt;He suggested to use &lt;span style="font-weight: bold;"&gt;web_save_timestamp_param&lt;/span&gt; function.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;web_save_timestamp_param&lt;/span&gt; function saves the current timestamp to LoadRunner parameter. Timestamp is the number of milliseconds since midnight January 1st, 1970 (also known as &lt;a href="http://en.wikipedia.org/wiki/Unix_Epoch"&gt;Unix Epoch&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;This is how &lt;span style="font-weight: bold;"&gt;web_save_timestamp_param&lt;/span&gt; works:&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;web_save_timestamp_param&lt;/span&gt;(&lt;span style="color: rgb(51, 153, 153);"&gt;"TimeStamp"&lt;/span&gt;, &lt;span style="color: rgb(51, 51, 255);"&gt;LAST&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;lr_output_message&lt;/span&gt;(&lt;span style="color: rgb(51, 153, 153);"&gt;"Timestamp: %s"&lt;/span&gt;, &lt;span style="color: rgb(102, 51, 51);"&gt;lr_eval_string&lt;/span&gt;(&lt;span style="color: rgb(51, 153, 153);"&gt;"{TimeStamp}"&lt;/span&gt;));&lt;/span&gt;&lt;br /&gt;&lt;/div&gt; And the result is:&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; border:none;" src="http://lh4.ggpht.com/mangazey/SNyyC2WY2lI/AAAAAAAAA0A/8shtTHMuSrE/1_vugen_out_c.gif" alt="Results in LoadRunner Generator" /&gt;&lt;br /&gt;As I explained in this loadRunner tutorial about &lt;a href="http://motevich.blogspot.com/2008/05/loadrunner-unique-file-name.html"&gt;unique file names in LoadRunner&lt;/a&gt;, we have to get unique ids per virtual users with &lt;span style="color: rgb(102, 51, 0); font-weight: bold;"&gt;lr_whoami&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;LoadRunner function&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;So, the final LoadRunner script is:&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt; char &lt;/span&gt;szFileName[&lt;span style="color: rgb(51, 153, 153);"&gt;256&lt;/span&gt;];&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;int&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; vuserid, scid;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;char&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; *groupid;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 51); font-weight: bold;"&gt;lr_whoami&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;(&amp;amp;vuserid, &amp;amp;groupid, &amp;amp;scid);&lt;/span&gt;  &lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;web_save_timestamp_param&lt;/span&gt;(&lt;span style="color: rgb(51, 153, 153);"&gt;"TimeStamp"&lt;/span&gt;, &lt;span style="color: rgb(51, 51, 255);"&gt;LAST&lt;/span&gt;); &lt;/span&gt;  &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;sprintf(szFileName, &lt;span style="color: rgb(51, 153, 153);"&gt;"%s_%d_%d_%s"&lt;/span&gt;,&lt;br /&gt;&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(102, 51, 51);"&gt;lr_eval_string&lt;/span&gt;(&lt;span style="color: rgb(102, 51, 51);"&gt;"{TimeStamp}"&lt;/span&gt;),&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;vuserid,&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;scid,&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;groupid);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;lr_output_message&lt;/span&gt;(&lt;span style="color: rgb(51, 153, 153);"&gt;"File name: %s"&lt;/span&gt;, szFileName);&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="color: rgb(102, 51, 0); font-weight: bold;"&gt;&lt;/span&gt;And its result is from LoadRunner Controller:&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; border:none;" src="http://lh6.ggpht.com/mangazey/SNytzIgVYNI/AAAAAAAAAz0/mDjHymAt-SI/2_controller_out_c.gif" alt="Results in LoadRunner Controller" /&gt;So, you can add a required file extension (txt, pdf, etc) and get a unique file name. It will work for any number of concurrent virtual users in LoadRunner Controller.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Summary:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Shown the way &lt;span style="font-weight: bold;"&gt;how to generate unique file names in LoadRunner&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;It uses &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;web_save_timestamp_param&lt;/span&gt; function&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-weight: bold;"&gt;Related articles:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/08/loadrunner-video-tutorial-parameter-3.html"&gt;LoadRunner VIDEO tutorial - Parameters part3 ('Select next row' = 'Unique')&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/05/loadrunner-unique-file-name.html"&gt;How to get unique file name in LoadRunner&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/06/unique-file-name-loadrunner-parameter.html"&gt;Generating unique file name using LoadRunner parameter&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://motevich.blogspot.com/2008/01/loadrunner-tutorials.html"&gt;All LoadRunner visual tutorials&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;hr /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Do you like this &lt;span style="font-weight: bold;"&gt;LoadRunner tutorial&lt;/span&gt;? Would you like to receive them in the future?&lt;br /&gt;If yes, please subscribe to this &lt;a href="http://feeds.feedburner.com/motevich"&gt;blog RSS feed&lt;/a&gt; or &lt;a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=1890249&amp;amp;loc=en_US"&gt;by Email&lt;/a&gt;. (&lt;a href="http://motevich.blogspot.com/2008/04/how-to-subscribe-to-my-blog.html"&gt;How to subscribe? VIDEO guide&lt;/a&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;    &lt;span class="post-author vcard"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;Do you &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;know that &lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;a href="http://motevich.blogspot.com/2008/09/free-use-copy-publish-blog-materials.html"&gt;you are free to use/copy/publish all my materials&lt;/a&gt; on your site/blog?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span class="post-author vcard"&gt;&lt;/span&gt;</description><link>http://motevich.blogspot.com/2008/09/loadrunner-unique-file-name.html</link><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="http://lh4.ggpht.com/mangazey/SNyyC2WY2lI/AAAAAAAAA0A/8shtTHMuSrE/s72-c/1_vugen_out_c.gif" width="72"/><thr:total>5</thr:total><author>noreply@blogger.com (http://motevich.blogspot.com)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3154230739686508173.post-16154602953688073</guid><pubDate>Mon, 22 Sep 2008 17:17:00 +0000</pubDate><atom:updated>2009-10-19T23:02:26.529+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Automated testing</category><category domain="http://www.blogger.com/atom/ns#">QTP</category><category domain="http://www.blogger.com/atom/ns#">visual tutorials</category><title>QTP VBScript  - Are you sure 1+1=2?</title><description>&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;QTP VBScript&lt;/span&gt; contains different niceties. This article shows that &lt;span style="font-weight: bold;"&gt;1 + 1&lt;/span&gt; doesn't equal &lt;span style="font-weight: bold;"&gt;2&lt;/span&gt; sometimes.&lt;br /&gt;&lt;br /&gt;&lt;table style="width: 364px; height: 44px; margin-left: auto; margin-right: auto; text-align: left;" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;Exactly, &lt;span style="font-weight: bold;"&gt;1 + 1&lt;/span&gt; doesn't equal &lt;span style="font-weight: bold;"&gt;2&lt;/span&gt; sometimes.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;Well, I've prepared this &lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;QTP script&lt;/span&gt;:&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;n1 = &lt;span style="color: rgb(0, 0, 153);"&gt;InputBox&lt;/span&gt;(&lt;span style="color: rgb(102, 51, 51);"&gt;"Enter first number"&lt;/span&gt;)&lt;br /&gt;n2 = &lt;span style="color: rgb(0, 0, 153);"&gt;InputBox&lt;/span&gt;(&lt;span style="color: rgb(102, 51, 51);"&gt;"Enter second number"&lt;/span&gt;)&lt;br /&gt;n1increased = n1 + 1&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;If&lt;/span&gt; n1increased = n2 &lt;span style="color: rgb(0, 0, 153);"&gt;Then&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MsgBox &lt;/span&gt;n1 &amp;amp; &lt;span style="color: rgb(102, 51, 51);"&gt;" + 1 equals "&lt;/span&gt; &amp;amp; n2&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Else&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MsgBox&lt;/span&gt; n1 &amp;amp; &lt;span style="color: rgb(102, 51, 51);"&gt;" + 1 doesn't equal "&lt;/span&gt; &amp;amp; n2&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;End If&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;I will explain it step by step and show all entered data and generated result.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Read first number&lt;/span&gt; from user's input&lt;br /&gt;I enter &lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;1&lt;/span&gt; as a first number:&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; border:none;" src="http://lh3.ggpht.com/mangazey/SNfhHN4zWAI/AAAAAAAAAzE/bdC-GimX4AY/1_n1_c.gif" alt="First number = 1" /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Read second number&lt;/span&gt; from user's input&lt;br /&gt;I enter &lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;2&lt;/span&gt; as a second number:&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; border:none;" src="http://lh3.ggpht.com/mangazey/SNfhwPvngyI/AAAAAAAAAzM/BDUcb7Q4wKk/2_n2_c.gif" alt="Second value = 2" /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Increase&lt;/span&gt; first number &lt;span style="font-weight: bold;"&gt;by 1&lt;/span&gt;&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240);"&gt;&lt;span style="font-weight: bold;"&gt;n1increased = n1 + 1&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Check&lt;/span&gt; whether first increased number &lt;span style="font-weight: bold;"&gt;equals&lt;/span&gt; to second number&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;If&lt;/span&gt; n1increased = n2 &lt;span style="color: rgb(0, 0, 153);"&gt;Then&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MsgBox &lt;/span&gt;n1 &amp;amp; &lt;span style="color: rgb(102, 51, 51);"&gt;" + 1 equals "&lt;/span&gt; &amp;amp; n2&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Else&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MsgBox&lt;/span&gt; n1 &amp;amp; &lt;span style="color: rgb(102, 51, 51);"&gt;" + 1 doesn't equal "&lt;/span&gt; &amp;amp; n2&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;End If&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;And the result is:&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; border:none;" src="http://lh4.ggpht.com/mangazey/SNfionCuD-I/AAAAAAAAAzU/XWsVfi72kG0/3_result.gif" alt="The result of QTP script" /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Do you know why it is so? What is a reason?&lt;br /&gt;The answer is simple. This is due to &lt;span style="font-weight: bold;"&gt;converting of VBScript types&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;After you read first number (1)  from user and assign it (value of course value, not user :) )  to variable, this variable has value of &lt;span style="font-weight: bold;"&gt;String&lt;/span&gt; type.&lt;br /&gt;So, this is the same like &lt;span style="font-weight: bold;"&gt;n1 = "1"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When VBScript executes this line:&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240);"&gt;&lt;span style="font-weight: bold;"&gt;n1increased = n1 + 1&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;it sees, that we perform mathematical operation and &lt;span style="font-weight: bold;"&gt;converts&lt;/span&gt; n1 into number.&lt;br /&gt;Then VBScript calculates &lt;span style="font-weight: bold;"&gt;n1 + 1 &lt;/span&gt;&lt;span&gt;a&lt;/span&gt;nd the result (&lt;span style="font-weight: bold;"&gt;2&lt;/span&gt;) has a numeric type - Double (special double-precision floating-point value).&lt;br /&gt;&lt;br /&gt;Here is the main point! &lt;span style="font-weight: bold;"&gt;2 as Number&lt;/span&gt; is not the same as &lt;span style="font-weight: bold;"&gt;2 as String&lt;/span&gt;. These values have &lt;span style="font-weight: bold;"&gt;different type&lt;/span&gt; and that's why they differ.&lt;br /&gt;Simple visual example - two apples are not equal to two pears :)&lt;br /&gt;&lt;br /&gt;I can demonstrate the above types converting.&lt;br /&gt;I've added this code into our QTP script before if-then-else:&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240); font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;MsgBox&lt;/span&gt; &lt;span style="color: rgb(102, 51, 51);"&gt;"TypeName(n1): "&lt;/span&gt; &amp;amp; &lt;span style="color: rgb(0, 0, 153);"&gt;TypeName&lt;/span&gt;(n1)&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;MsgBox&lt;/span&gt; &lt;span style="color: rgb(102, 51, 51);"&gt;"TypeName(n1increased): "&lt;/span&gt; &amp;amp; &lt;span style="color: rgb(0, 0, 153);"&gt;TypeName&lt;/span&gt;(n1increased)&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;MsgBox&lt;/span&gt; &lt;span style="color: rgb(102, 51, 51);"&gt;"TypeName(n2): "&lt;/span&gt; &amp;amp; &lt;span style="color: rgb(0, 0, 153);"&gt;TypeName&lt;/span&gt;(n2)&lt;br /&gt;&lt;/div&gt;And its result is:&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; border:none;" src="http://lh4.ggpht.com/mangazey/SNf0D_Q1veI/AAAAAAAAAzc/LLwxj4baT2U/4_all.gif" alt="Results of TypeName" /&gt;That's why the value of number variable is not equal to the value of string variable.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Well, How to make that 1 + 1 = 2 ?&lt;/span&gt;&lt;br /&gt;Answer: Convert string value to number with &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;CInt&lt;/span&gt; function:&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;If&lt;/span&gt; n1increased = &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;CInt&lt;/span&gt;(&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;n2) &lt;span style="color: rgb(0, 0, 153);"&gt;Then&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MsgBox &lt;/span&gt;n1 &amp;amp; &lt;span style="color: rgb(102, 51, 51);"&gt;" + 1 equals "&lt;/span&gt; &amp;amp; n2&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Else&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MsgBox&lt;/span&gt; n1 &amp;amp; &lt;span style="color: rgb(102, 51, 51);"&gt;" + 1 doesn't equal "&lt;/span&gt; &amp;amp; n2&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;End If&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;And the result is:&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; border:none;" src="http://lh4.ggpht.com/mangazey/SNf272Bt6YI/AAAAAAAAAzk/eszLq_Q6l-0/5_correct_result.gif" alt="Correct result of QTP script" /&gt;It works. It works correctly :)&lt;br /&gt;&lt;br /&gt;I hope, you will keep in mind this issue with VBScript types converting. It can save your time during debugging of QTP scripts.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-weight: bold;"&gt;Related articles:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/09/qtp-recovery-scenario-video.html"&gt;QTP Recovery Scenario VIDEO&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/09/how-to-read-xml-file-from-qtp_08.html"&gt;How to read XML file from QTP&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/08/qtp-get-number-of-pages-pdf-file.html"&gt;QTP - How to get number of pages in PDF file?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/08/qtp-descriptive-programming-operations_13.html"&gt;QTP Descriptive Programming - operations&lt;/a&gt;&lt;/li&gt;&lt;li style="font-weight: bold;"&gt;&lt;a href="http://motevich.blogspot.com/2008/01/qtp-tutorials.html"&gt;All QTP visual tutorials&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;hr /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Do you like this &lt;span style="font-weight: bold;"&gt;QTP tutorial&lt;/span&gt;? Would you like to receive them in the future?&lt;br /&gt;If yes, please subscribe to this &lt;a href="http://feeds.feedburner.com/motevich"&gt;blog RSS feed&lt;/a&gt; or &lt;a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=1890249&amp;amp;loc=en_US"&gt;by Email&lt;/a&gt;. (&lt;a href="http://motevich.blogspot.com/2008/04/how-to-subscribe-to-my-blog.html"&gt;How to subscribe? VIDEO guide&lt;/a&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;    &lt;span class="post-author vcard"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;Do you &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;know that &lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;a href="http://motevich.blogspot.com/2008/09/free-use-copy-publish-blog-materials.html"&gt;you are free to use/copy/publish all my materials&lt;/a&gt; on your site/blog?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span class="post-author vcard"&gt;&lt;/span&gt;</description><link>http://motevich.blogspot.com/2008/09/qtp-vbscript-tutorial.html</link><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="http://lh3.ggpht.com/mangazey/SNfhHN4zWAI/AAAAAAAAAzE/bdC-GimX4AY/s72-c/1_n1_c.gif" width="72"/><thr:total>5</thr:total><author>noreply@blogger.com (http://motevich.blogspot.com)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3154230739686508173.post-3699970688594920990</guid><pubDate>Sun, 21 Sep 2008 08:30:00 +0000</pubDate><atom:updated>2009-10-19T23:02:13.210+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">LoadRunner</category><title>LoadRunner Analysis - tabbed world</title><description>Do you like this dialog from &lt;span style="font-weight: bold;"&gt;LoadRunner Analysis&lt;/span&gt;? Not too many tabs? :)&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; border: none;" src="http://lh4.ggpht.com/mangazey/SNYIIWssICI/AAAAAAAAAy4/PuMjceOxcsE/1_tabs_c.gif" alt="LoadRunner Analysis - tabs" /&gt;No words!&lt;br /&gt;It seems, HP should hire a professional UI designer :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-weight: bold;"&gt;Related articles:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2007/10/loadrunner-analysis-report-command-line.html"&gt;How to automatically create custom HTML report in LoadRunner Analysis?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://motevich.blogspot.com/2008/01/loadrunner-tutorials.html"&gt;All LoadRunner visual tutorials&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;hr /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;Do you &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;know that &lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;a href="http://motevich.blogspot.com/2008/09/free-use-copy-publish-blog-materials.html"&gt;you are free to use/copy/publish all my materials&lt;/a&gt; on your site/blog?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;    &lt;span class="post-author vcard"&gt; &lt;/span&gt;</description><link>http://motevich.blogspot.com/2008/09/loadrunner-analysis-tabbed-world.html</link><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="http://lh4.ggpht.com/mangazey/SNYIIWssICI/AAAAAAAAAy4/PuMjceOxcsE/s72-c/1_tabs_c.gif" width="72"/><thr:total>4</thr:total><author>noreply@blogger.com (http://motevich.blogspot.com)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3154230739686508173.post-9192876075485726626</guid><pubDate>Tue, 09 Sep 2008 16:40:00 +0000</pubDate><atom:updated>2009-10-19T23:01:57.801+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Automated testing</category><category domain="http://www.blogger.com/atom/ns#">QTP</category><category domain="http://www.blogger.com/atom/ns#">Video</category><category domain="http://www.blogger.com/atom/ns#">visual tutorials</category><title>QTP Recovery Scenario VIDEO</title><description>This &lt;span style="font-weight: bold;"&gt;QTP video&lt;/span&gt; shows and explains how to create and work with &lt;span style="font-weight: bold;"&gt;QTP Recovery Scenarios&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;For example, during an execution of QTP test, it can be interrupted by different windows, pop-ups, message boxes, etc. The problem is that they can appear at any time and &lt;span style="font-weight: bold;"&gt;you cannot predict this event.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I've shown how to create &lt;span style="font-weight: bold;"&gt;QTP &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Recovery &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Scenario&lt;/span&gt; for the following message box:&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; border:none;" src="http://lh6.ggpht.com/mangazey/SMarMhLdPEI/AAAAAAAAAx0/6O7DkQT3OpM/1_message_box.gif" alt="Message box in QTP" /&gt;&lt;br /&gt;This message box can be shown or not, depending on the current system settings.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;QTP &lt;/span&gt;provides &lt;span style="font-weight: bold;"&gt;Recoverry Scenarios&lt;/span&gt; to process such unexpected events and errors.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center; color: rgb(0, 0, 153); font-weight: bold;"&gt;QTP Recovery Scenario VIDEO&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;embed src="http://blip.tv/play/Acy+DQA" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="390"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-weight: bold;"&gt;Related articles:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/06/qtp-get-current-browser-url.html"&gt;QTP - How to get current browser URL&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/03/how-to-record-qtp-script-video-tutorial_24.html"&gt;QTP VIDEO - How to record QTP script?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/09/qtp-rename-excel-worksheet.html"&gt;QTP - How to rename Excel worksheet&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/09/how-to-read-xml-file-from-qtp_08.html"&gt;How to read XML file from QTP&lt;/a&gt;&lt;/li&gt;&lt;li style="font-weight: bold;"&gt;&lt;a href="http://motevich.blogspot.com/2008/01/qtp-tutorials.html"&gt;All QTP visual tutorials&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;hr /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Do you like this &lt;span style="font-weight: bold;"&gt;QTP video&lt;/span&gt;? Would you like to receive them in the future?&lt;br /&gt;If yes, please subscribe to this &lt;a href="http://feeds.feedburner.com/motevich"&gt;blog RSS feed&lt;/a&gt; or &lt;a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=1890249&amp;amp;loc=en_US"&gt;by Email&lt;/a&gt;. (&lt;a href="http://motevich.blogspot.com/2008/04/how-to-subscribe-to-my-blog.html"&gt;How to subscribe? VIDEO guide&lt;/a&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span class="post-author vcard"&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;Do you &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;know that &lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;a href="http://motevich.blogspot.com/2008/09/free-use-copy-publish-blog-materials.html"&gt;you are free to use/copy/publish all my materials&lt;/a&gt; on your site/blog?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;</description><link>http://motevich.blogspot.com/2008/09/qtp-recovery-scenario-video.html</link><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="http://lh6.ggpht.com/mangazey/SMarMhLdPEI/AAAAAAAAAx0/6O7DkQT3OpM/s72-c/1_message_box.gif" width="72"/><thr:total>36</thr:total><author>noreply@blogger.com (http://motevich.blogspot.com)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3154230739686508173.post-8403279435814027320</guid><pubDate>Mon, 08 Sep 2008 20:59:00 +0000</pubDate><atom:updated>2009-10-19T23:01:42.877+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Automated testing</category><category domain="http://www.blogger.com/atom/ns#">QTP</category><category domain="http://www.blogger.com/atom/ns#">visual tutorials</category><title>QTP - How to rename Excel worksheet</title><description>The present &lt;span style="font-weight: bold;"&gt;QTP tutorial&lt;/span&gt; shows simple recipe &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;how to rename Excel worksheet from QuickTest Professional&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;For example, Excel-file contains &lt;span style="font-weight: bold;"&gt;'Sheet1'&lt;/span&gt; sheet:&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; border:none;" src="http://lh5.ggpht.com/mangazey/SGvg8s4f5HI/AAAAAAAAApU/37gblcFcyTo/01_initial_c.gif" alt="Initial worksheet" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;How to rename &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Excel worksheet from VBScript and QTP?&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Use the following QTP script, which perform the work using Excel's COM object - &lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;"Excel.Application"&lt;/span&gt;&lt;/span&gt;:&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Set &lt;/span&gt;objExcel = &lt;span style="color: rgb(0, 0, 153);"&gt;CreateObject&lt;/span&gt;(&lt;span style="color: rgb(102, 51, 51);"&gt;"Excel.Application"&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;objExcel.Visible = &lt;span style="color: rgb(0, 0, 153);"&gt;True&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;objExcel.DisplayAlerts = &lt;span style="color: rgb(0, 0, 153);"&gt;False&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;Set &lt;/span&gt;objWorkbook = objExcel.Workbooks.Open (&lt;span style="color: rgb(102, 51, 51);"&gt;"c:\Book1.xls"&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Set &lt;/span&gt;objWorksheet = objWorkbook.Worksheets(&lt;span style="color: rgb(102, 51, 51);"&gt;1&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;objWorksheet.&lt;span style="color: rgb(0, 0, 153);"&gt;Name &lt;/span&gt;= &lt;span style="color: rgb(102, 51, 51);"&gt;"VBScript_Excel"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;objWorkbook.SaveAs (&lt;span style="color: rgb(102, 51, 51);"&gt;"c:\Book1.xls"&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;objExcel.Quit&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;The above QTP script renames Excel worksheet:&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; border:none;" src="http://lh5.ggpht.com/mangazey/SGvhB-XaaNI/AAAAAAAAApc/8tncpLV-Tgw/02_renamed_c.gif" alt="Renamed worksheet" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Summary:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Excel's COM object (&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;"Excel.Application"&lt;/span&gt;&lt;/span&gt;) allows performing operations on Excel application&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The present visual tutorial explains how to rename Excel sheet from QTP&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-weight: bold;"&gt;Related articles:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/03/how-to-record-qtp-script-video-tutorial_24.html"&gt;QTP VIDEO - How to record QTP script?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/09/how-to-read-xml-file-from-qtp_08.html"&gt;How to read XML file from QTP&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/05/qtp-how-to-capture-tool-tip.html"&gt;QTP - How to capture tool tip?&lt;/a&gt;&lt;/li&gt;&lt;li style="font-weight: bold;"&gt;&lt;a href="http://motevich.blogspot.com/2008/01/qtp-tutorials.html"&gt;All QTP visual tutorials&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;hr /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Do you &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;like this &lt;span style="font-weight: bold;"&gt;QTP visual tutorial&lt;/span&gt;?&lt;/span&gt;&lt;span style="font-style: italic;"&gt; Would you like to publish it on your site/blog?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;a href="http://motevich.blogspot.com/2008/09/free-use-copy-publish-blog-materials.html"&gt;You are free to use/copy/publish all materials&lt;/a&gt; on your site/blog.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;</description><link>http://motevich.blogspot.com/2008/09/qtp-rename-excel-worksheet.html</link><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="http://lh5.ggpht.com/mangazey/SGvg8s4f5HI/AAAAAAAAApU/37gblcFcyTo/s72-c/01_initial_c.gif" width="72"/><thr:total>8</thr:total><author>noreply@blogger.com (http://motevich.blogspot.com)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3154230739686508173.post-8011799728163332450</guid><pubDate>Mon, 08 Sep 2008 07:19:00 +0000</pubDate><atom:updated>2009-10-19T23:01:27.545+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Automated testing</category><category domain="http://www.blogger.com/atom/ns#">QTP</category><category domain="http://www.blogger.com/atom/ns#">visual tutorials</category><title>How to read XML file from QTP</title><description>I'm going to show &lt;span style="font-weight: bold;"&gt;how to parse XML file and read its values from QTP (QuickTest Professional)&lt;/span&gt;.&lt;br /&gt;For example, we will use this XML file:&lt;br /&gt;&lt;img style="border: medium none ; margin: 0px auto 10px; display: block; text-align: center;" src="http://lh3.ggpht.com/mangazey/SMLnfkjGM2I/AAAAAAAAAws/kWSzz5qLImY/01_XMLData_c.gif" alt="" /&gt;This XML file describes a bookstore and books located there. &lt;span style="font-style: italic;font-size:85%;" &gt;&lt;br /&gt;Note: You can download this XML file &lt;a href="http://motevich0308.googlepages.com/TestData.xml"&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I will use &lt;a href="http://www.w3schools.com/Xml/xml_parser.asp"&gt;Microsoft's XML Parser&lt;/a&gt; also known as Microsoft.XMLDOM. This XML parser allows running &lt;a href="http://msdn.microsoft.com/en-us/library/ms256115.aspx"&gt;XPath&lt;/a&gt; queries.&lt;br /&gt;&lt;br /&gt;The loading of XML file in QTP is simple enough:&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Const &lt;/span&gt;XMLDataFile = &lt;span style="color: rgb(102, 51, 51);"&gt;"C:\TestData.xml"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Set &lt;/span&gt;xmlDoc = CreateObject(&lt;span style="color: rgb(102, 51, 51);"&gt;"Microsoft.XMLDOM"&lt;/span&gt;)&lt;br /&gt;xmlDoc.Async = &lt;span style="color: rgb(0, 0, 153);"&gt;False&lt;/span&gt;&lt;br /&gt;xmlDoc.Load(XMLDataFile)&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Several comments on this code:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;Microsoft.XMLDOM &lt;/span&gt;&lt;/span&gt;is a name of COM object of Microsoft's XML parser&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Async&lt;/span&gt; is a property of &lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;Microsoft.XMLDOM.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;The property specifies whether asynchronous download of the document is permitted.&lt;br /&gt;Processing of asynchronous operations is more complex, that's why I've disabled it (&lt;span style="font-weight: bold;"&gt;xmlDoc.Async = &lt;span style="color: rgb(0, 0, 153);"&gt;False&lt;/span&gt;&lt;/span&gt;). For datailed info see &lt;a href="http://www.w3schools.com/Dom/prop_document_async.asp"&gt;here&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Load&lt;/span&gt; method loads an XML document from the specified file.&lt;br /&gt;Also, you can use &lt;span style="font-weight: bold;"&gt;LoadXML&lt;/span&gt; method, which loads an XML document using the supplied string.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;After that we can use &lt;a href="http://msdn.microsoft.com/en-us/library/system.xml.xmlnode.selectsinglenode.aspx"&gt;SelectSingleNode&lt;/a&gt; or &lt;a href="http://msdn.microsoft.com/en-us/library/system.xml.xmlnode.selectnodes.aspx"&gt;SelectNodes&lt;/a&gt; of Microsoft's XML parser to execute &lt;span style="font-weight: bold;"&gt;XPath &lt;/span&gt;query.&lt;br /&gt;You can use this approach in QTP to get data from XML file.&lt;br /&gt;&lt;br /&gt;Check the above bookstore XML file again and let's see&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;How to&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt; get number of books in a bookstore?&lt;/span&gt;&lt;br /&gt;The QTP script is:&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Set&lt;/span&gt; nodes = xmlDoc.SelectNodes(&lt;span style="color: rgb(102, 51, 51);"&gt;"/bookstore/book"&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;MsgBox &lt;/span&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;"Total books: "&lt;/span&gt; &amp;amp; nodes.&lt;span style="color: rgb(0, 0, 153);"&gt;Length&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;And its result is:&lt;br /&gt;&lt;img style="border: medium none ; margin: 0px auto 10px; display: block; text-align: center;" src="http://lh3.ggpht.com/mangazey/SMQ9Bz-rBiI/AAAAAAAAAxA/1sD5bC7LDQA/02_result__.gif" alt="Number of books in a bookstore" /&gt;As you can see, &lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;"/bookstore/book" &lt;/span&gt;&lt;/span&gt;XPath expression selects all &lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;book"&lt;/span&gt;&lt;/span&gt; nodes in a &lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;"bookstore&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;"&lt;/span&gt;&lt;/span&gt; nodes. As a result, we get the list of all books.&lt;br /&gt;&lt;br /&gt;I hope, that's clear. Let's complicate the task a bit.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;How to&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt; get titles of all books in a bookstore?&lt;/span&gt;&lt;br /&gt;QTP script gets list of books from XML file and iterates them through:&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;' get all titles&lt;/span&gt;&lt;br /&gt;Set&lt;/span&gt; nodes = xmlDoc.SelectNodes(&lt;span style="color: rgb(102, 51, 51);"&gt;"/bookstore/book/title/text()"&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;' get their values&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;For &lt;/span&gt;i = 0 &lt;span style="color: rgb(0, 0, 153);"&gt;To &lt;/span&gt;(nodes.&lt;span style="color: rgb(0, 0, 153);"&gt;Length&lt;/span&gt; - &lt;span style="color: rgb(102, 51, 51);"&gt;1&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Title = nodes(i).NodeValue&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MsgBox &lt;/span&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;"Title #"&lt;/span&gt; &amp;amp; (i + &lt;span style="color: rgb(102, 51, 51);"&gt;1&lt;/span&gt;) &amp;amp; &lt;span style="color: rgb(102, 51, 51);"&gt;": "&lt;/span&gt; &amp;amp; Title&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Next&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;The result is:&lt;br /&gt;&lt;img style="border: medium none ; margin: 0px auto 10px; display: block; text-align: center;" src="http://lh6.ggpht.com/mangazey/SMRBUdfUrJI/AAAAAAAAAxI/P6a5diniyLI/03_results.gif" alt="Titles of all books" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;How to&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt; get title of the first book?&lt;/span&gt;&lt;br /&gt;QTP script is:&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;/span&gt;Set&lt;/span&gt; node = xmlDoc.SelectSingleNode(&lt;span style="color: rgb(102, 51, 51);"&gt;"/bookstore/book[0]/title/text()"&lt;/span&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;MsgBox &lt;/span&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;"Title of 1st book: "&lt;/span&gt; &amp;amp; node.&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;NodeValue&lt;/span&gt;&lt;/div&gt;Please see how QTP parses XML file and gets the required value:&lt;br /&gt;&lt;img style="border: medium none ; margin: 0px auto 10px; display: block; text-align: center;" src="http://lh4.ggpht.com/mangazey/SMRGgCVL76I/AAAAAAAAAxQ/IrTMm4a8t4w/04_result__.gif" alt="Title of the first book" /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Note:&lt;/span&gt; Pay attention that nodes are &lt;span style="font-weight: bold;"&gt;zero-indexed&lt;/span&gt;, i.e. first book is book[0], second book is book[1], and so on.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;How to get titles of all John Smith's books?&lt;/span&gt;&lt;br /&gt;QTP script is:&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;' get list of John Smith's books &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Set&lt;/span&gt; nodes = xmlDoc.SelectNodes(&lt;span style="color: rgb(102, 51, 51);"&gt;"/bookstore/book/title[../author = 'John Smith']/text()"&lt;/span&gt;)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;' get their titles&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;For &lt;/span&gt;i = 0 &lt;span style="color: rgb(0, 0, 153);"&gt;To &lt;/span&gt;(nodes.&lt;span style="color: rgb(0, 0, 153);"&gt;Length&lt;/span&gt; - &lt;span style="color: rgb(102, 51, 51);"&gt;1&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Title = nodes(i).NodeValue&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MsgBox &lt;/span&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;"Title #"&lt;/span&gt; &amp;amp; (i + &lt;span style="color: rgb(102, 51, 51);"&gt;1&lt;/span&gt;) &amp;amp; &lt;span style="color: rgb(102, 51, 51);"&gt;": "&lt;/span&gt; &amp;amp; Title&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Next&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Note:&lt;/span&gt; We use square brackets to apply a &lt;span style="font-weight: bold;"&gt;filter&lt;/span&gt;. So, &lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;[../author = 'John Smith'] &lt;/span&gt;&lt;/span&gt;means &lt;span style="font-style: italic;"&gt;'to get only those books whose author is John Smith'&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Since Mr. Smith wrote two books, we get the following result:&lt;br /&gt;&lt;img style="border: medium none ; margin: 0px auto 10px; display: block; text-align: center;" src="http://lh6.ggpht.com/mangazey/SMRLHJ0J_iI/AAAAAAAAAxY/_ONZOuhuWhw/05_results.gif" alt="Titles of John Smith's books" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;How to&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt; get titles of all books published after 2003?&lt;/span&gt;&lt;br /&gt;QTP script is:&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;' get list of books published after 2003&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Set&lt;/span&gt; nodes = xmlDoc.SelectNodes(&lt;span style="color: rgb(102, 51, 51);"&gt;"/bookstore/book/title[@published &gt; 2003]/text()"&lt;/span&gt;)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;' get their titles&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;For &lt;/span&gt;i = 0 &lt;span style="color: rgb(0, 0, 153);"&gt;To &lt;/span&gt;(nodes.&lt;span style="color: rgb(0, 0, 153);"&gt;Length&lt;/span&gt; - &lt;span style="color: rgb(102, 51, 51);"&gt;1&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Title = nodes(i).NodeValue&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MsgBox &lt;/span&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;"Title #"&lt;/span&gt; &amp;amp; (i + &lt;span style="color: rgb(102, 51, 51);"&gt;1&lt;/span&gt;) &amp;amp; &lt;span style="color: rgb(102, 51, 51);"&gt;": "&lt;/span&gt; &amp;amp; Title&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Next&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Note:&lt;/span&gt; And again, we use square brackets to apply a filter - &lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;[@published &gt; 2003]&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;At sign (&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;@&lt;/span&gt;&lt;/span&gt;) is used to address an attribute of a node. For example:&lt;br /&gt;&lt;img style="border: medium none ; margin: 0px auto 10px; display: block; text-align: center;" src="http://lh4.ggpht.com/mangazey/SMRVm3Y8ImI/AAAAAAAAAxs/QmvmUsYIWCU/07_title.gif" /&gt;Here, &lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;title &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;node contains one attribute - &lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="color: rgb(255, 102, 102);"&gt;published&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;So, &lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;[@published &gt; 2003]&lt;/span&gt;&lt;/span&gt; means &lt;span style="font-style: italic;"&gt;'to get only those books which were published after 2003'&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;The result of above QTP script is:&lt;br /&gt;&lt;img style="border: medium none ; margin: 0px auto 10px; display: block; text-align: center;" src="http://lh5.ggpht.com/mangazey/SMRQtSTHUnI/AAAAAAAAAxk/oLr93IJLUAA/06_result__c.gif" alt="Titles of books published after 2003" /&gt;You can check initial XML file and make sure that QTP parses it correctly.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Summary:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Use &lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;Microsoft.XMLDOM&lt;/span&gt;&lt;/span&gt; to read and parse XML file from QuickTest Professional (QTP)&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;XPath&lt;/span&gt; allows creating different queries to extract required data&lt;/li&gt;&lt;li&gt;The present visual tutorial explains how to process XML file from &lt;span style="font-weight: bold;"&gt;QTP&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-weight: bold;"&gt;Related articles:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/08/qtp-regexp-how-to-click-dynamic-link.html"&gt;QTP RegExp VIDEO - How to click dynamic link?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/09/how-to-update-xml-file-from-qtp.html"&gt;How to update XML file from QTP&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/08/qtp-descriptive-programming-number.html"&gt;QTP Descriptive Programming - How to get number of objects&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/08/qtp-get-number-of-pages-pdf-file.html"&gt;QTP - How to get number of pages in PDF file?&lt;/a&gt;&lt;/li&gt;&lt;li style="font-weight: bold;"&gt;&lt;a href="http://motevich.blogspot.com/2008/01/qtp-tutorials.html"&gt;All QTP visual tutorials&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;hr /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;Do you like this &lt;span style="font-weight: bold;"&gt;QTP tutorial&lt;/span&gt;? Would you like to receive them in the future?&lt;br /&gt;If yes, please subscribe to this &lt;a href="http://feeds.feedburner.com/motevich"&gt;blog RSS feed&lt;/a&gt; or &lt;a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=1890249&amp;amp;loc=en_US"&gt;by Email&lt;/a&gt;. (&lt;a href="http://motevich.blogspot.com/2008/04/how-to-subscribe-to-my-blog.html"&gt;How to subscribe? VIDEO guide&lt;/a&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;--&lt;br /&gt;Dmitry Motevich</description><link>http://motevich.blogspot.com/2008/09/how-to-read-xml-file-from-qtp_08.html</link><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="http://lh3.ggpht.com/mangazey/SMLnfkjGM2I/AAAAAAAAAws/kWSzz5qLImY/s72-c/01_XMLData_c.gif" width="72"/><thr:total>9</thr:total><author>noreply@blogger.com (http://motevich.blogspot.com)</author><enclosure length="398" type="application/octet-stream; charset=UTF-8" url="http://motevich0308.googlepages.com/TestData.xml"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3154230739686508173.post-1552600197498493178</guid><pubDate>Thu, 04 Sep 2008 20:52:00 +0000</pubDate><atom:updated>2009-10-19T23:01:14.935+04:00</atom:updated><title>You're free to use/copy/publish any of my materials</title><description>I've started noticing that my blog materials (articles and videos) became quite popular in the Web. That's great! :)&lt;br /&gt;&lt;br /&gt;The problem is that some bloggers copy and publish my blog materials without mentioning the source.&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center;" src="http://lh3.ggpht.com/mangazey/SMDw1uio75I/AAAAAAAAAwk/jKrF1DLUlhk/1_copyright-copyleft.gif" alt="Copyrights on http://motevich.blogspot.com" border="0" /&gt;So, I would like to express my point of view on the present issue.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;font-size:130%;" &gt;I allow to use content from my blog (&lt;a href="http://motevich.blogspot.com/" target="_blank"&gt;http://motevich.blogspot.com&lt;/a&gt;) for any purposes.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;For that you &lt;b style="color: rgb(0, 0, 153);"&gt;have to observe&lt;/b&gt; 2 following conditions:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Any material (for example, article from the blog) has to be copied and published &lt;b&gt;the same way&lt;/b&gt; as it is in my blog, &lt;b&gt;without any changes&lt;/b&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;You have to give a &lt;b&gt;link to original material&lt;/b&gt; on my blog&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Please, note that I allow using my materials for absolutely &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;any purposes, including commercial&lt;/span&gt;.&lt;br /&gt;So, I don't mind if you earn money using my knowledge, articles and videos! :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This post is to be considered as &lt;b&gt;my official permission&lt;/b&gt; for copying and publishing.&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;P.S. I would be grateful if you notify me about a placement of my materials on your sites or blogs :)&lt;br /&gt;My email is:&lt;br /&gt;&lt;img src="http://lh4.ggpht.com/mangazey/SFbRAY8YR9I/AAAAAAAAAmc/QBIhB_anPcM/my_email3.gif" alt="Dmitry Motevich's email" /&gt;&lt;br /&gt;&lt;br /&gt;Dmitry Motevich</description><link>http://motevich.blogspot.com/2008/09/free-use-copy-publish-blog-materials.html</link><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="http://lh3.ggpht.com/mangazey/SMDw1uio75I/AAAAAAAAAwk/jKrF1DLUlhk/s72-c/1_copyright-copyleft.gif" width="72"/><thr:total>16</thr:total><author>noreply@blogger.com (http://motevich.blogspot.com)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3154230739686508173.post-1579253734137886828</guid><pubDate>Sat, 16 Aug 2008 21:56:00 +0000</pubDate><atom:updated>2009-10-19T23:01:03.407+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Automated testing</category><category domain="http://www.blogger.com/atom/ns#">LoadRunner</category><title>Bugs in LoadRunner</title><description>Watch for my logic please:&lt;img style="margin: 0pt 10px 10px 0pt; float: right; cursor: pointer;" src="http://lh4.ggpht.com/mangazey/SKgfm1gMUmI/AAAAAAAAAvs/imXaXrBKwyw/0_bug.gif" alt="" border="0" /&gt;&lt;ul&gt;&lt;li&gt;Each program contains errors (bugs).&lt;/li&gt;&lt;li&gt;LoadRunner is a program too.&lt;/li&gt;&lt;li&gt;So, LoadRunner should contain bugs.&lt;br /&gt;Even more! LoadRunner &lt;span style="font-weight: bold;"&gt;contains&lt;/span&gt; bugs.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div id="result_box" dir="ltr"&gt;Here is a &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;list of bugs in LoadRunner 9.10&lt;/span&gt; that I noticed.&lt;br /&gt;And I would like to ask you to share your experience on LoadRunner too. I'm sure that you faced with such errors.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Why do I do that?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I know, that some members of LoadRunner development team read this blog. So dear readers, you can report errors and &lt;span style="font-weight: bold;"&gt;make &lt;/span&gt;your favourite (I hope :)) &lt;span style="font-weight: bold;"&gt;LoadRunner better&lt;/span&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Also, there is another reason to post LoadRunner bugs. Since you are QA specialists, I think it will be interesting to find bugs in a released commercial product (= LoadRunner).&lt;br /&gt;Prove, that you are &lt;span style="font-weight: bold;"&gt;qualified bugs hunters&lt;/span&gt;! :)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: normal;"&gt;&lt;/span&gt;&lt;table style="width: 590px;" align="center" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="font-weight: bold; text-align: center; color: rgb(0, 0, 153);"&gt;#&lt;br /&gt;&lt;/td&gt;&lt;td style="text-align: center; color: rgb(0, 0, 153);"&gt;&lt;span style="font-weight: bold;"&gt;Description&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align: top; text-align: center;"&gt;1&lt;/td&gt;&lt;td&gt;1. LoadRunner Controller&lt;br /&gt;2. Open Design tab&lt;br /&gt;3. Double-click any action from 'Global Schedule' section&lt;br /&gt;-&gt; 'Edit Action' dlg is opened. OK&lt;br /&gt;4. Click 'Help'&lt;br /&gt;-&gt; Nothing happens&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center;" src="http://lh4.ggpht.com/mangazey/SKf48rlyGZI/AAAAAAAAAu4/fP2004ApeW8/1_EditAction_.gif" alt="'Help' btn doesn't work" border="0" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align: top; text-align: center;"&gt;2&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;1. Open LR Controller Help pdf-file, page 77.&lt;br /&gt;2. It contains the phrase:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;The following additional right-click options are available:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;➤ &lt;span style="font-weight: bold;"&gt;Reset IDs&lt;/span&gt;. Resets the IDs of the Vusers in the group.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Actually, menu item is named as "&lt;span style="font-weight: bold;"&gt;Renumber&lt;/span&gt;":&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center;" src="http://lh3.ggpht.com/mangazey/SKf_ZGjHPVI/AAAAAAAAAvM/ZNgftFoE3a4/2_Renumber_.gif" alt="'Renumber' menu item" border="0" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align: top; text-align: center;"&gt;3&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;1. Open LoadRunner VuGen&lt;br /&gt;2. Record and replay script&lt;br /&gt;3. Open 'Tree view'&lt;br /&gt;4. Select 'Response' item from tree view&lt;br /&gt;-&gt; &lt;span style="font-weight: bold;"&gt;'Create Parameter'&lt;/span&gt; menu item &lt;span style="font-weight: bold;"&gt;is disabled&lt;/span&gt;, see:&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center;" src="http://lh3.ggpht.com/mangazey/SKgUGCD6j0I/AAAAAAAAAvU/-1ojfVyEKW4/3_CreateParameter1_.gif" alt="" border="0" /&gt;5. Select 'Body' item from tree view&lt;br /&gt;-&gt; &lt;span style="font-weight: bold;"&gt;'Create Parameter'&lt;/span&gt; menu item &lt;span style="font-weight: bold;"&gt;is enabled&lt;/span&gt;, see:&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center;" src="http://lh6.ggpht.com/mangazey/SKgU9I0tVGI/AAAAAAAAAvc/rOUH_XcKp_0/3_CreateParameter2_.gif" alt="" border="0" /&gt;I think, &lt;span&gt;'Create Parameter'&lt;/span&gt; menu item should be enabled in both cases.&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align: top; text-align: center;"&gt;4&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;1. Open LoadRunner VuGen&lt;br /&gt;2. Create new LR parameter&lt;br /&gt;3. Open 'Parameter Simulation' dlg&lt;br /&gt;-&gt; There are not 'short keys' (underlined letters for quick access with keyboard):&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center;" src="http://lh3.ggpht.com/mangazey/SKgZSzk3INI/AAAAAAAAAvk/DR8zW30vCf8/4_ParameterSimulation__.gif" alt="" border="0" /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align: top; text-align: center;"&gt;5&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;Could you send yours, dear reader?..&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-weight: normal; color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;I think, the &lt;span style="font-weight: bold;"&gt;list of LoadRunner bugs&lt;/span&gt; is an interesting challenge for LoadRunner users community.&lt;br /&gt;And definitely - it will be usefull for all of us.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That's why I ask you to send your &lt;/span&gt;notes about LoadRunner bugs. Send detailed info and do not forget to mention your name. The world should know best testers :)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Please, send your notes about LoadRunner bugs or enhancements to my email: &lt;/span&gt;&lt;img src="http://lh4.ggpht.com/mangazey/SFbRAY8YR9I/AAAAAAAAAmc/QBIhB_anPcM/my_email3.gif" alt="Dmitry Motevich's email" /&gt;&lt;br /&gt;If you have any interesting ideas, feel free to share them.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Thank you in advance, dear readers.&lt;br /&gt;Dmitry Motevich&lt;br /&gt;&lt;br /&gt;P.S. Dear HP, may I join your LoadRunner team? :)&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-weight: bold;"&gt;Related articles:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/08/loadrunner-video-tutorial-parameter-3.html"&gt;LoadRunner VIDEO tutorial - Parameters part3 ('Select next row' = 'Unique')&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/05/examples-on-loadrunner-regular.html"&gt;Examples on LoadRunner Regular Expressions&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2007/10/loadrunner-save-download-file-server.html"&gt;LoadRunner scripting - How to download file and save it to local disk?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://motevich.blogspot.com/2008/01/loadrunner-tutorials.html"&gt;All LoadRunner visual tutorials&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr /&gt;&lt;/div&gt;</description><link>http://motevich.blogspot.com/2008/08/bugs-in-loadrunner.html</link><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="http://lh4.ggpht.com/mangazey/SKgfm1gMUmI/AAAAAAAAAvs/imXaXrBKwyw/s72-c/0_bug.gif" width="72"/><thr:total>9</thr:total><author>noreply@blogger.com (http://motevich.blogspot.com)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3154230739686508173.post-1671406455732092567</guid><pubDate>Fri, 15 Aug 2008 22:00:00 +0000</pubDate><atom:updated>2009-10-19T23:00:50.458+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Automated testing</category><category domain="http://www.blogger.com/atom/ns#">QTP</category><category domain="http://www.blogger.com/atom/ns#">Video</category><title>QTP RegExp VIDEO - How to click dynamic link?</title><description>The present &lt;span style="font-weight: bold;"&gt;QTP video&lt;/span&gt; explains &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;how to click dynamic links, which change their text.&lt;/span&gt;&lt;br /&gt;For example, the number of email drafts can vary:&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; border:none;" src="http://lh5.ggpht.com/mangazey/SKYOPb99VbI/AAAAAAAAAuQ/RrZ63O6kvoo/1_drafts_all_6.gif" alt="Dynamic links - value changes"/&gt;&lt;br /&gt;QuickTest Professional cannot know &lt;span style="font-weight: bold;"&gt;in advance&lt;/span&gt; which text will be present.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;So, how QTP can click such dynamic links?&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;There are several possible solutions:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;We can use &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;QTP Regular Expression&lt;/span&gt; to match dynamic link.&lt;/li&gt;&lt;li&gt;We can use &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;QTP DP (Descriptive Programming)&lt;/span&gt; in  to find the link during run-time.&lt;/li&gt;&lt;li&gt;We can use &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;others properties&lt;/span&gt; of the dynamic link to identify it&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;The present &lt;span style="font-weight: bold;"&gt;QTP video&lt;/span&gt; shows first approach.&lt;br /&gt;The tutorial covers the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;working with &lt;span style="font-weight: bold;"&gt;QTP Object Repository&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;identification properties&lt;/span&gt; of QTP objects&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;QTP RegExp&lt;/span&gt; in object's properties&lt;/li&gt;&lt;li&gt;how &lt;span style="font-weight: bold;"&gt;QTP identifies objects&lt;/span&gt; in application&lt;/li&gt;&lt;li&gt;and others...&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: center; font-weight: bold; color: rgb(0, 0, 153);"&gt;QTP RegExp VIDEO - How to click dynamic link?&lt;/div&gt;&lt;div style="text-align: left; font-weight: normal; color: rgb(0, 0, 0);"&gt;&lt;div style="text-align: center;"&gt;&lt;embed src="http://blip.tv/play/AciWGgA" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="390" width="480"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-weight: bold;"&gt;Related articles:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/04/how-to-run-qtp-test-from-command-line.html"&gt;QTP VIDEO - How to run test from command line?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2007/10/qtp-set-get-system-time-date.html"&gt;QTP - How to set/get system time and date?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/05/qtp-how-to-capture-tool-tip.html"&gt;QTP - How to capture tool tip?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2007/12/how-to-minimize-qtp-window.html"&gt;How to minimize/maximize QTP window?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/08/qtp-descriptive-programming-operations_13.html"&gt;QTP Descriptive Programming - operations&lt;/a&gt;&lt;/li&gt;&lt;li style="font-weight: bold;"&gt;&lt;a href="http://motevich.blogspot.com/2008/01/qtp-tutorials.html"&gt;All QTP visual tutorials&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;--&lt;br /&gt;Dmitry Motevich</description><link>http://motevich.blogspot.com/2008/08/qtp-regexp-how-to-click-dynamic-link.html</link><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="http://lh5.ggpht.com/mangazey/SKYOPb99VbI/AAAAAAAAAuQ/RrZ63O6kvoo/s72-c/1_drafts_all_6.gif" width="72"/><thr:total>30</thr:total><author>noreply@blogger.com (http://motevich.blogspot.com)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3154230739686508173.post-2200540101907720795</guid><pubDate>Tue, 12 Aug 2008 23:08:00 +0000</pubDate><atom:updated>2009-10-19T23:00:32.371+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Automated testing</category><category domain="http://www.blogger.com/atom/ns#">QTP</category><category domain="http://www.blogger.com/atom/ns#">visual tutorials</category><title>QTP Descriptive Programming - How to perform operations on objects?</title><description>In previous &lt;span style="font-weight: bold;"&gt;QTP tutorial&lt;/span&gt; (&lt;a href="http://motevich.blogspot.com/2008/08/qtp-descriptive-programming-number.html"&gt;QTP Descriptive Programming - How to get number of objects&lt;/a&gt;) I explained how to get number of objects (Edits, Links, Buttons) with &lt;span style="font-weight: bold;"&gt;QTP Descriptive Programming&lt;/span&gt; (&lt;span style="font-weight: bold;"&gt;QTP DP&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;Today I'm going to show:&lt;br /&gt;&lt;div style="text-align: center; color: rgb(0, 0, 153);"&gt;&lt;span style="font-weight: bold;"&gt;How to use QTP DP to perform different operations on objects. &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;For example, how to type text in these edit boxes on &lt;a href="http://labs.google.com/sets"&gt;Google Sets&lt;/a&gt; page:&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; border:none;" src="http://lh5.ggpht.com/mangazey/SJynW3N5kPI/AAAAAAAAAsw/KKVe0D6dIs0/1_GSets_editboxes__c.gif" alt="QTP DP - How to type in edit boxes?" /&gt;&lt;br /&gt;From &lt;a href="http://motevich.blogspot.com/2008/08/qtp-descriptive-programming-number.html"&gt;previous QTP DP tutorial&lt;/a&gt; you know that this code returns a collection of Edits located on Web page:&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Set&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; Desc = &lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Description&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.Create()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Desc(&lt;/span&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;"micClass"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;).&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Value&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt; &lt;/span&gt;= &lt;/span&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;"WebEdit"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Set &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Edits = Browser(&lt;/span&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;"Google Sets"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;).Page(&lt;/span&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;"Google Sets"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;).ChildObjects(Desc)&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-weight: normal; color: rgb(0, 0, 0);"&gt;&lt;br /&gt;So, to type text in each Edit, we have to process edit boxes &lt;/span&gt;&lt;span style="font-weight: normal; color: rgb(0, 0, 0);"&gt;from returned collection &lt;/span&gt;&lt;span style="font-weight: normal; color: rgb(0, 0, 0);"&gt;one by one.&lt;br /&gt;We can access the specified item from a collection &lt;span style="font-weight: bold;"&gt;by item's index&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;For example, the following code types a text &lt;span style="font-weight: bold;"&gt;in the first edit box&lt;/span&gt;:&lt;/span&gt;&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240);"&gt;&lt;span style="font-weight: bold;"&gt;Edits(0).Set(&lt;span style="color: rgb(102, 51, 51);"&gt;"Text in Edit #1"&lt;/span&gt;)&lt;br /&gt;&lt;/span&gt;&lt;/div&gt; &lt;span style="font-weight: normal; color: rgb(0, 0, 0);"&gt;And its result is:&lt;br /&gt;&lt;/span&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; border:none;" src="http://lh5.ggpht.com/mangazey/SJy83ff_NTI/AAAAAAAAAtM/ngBdOBAj7bU/2_Edit1_result__c.gif" alt="QTP DP - Firt Edit" /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Note:&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;ChildObjects&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; returns zero-based collection &lt;/span&gt;&lt;/span&gt;of found objects.&lt;br /&gt;That's why use Edits(&lt;span style="font-weight: bold;"&gt;0&lt;/span&gt;) to access &lt;span style="font-weight: bold;"&gt;first item&lt;/span&gt;, Edits(&lt;span style="font-weight: bold;"&gt;1&lt;/span&gt;) to access &lt;span style="font-weight: bold;"&gt;second item&lt;/span&gt;, and so on.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So, we add a loop to process all edit boxes on a page.&lt;br /&gt;The final &lt;span style="font-weight: bold;"&gt;QTP script&lt;/span&gt; is:&lt;br /&gt;&lt;div id="htmlcode" style="border: 1px solid gray; margin: 10pt; padding: 10pt; background-color: rgb(240, 240, 240);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Set&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; Desc = &lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Description&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.Create()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Desc(&lt;/span&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;"micClass"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;).&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Value&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt; &lt;/span&gt;= &lt;/span&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;"WebEdit"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Set &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Edits = Browser(&lt;/span&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;"Google Sets"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;).Page(&lt;/span&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;"Google Sets"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;).ChildObjects(Desc)&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;NumberOfItems = Edits.&lt;span style="color: rgb(0, 0, 153);"&gt;Count&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;For &lt;/span&gt;i = 0 &lt;span style="color: rgb(0, 0, 153);"&gt;To &lt;/span&gt;NumberOfItems - 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Edits(i).&lt;span style="color: rgb(0, 0, 153);"&gt;Set&lt;/span&gt;(&lt;span style="color: rgb(102, 51, 51);"&gt;"Text in Edit #"&lt;/span&gt; &amp;amp; (i+1))&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Next&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-weight: normal; color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;This code fills all Edits in. So, the result page looks like:&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; border:none;" src="http://lh6.ggpht.com/mangazey/SJyzGPMN4ZI/AAAAAAAAAtA/etU8rnrqUfw/3_result__c.gif" alt="Result of QTP DP" /&gt;&lt;span style="font-weight: normal; color: rgb(0, 0, 0);"&gt;As you can see - &lt;span style="font-weight: bold;"&gt;QuickTest Professional Descriptive Programming&lt;/span&gt; works correctly.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Note:&lt;/span&gt; If the initial page contains more (i.e. 8) or less (i.e. 3) number of edit boxes, our &lt;span style="font-weight: bold;"&gt;QTP script will work without changes&lt;/span&gt;!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Note:&lt;/span&gt; Since we do not use QTP Object Repository (QTP OR), this approach can be integrated easily into any existing QTP system. &lt;span style="font-weight: bold;"&gt;Shared &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;Object Repository is not required!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: normal; color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Summary:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;The article shows how to perform operations on objects.&lt;br /&gt;The approach uses &lt;span style="font-weight: normal; color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;QuickTest Professional Descriptive Programming.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-weight: bold;"&gt;Related articles:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/04/how-to-run-qtp-test-from-command-line.html"&gt;QTP VIDEO - How to run test from command line?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/08/qtp-descriptive-programming-number.html"&gt;QTP Descriptive Programming - How to get number of objects&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/05/qtp-descriptive-programming-processing.html"&gt;QTP Descriptive programming - Processing images&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/06/qtp-descriptive-programming-browsers.html"&gt;QTP Descriptive Programming - How to close browsers&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/08/qtp-get-number-of-pages-pdf-file.html"&gt;QTP - How to get number of pages in PDF file?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2007/10/qtp-set-get-system-time-date.html"&gt;QTP - How to set/get system time and date?&lt;/a&gt;&lt;/li&gt;&lt;li style="font-weight: bold;"&gt;&lt;a href="http://motevich.blogspot.com/2008/01/qtp-tutorials.html"&gt;All QTP visual tutorials&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;hr /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;Do you like this &lt;span style="font-weight: bold;"&gt;QTP tutorial&lt;/span&gt;? Would you like to receive them in the future?&lt;br /&gt;If yes, please subscribe to this &lt;a href="http://feeds.feedburner.com/motevich"&gt;blog RSS feed&lt;/a&gt; or &lt;a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=1890249&amp;amp;loc=en_US"&gt;by Email&lt;/a&gt;. (&lt;a href="http://motevich.blogspot.com/2008/04/how-to-subscribe-to-my-blog.html"&gt;How to subscribe? VIDEO guide&lt;/a&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;    &lt;span class="post-author vcard"&gt; &lt;/span&gt;</description><link>http://motevich.blogspot.com/2008/08/qtp-descriptive-programming-operations_13.html</link><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="http://lh5.ggpht.com/mangazey/SJynW3N5kPI/AAAAAAAAAsw/KKVe0D6dIs0/s72-c/1_GSets_editboxes__c.gif" width="72"/><thr:total>13</thr:total><author>noreply@blogger.com (http://motevich.blogspot.com)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3154230739686508173.post-1680561737286491845</guid><pubDate>Tue, 12 Aug 2008 19:12:00 +0000</pubDate><atom:updated>2009-10-19T23:00:18.449+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Automated testing</category><category domain="http://www.blogger.com/atom/ns#">LoadRunner</category><category domain="http://www.blogger.com/atom/ns#">LR parameters</category><category domain="http://www.blogger.com/atom/ns#">Video</category><category domain="http://www.blogger.com/atom/ns#">visual tutorials</category><title>LoadRunner VIDEO tutorial - Parameters part3 ('Select next row' = 'Unique')</title><description>Here is last part of &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;LoadRunner video tutorial&lt;/span&gt; on working with &lt;span style="font-weight: bold;"&gt;LoadRunner parameters&lt;/span&gt;.&lt;br /&gt;It explains different combinations of the parameter setting &lt;span style="font-weight: bold;"&gt;'Select next row' = 'Unique'&lt;/span&gt;.&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;br /&gt;Note:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://motevich.blogspot.com/2008/06/loadrunner-video-tutorial-parameter-1.html"&gt;&lt;span style="font-weight: bold;"&gt;LoadRunner parameters #1 - video tutorial&lt;/span&gt; is available here&lt;/a&gt;.&lt;br /&gt;&lt;a href="http://motevich.blogspot.com/2008/07/loadrunner-video-tutorial-parameter-2.html"&gt;&lt;span style="font-weight: bold;"&gt;LoadRunner parameters #2 - video tutorial&lt;/span&gt; is available here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The present &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;LoadRunner video tutorial&lt;/span&gt; covers the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Settings on &lt;span style="font-weight: bold;"&gt;Parameter List dlg&lt;/span&gt;&lt;br /&gt;Option 'Select next row' = &lt;span style="font-weight: bold;"&gt;'Unique'&lt;/span&gt;&lt;br /&gt;Option 'Update value on' = &lt;span style="font-weight: bold;"&gt;'Each iteration'&lt;/span&gt;&lt;br /&gt;Option 'Update value on' = &lt;span style="font-weight: bold;"&gt;'Each occurrence'&lt;/span&gt;&lt;br /&gt;Option 'Update value on' = &lt;span style="font-weight: bold;"&gt;'Once'&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Option&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span&gt;'When out of values' = &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;'Abort Vuser'&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Option&lt;/span&gt;&lt;span&gt; 'When out of values' = &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;'Continue in a cyclic manner'&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Option&lt;/span&gt;&lt;span&gt; 'When out of values' = &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;'Continue with last value'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'Allocate Vuser values in the Controller'&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How to view an &lt;span style="font-weight: bold;"&gt;output value&lt;/span&gt; of LoadRunner parameter&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: center; font-weight: bold; color: rgb(0, 0, 153);"&gt;LoadRunner parameters explained&lt;br /&gt;part 3 of 3 (Select next row = Unique)&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: left; font-weight: normal; color: rgb(0, 0, 0);"&gt;&lt;div style="text-align: center;"&gt;&lt;embed src="http://blip.tv/play/AcfPWAA" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="390"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-weight: bold;"&gt;Related articles:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/06/loadrunner-video-tutorial-parameter-1.html"&gt;LoadRunner VIDEO tutorial - Parameters part1 ('Select next row' = 'Sequential')&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/07/loadrunner-video-tutorial-parameter-2.html"&gt;LoadRunner VIDEO tutorial - Parameters part2 ('Select next row' = 'Random')&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2008/06/unique-file-name-loadrunner-parameter.html"&gt;&lt;/a&gt;&lt;a href="http://motevich.blogspot.com/2007/10/loadrunner-analysis-report-command-line.html"&gt;How to automatically create custom HTML report in LoadRunner Analysis from command line?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://motevich.blogspot.com/2007/11/loadrunner-parameter-string-int.html"&gt;&lt;/a&gt;&lt;a href="http://motevich.blogspot.com/2008/05/examples-on-loadrunner-regular.html"&gt;Examples on LoadRunner Regular Expressions&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://motevich.blogspot.com/2008/01/loadrunner-tutorials.html"&gt;All LoadRunner visual tutorials&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Do you like this &lt;span style="font-weight: bold;"&gt;LoadRunner video tutorial&lt;/span&gt;? Would you like to receive them in the future?&lt;br /&gt;If yes, please subscribe to this &lt;a href="http://feeds.feedburner.com/motevich"&gt;blog RSS feed&lt;/a&gt; or &lt;a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=1890249&amp;amp;loc=en_US"&gt;by Email&lt;/a&gt;. (&lt;a href="http://motevich.blogspot.com/2008/04/how-to-subscribe-to-my-blog.html"&gt;How to subscribe? VIDEO guide&lt;/a&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;/div&gt;</description><link>http://motevich.blogspot.com/2008/08/loadrunner-video-tutorial-parameter-3.html</link><thr:total>10</thr:total><author>noreply@blogger.com (http://motevich.blogspot.com)</author></item></channel></rss>