﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客网-我的ITblog我作主　　关注→　『伊波拉』→　测试　SzDlinXie- ITblog　　  　　   -随笔分类-软件自动化测试</title><link>http://www.cnitblog.com/szdlinxie/category/4497.html</link><description>·√·  本ITblog站点记录相关的软件技术文档、网络技术杂志、测试技术杂谈等技术文档的管理站点.联系方式：MSN：dowling@sunlike.cn   QQ:94595885</description><language>zh-cn</language><lastBuildDate>Tue, 06 May 2008 21:34:03 GMT</lastBuildDate><pubDate>Tue, 06 May 2008 21:34:03 GMT</pubDate><ttl>60</ttl><item><title>Linux服务器性能数据收集-Sysstat介绍</title><link>http://www.cnitblog.com/szdlinxie/archive/2008/05/06/43396.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Tue, 06 May 2008 03:12:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2008/05/06/43396.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/43396.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2008/05/06/43396.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/43396.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/43396.html</trackback:ping><description><![CDATA[&nbsp;
<p align=center><strong><span>Linux</span></strong><strong><span>服务器性能数据收集</span></strong></p>
<p align=center><strong><span>Sysstat</span></strong><strong><span>介绍</span></strong></p>
<p align=left><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>&nbsp; <strong><u><span>Linux</span></u></strong></span><span>中的<span>top,free</span>等命令不能完全满足我们性能数据收集的要求，我们需要一个更加强大的工具来收集性能数据。经过考察和对比，发现<span>Sysstat</span>是一个非常强大的工具，因此下载了试了下，效果不错。<span>Sysstat</span>是一个工具集，包括<span>sar</span>、<span>pidstat</span>、<span>iostat</span>、<span>mpstat</span>、<span>sadf</span>、<span>sadc</span>。其中<span>sar</span>是其中最强大，也是最能符合我们<strong><u><span>测试</span></u></strong>要求的工具，同时<span>pidstat</span>也是非常有用的东东，因此本文结合<strong><u><span>性能测试</span></u></strong>重点介绍这两个工具。<span> </span></span></p>
<p align=left><strong><span>Sysstat</span></strong><strong><span>的安装</span></strong></p>
<p align=left><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>从<span>http://pagesperso-orange.fr/sebastien.godard/download.html</span>下载最新版本，解压，安装<span> </span></span></p>
<ul type=disc>
    <li><span>&nbsp;wget&nbsp;http://pagesperso-orange.fr/sebastien.godard/sysstat-<st1:chsdate w:st="on" IsROCDate="False" IsLunarDate="False" Day="30" Month="12" Year="1899">8.1.2</st1:chsdate>.tar.gz<br>&nbsp;tar&nbsp;zxvf&nbsp;sysstat-8.1.2.tar.gz<br>&nbsp;cd&nbsp;sysstat-8.1.2<br>&nbsp;./configure<br>&nbsp;make<br>&nbsp;su<br>&nbsp;&lt;enter&nbsp;root&nbsp;password&gt;<br>&nbsp;make&nbsp;install</span></li>
</ul>
<p align=left><strong><span>监视某个进程</span></strong></p>
<p align=left><span><span>1.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>通过<span>ps</span>命令找到相应进程的<span>PID</span>：<span> </span></span></p>
<p align=left><span><img src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1040"><span>ps&nbsp;-e</span></span></p>
<p align=left><span><span>2.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>使用<span>pidstat</span>命令监视进程，详细用法见：<u><span>http://pagesperso-orange.fr/sebastien.godard/man_pidstat.html</span></u><span> </span></span></p>
<p align=left><span>pidstat&nbsp;</span><span>2</span>&nbsp;<span>5</span><span>&nbsp;<br></span><span>//</span><span>每隔<span>2</span>秒，显示<span>5</span>次，所有活动进程的<span>CPU</span>使用情况<span><br></span></span><span>pidstat&nbsp;-p&nbsp;</span><span>3132</span>&nbsp;<span>2</span>&nbsp;<span>5</span><span>&nbsp;<br></span><span>//</span><span>每隔<span>2</span>秒，显示<span>5</span>次，<span>PID</span>为<span>1643</span>的进程的<span>CPU</span>使用情况显示<span><br></span></span><span>pidstat&nbsp;-p&nbsp;</span><span>3132</span>&nbsp;<span>2</span>&nbsp;<span>5</span><span>&nbsp;-r<br></span><span>//</span><span>每隔<span>2</span>秒，显示<span>5</span>次，<span>PID</span>为<span>1643</span>的进程的内存使用情况显示</span></p>
<p align=left><span><span>3.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>很可惜的是，<span>pidstat</span>命令没有保存性能数据的功能。<span> </span></span></p>
<p align=left><strong><span>查看性能数据</span></strong></p>
<p align=left><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>在<span>sysstat</span>工具包中，<span>sar</span>是最强大的了，通过<span>sar</span>几乎可以监视所有的性能数据，同时，<span>sar</span>还支持将性能数据保存起来。<span><br>sar</span>详细用法请见：<span><a href="http://pagesperso-orange.fr/sebastien.godard/man_sar.html">http://pagesperso-orange.fr/sebastien.godard/man_sar.html</a> </span></span></p>
<p align=left><span><span>1.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>查看<span>CPU</span>使用情况<span> </span></span></p>
<p align=left><span><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1041"><span>sar&nbsp;</span><span>2</span>&nbsp;<span>5</span><span><br><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1042"></span><span>//</span></span><span>每隔<span>2</span>秒，显示<span>5</span>次，<span>CPU</span>使用的情况</span></p>
<p align=left><span><span>2.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>查看内存使用情况<span> </span></span></p>
<p align=left><span><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1043"><span>sar&nbsp;-r&nbsp;</span><span>2</span>&nbsp;<span>5</span><span><br><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1044"></span><span>//</span></span><span>每隔<span>2</span>秒，显示<span>5</span>次，内存使用的情况</span></p>
<p align=left><span><span>3.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>查看网络吞吐量<span> </span></span></p>
<p align=left><span><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1045"><span>sar&nbsp;-n&nbsp;DEV&nbsp;</span><span>2</span>&nbsp;<span>5</span><span><br><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1046"></span><span>//</span></span><span>每隔<span>2</span>秒，显示<span>5</span>次，网络吞吐量情况</span></p>
<p align=left><strong><span>保存性能数据</span></strong></p>
<p align=left><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sar</span><span>支持保存成两种格式的文件，一种是文本文件，一种是二进制文件（只有通过<span>sar</span>自己的命令才能查看）。<span> </span></span></p>
<p align=left><span><span>1.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><strong><span>保存为文本文件</span></strong><span><br><br></span><span>结合上面的查看命令，加入<span> &gt; filename </span>参数即可保存文本文件，下面列出几个有用的命令：<span> </span></span></p>
<p align=left><span><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1047"><span>sar&nbsp;</span><span>1</span>&nbsp;<span>10</span><span>&nbsp;&gt;&nbsp;data.txt<br><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1048"></span><span>//</span></span><span>每隔<span>1</span>秒，写入<span>10</span>次，把<span>CPU</span>使用数据保存到<span>data.txt</span>文件中。<span><br><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1049"></span></span><span>sar&nbsp;</span><span>1</span>&nbsp;<span>0</span><span>&nbsp;-e&nbsp;</span><span>15</span><span>:</span><span>00</span><span>:</span><span>00</span><span>&nbsp;&gt;&nbsp;data.txt<br><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1050"></span><span>//</span><span>每隔<span>1</span>秒记录<span>CPU</span>的使用情况，直到<span>15</span>点，数据将保存到<span>data.txt</span>文件中。<span>(-e&nbsp;</span>参数表示结束时间，注意时间格式：必须为<span>hh:mm:ss</span>格式<span>)<br><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1051"></span></span><span>sar&nbsp;</span><span>1</span>&nbsp;<span>0</span><span>&nbsp;-r&nbsp;-e&nbsp;</span><span>15</span><span>:</span><span>00</span><span>:</span><span>00</span><span>&nbsp;&gt;&nbsp;data.txt<br><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1052"></span><span>//</span><span>每隔<span>1</span>秒记录内存使用情况，直到<span>15</span>点，数据将保存到<span>data.txt</span>文件中。<span><br><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1053"></span></span><span>sar&nbsp;</span><span>1</span>&nbsp;<span>0</span><span>&nbsp;-n&nbsp;DEV&nbsp;-e&nbsp;</span><span>15</span><span>:</span><span>00</span><span>:</span><span>00</span><span>&nbsp;&gt;&nbsp;data.txt<br><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1054"></span><span>//</span><span>每隔<span>1</span>秒记录网络使用情况，直到<span>15</span>点，数据将保存到<span>data.txt</span>文件中。</span></p>
<p align=left><span>用<span>WinSCP</span>工具从<span>Linux</span>服务器上取下<span>data.txt</span>文件，内容如下：</span></p>
<p align=left><span><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1055"><span>Linux&nbsp;</span><st1:chsdate w:st="on" IsROCDate="False" IsLunarDate="False" Day="30" Month="12" Year="1899"><span>2.6</span><span>.</span><span>18</span></st1:chsdate><span>-</span><span>53</span><span>.el5&nbsp;(Performancesvr5)&nbsp;&nbsp;<st1:chsdate w:st="on" IsROCDate="False" IsLunarDate="False" Day="05" Month="05" Year="2008">2008<span><span>年05</span></span><span><span>月05</span></span><span><span>日</span></span></st1:chsdate>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_x86_64_<br><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1056"><br><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1057">&nbsp;11</span></span><span>时<span>04</span>分<span>05</span>秒<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CPU&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%user&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%nice&nbsp;&nbsp;&nbsp;%system&nbsp;&nbsp;&nbsp;%iowait&nbsp;&nbsp;&nbsp;&nbsp;%steal&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%idle<br><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1058">&nbsp;11</span>时<span>04</span>分<span>06</span>秒<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span>0.25</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>99.75</span><span><br><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1030">&nbsp;11</span><span>时<span>04</span>分<span>07</span>秒<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.25</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>99.75</span><span><br><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1031">&nbsp;11</span><span>时<span>04</span>分<span>08</span>秒<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span>0.25</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.25</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>1.50</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>98.00</span><span><br><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1032">&nbsp;11</span><span>时<span>04</span>分<span>09</span>秒<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span>0.25</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.50</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>99.25</span><span><br><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1033">&nbsp;11</span><span>时<span>04</span>分<span>10</span>秒<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span>100.00</span><span><br><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1034">&nbsp;11</span><span>时<span>04</span>分<span>11</span>秒<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span>0.25</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.25</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>99.50</span><span><br><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1035">&nbsp;11</span><span>时<span>04</span>分<span>12</span>秒<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.25</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>99.75</span><span><br><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1036">&nbsp;11</span><span>时<span>04</span>分<span>13</span>秒<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span>0.50</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.50</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.99</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>98.01</span><span><br><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1037">&nbsp;11</span><span>时<span>04</span>分<span>14</span>秒<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>1.25</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>98.75</span><span><br><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1038">&nbsp;11</span><span>时<span>04</span>分<span>15</span>秒<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span>0.50</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>99.50</span><span><br><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1039">&nbsp;</span><span>平均时间<span>:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span>0.20</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.15</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.42</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>0.00</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>99.23</span></p>
<p align=left><span>有了这份数据，就可以轻松的使用<span>WPS</span>表格来统计<span>CPU</span>的使用情况了。<span> </span></span></p>
<p align=center><span><img border=0 alt=111 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image002.jpg" width=529 height=278 v:shapes="_x0000_i1025"></span></p>
<p align=left><strong><span>保存为二进制文件</span></strong><span><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>由于保存的二进制文件只有<span>sar</span>通过<span>-f</span>参数才能打开，不利于我们分析和统计数据，因此不推荐使用这个方法。保存二进制文件的参数是<span>-o</span>，如：<span> </span></span></p>
<p align=left><span><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1026"><span>sar&nbsp;</span><span>1</span>&nbsp;<span>5</span><span>&nbsp;-r&nbsp;-o&nbsp;data<br><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1027"></span><span>//</span></span><span>每隔<span>1</span>秒，写入<span>5</span>次，将内存使用的数据写入二进制文件<span>data</span>中。<span><br><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1028"></span></span><span>sar&nbsp;-f&nbsp;data<br><img border=0 src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.gif" width=11 height=16 v:shapes="_x0000_i1029"></span><span>//</span><span>查看<span>data</span>文件</span></p>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/43396.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2008-05-06 11:12 <a href="http://www.cnitblog.com/szdlinxie/archive/2008/05/06/43396.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Rational Robot 基础使用手册</title><link>http://www.cnitblog.com/szdlinxie/archive/2007/05/21/27372.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Mon, 21 May 2007 06:17:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2007/05/21/27372.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/27372.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2007/05/21/27372.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/27372.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/27372.html</trackback:ping><description><![CDATA[<p>Rational Robot 基础使用手册<br>目录..................................................................................................................................................................................... 1<br>第一章 绪论....................................................................................................................................................................... 3<br>一、概述......................................................................................................................................................................... 3<br>二、基本概念................................................................................................................................................................. 4<br>第二章 使用....................................................................................................................................................................... 5<br>一、GUI 脚本................................................................................................................................................................. 5<br>（一）、设置以及预定义........................................................................................................................................... 5<br>（二）、记录GUI 脚本............................................................................................................................................ 10<br>（三）、在GUI Script 中加入特写........................................................................................................................... 17<br>（四）、使用查证点................................................................................................................................................. 22<br>（五）、使用Datapools............................................................................................................................................ 23<br>（六）、编辑GUI 脚本............................................................................................................................................ 25<br>（七）、编译GUI 脚本............................................................................................................................................ 26<br>（八）、调试GUI 脚本............................................................................................................................................ 27<br>（九）、回放GUI 脚本............................................................................................................................................ 29<br>（十）、工具条操作................................................................................................................................................. 30<br>二、VU 脚本................................................................................................................................................................ 32<br>（一）、设置以及预定义......................................................................................................................................... 32<br>（二）、记录VU 脚本.............................................................................................................................................. 32<br>（三）、回放VU 脚本.............................................................................................................................................. 33<br>（四）、重录VU 脚本.............................................................................................................................................. 33<br>（五）、复制VU 脚本.............................................................................................................................................. 34<br>（六）、删除VU 脚本.............................................................................................................................................. 34<br>（七）、编译VU 脚本.............................................................................................................................................. 34<br>（八）、查询会话中的脚本列表.............................................................................................................................. 34<br>（九）、用会话生成脚本......................................................................................................................................... 35<br>（十）、将VU 脚本融入会话.................................................................................................................................. 35<br>（十一）、手工VU 脚本编码.................................................................................................................................. 35<br>三、VB 脚本................................................................................................................................................................. 36<br>四、SQA BASIC............................................................................................................................................................. 37<br>（一）、定制SQA Basic 脚本.................................................................................................................................. 37<br>五、测试应用程序....................................................................................................................................................... 42<br>（一）、测试Delphi 应用程序................................................................................................................................. 42<br>51Testing 软件测试网<br>（二）、测试Visual Basic 应用程序......................................................................................................................... 43<br>第三章 参考................................................................................................................................................................... 44<br>（一）查证点............................................................................................................................................................... 44<br>（二）查证方法........................................................................................................................................................... 45<br>（三）鉴别方法........................................................................................................................................................... 45<br>（四）标准数据类型................................................................................................................................................... 45<br>（五）RATIONAL ROBOT 命令行选项....................................................................................................................... 45<br>（六）RATIONAL ROBOT 窗口.................................................................................................................................. 45<br>（七）菜单................................................................................................................................................................... 45<br></p>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/27372.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2007-05-21 14:17 <a href="http://www.cnitblog.com/szdlinxie/archive/2007/05/21/27372.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Rational Suite Enterprise2002---系统测试解决方案</title><link>http://www.cnitblog.com/szdlinxie/archive/2007/05/21/27370.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Mon, 21 May 2007 06:10:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2007/05/21/27370.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/27370.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2007/05/21/27370.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/27370.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/27370.html</trackback:ping><description><![CDATA[Rational Suite Enterprise2002<br>系统测试解决方案V 1.0<br><br>Rational 系统测试解决方案 目录<br>- I -<br>目录<br>第一章 整体解决方案.................................................................................................................................. 1<br>第二章 产品线简介...................................................................................................................................... 3<br>2.1 测试管理........................................................................................................................................ 3<br>2.2 调用和功能测试............................................................................................................................. 3<br>2.3 运行时分析.................................................................................................................................... 3<br>2.4 功能测试........................................................................................................................................ 3<br>2.5 微软开发环境的功能测试............................................................................................................. 3<br>2.6 针对X-Windows和终端应用的衰减和调用测试......................................................................... 3<br>2.7 变更影响跟踪................................................................................................................................ 3<br>第三章 具体产品简介.................................................................................................................................. 4<br>3.1 TestManager.................................................................................................................................. 4<br>3.1.1 获得需求变更对于测试的影响........................................................................................... 4<br>3.1.2 让整个团队获得信息共享访问......................................................................................... 4<br>3.1.3 独立性和集成性................................................................................................................. 4<br>3.2 TeamTest........................................................................................................................................ 4<br>3.2.1 提高应用程序质量............................................................................................................. 4<br>3.2.2 重复功能性测试................................................................................................................. 4<br>3.2.3 量化的性能测试................................................................................................................. 4<br>3.2.4 集成测试管理..................................................................................................................... 4<br>3.3 PurifyPlus.................................................................................................................................... 5<br>3.3.1 Features and Benefits................................................................................................... 5<br>3.3.2 已支持环境......................................................................................................................... 5<br>3.3.3 注册.................................................................................................................................... 5<br>3.4 Robot.............................................................................................................................................. 5<br>3.4.1 降低测试用时提高效率..................................................................................................... 5<br>3.4.2 Rational Robot的性能.................................................................................................... 5<br>3.5 Visual Test.................................................................................................................................. 6<br>3.6 prevue............................................................................................................................................ 6<br>3.6.1 自动化脚本生成................................................................................................................. 6<br>3.6.2 非插入性测试..................................................................................................................... 6<br>3.6.3 全面的测试结果................................................................................................................. 6<br>3.7 ClearQuest.................................................................................................................................... 6<br>3.7.1 缺陷和变更跟踪工具-- Rational ClearQuest ............................................................. 6<br>3.7.2 配合你的工作方式............................................................................................................. 6<br>3.7.3 针对整个生命周期的变更跟踪......................................................................................... 6<br>3.7.4 设计一次就可以到处使用................................................................................................. 7<br>3.7.5 将分散的团队整合起来..................................................................................................... 7<br>Rational 系统测试解决方案 整体解决方案<br>- 1 -<br>第一章 整体解决方案<br>TestStudio 是Rational Suite Enterprise的系统测试工具组, 提供了针对可靠性测试, 功能<br>测试, 分布式功能测试, 衰减测试, 单元测试和CS的调用测试, 网页应用测试和ERP应用测试的自<br>动化解决方案. 它提供了一个同开发无缝集成的测试过程, 软件配置管理和测试管理三方面的支<br>持，提高了测试质量和最终的产品质量.<br>针对嵌入式-实时-基于网络的应用产品, Rational提供了实时测试套件. 它提供了针对目标主<br>机的测试, 代码覆盖措施, 内存泄漏检测和性能记录等方面的自动化功能.<br>在开发下一代应用程序软件的激烈竞赛中，企业所面临的压力越来越大，需要在更短时间内开<br>发出更高质量的产品，即我们称之为&#8220;软件开发矛盾&#8221;的两难境地。过去，企业通常以质量为代价<br>或推迟开发某些新功能，来满足产品的面市期限。如今，这些企业认识到：要想生存，就必须在第<br>一时间内既快又好地开发出应用程序。也就是说，开发团队中的每位成员都必须以保证产品质量为<br>己任。Rational Suite TestStudio v2002 可以使企业在Internet 时代，通过交付高质量的应用<br>程序，帮助他们解决软件开发的矛盾。<br>Rational Suite TestStudio 提供了一种集成测试解决方案，使测试人员就产品的功能、可靠<br>性和性能，进行全方位的质量测试。它包括一整套自动化测试和缺陷跟踪工具，以及Rational 团<br>队统一平台(Rational Team Unifying Platform)。该平台通过提供对项目需求、变更请求、测试资<br>料及其他数据的共享，提高了团队的工作效率。通过Rational 软件开发服务机构提供的支持，<br>Rational Suite TestStudio 可以帮助开发团队加速应用程序的开发和实施。<br>功能测试，可以确保应用程序满足产品规格说明和测试计划的每一条业务需求。Rational Suite<br>TestStudio 的目标，是使功能测试变得更简单、有效并可重复执行。为便于这种基于需求的测试，<br>它还提供了Rational RequisitePro.（获奖的需求管理工具）和Rational Robot（创建和维护功能<br>测试脚本的业界领先工具）。<br>Rational Robot 可以对在各种独立开发环境(IDE) 中开发的应用程序，创建、修改并执行功能<br>测试、分布式功能测试、回归测试以及整合测试。它还可以记录并回放能识别业务应用程序对象的<br>测试脚本。除此之外，使用Rational Robot 还可以快速有效地跟踪、报告与质量保证测试相关的<br>所有信息，并将这些信息绘制成图表。使用Rational Suite TestStudio 集成工具包， 可以在一<br>个测试周期中，将Rational Robot 的回归测试与Rational Purify. 结合使用完成可靠性测试，与<br>Rational PureCoverage. 结合使用完成代码覆盖计算，与Rational Quantify. 结合使用完成应用<br>程序性能测试。通过将优化的回归测试脚本与该工具化的测试方式相结合， Rational Suite<br>TestStudio 使可靠性及功能回归测试达到了前所未有的水平。<br>Rational Suite TestStudio 通过Rational TestFactory. 使可靠性测试自动化，该工具可以<br>自动找出应用程序中的缺陷。Rational TestFactory 将在自动认知用户界面的基础上， 创建测试<br>流程对应用程序进行严格的测试。基于这一点，它首先为要测试的应用程序构建元素图，然后自动<br>测试其中的每个元素。它可以找出所有的程序缺陷，例如，运行时错误（如挂起和异常）或设计缺<br>陷（如对话框按钮缺少快捷键）。对于每一个缺陷，TestFactory 都会创建相应的脚本将其重现。随<br>后，测试人员在Rational ClearQuest.（全面集成的变更与缺陷管理系统）中报告缺陷，确保将这<br>些缺陷被正确地跟踪并修正。<br>通过确定哪些功能测试脚本会受到代码变更的影响，Rational TestFactory 可以加速并简化回<br>归测试。这样，测试人员可以快速找到所做的修改，并且运行最少的脚本，即可对开发人员所做的<br>任何修改进行全面测试。<br>Rational Suite TestStudio 提供三种级别的诊断信息，开发人员可以对导致性能不佳的业务<br>事务处理、底层客户端调用和系统资源进行分析， 来找出产生性能瓶颈的原因。例如，Rational<br>Suite TestStudio 性能测试可以帮助测试人员确定，何时可通过增加系统内存或提高CPU 速度来<br>Rational 系统测试解决方案 整体解决方案<br>- 2 -<br>优化后端服务器，还可以找出，导致性能问题的客户端、中间层或服务器端代码所在的特定区域。<br>性能测试的准确性取决于测试工具根据实际用户负载情况调节测试负载，以及通过模拟实际工<br>作负载时间进度情况创建负载的能力。使用Rational Suite TestStudio，不必编程就可以迅速制<br>定综合的使用方案来模拟用户组活动，并创建工作负载计划。在给定时间内，通过指定虚拟用户群<br>提交事务处理的数量和类型， Rational Suite TestStudio 可以准确控制事务处理的速度。而且，<br>Rational Suite TestStudio 可以将功能测试与负载测试集于一身，便于测试人员设置后端服务器<br>的负载规模，同时使用同一个计划对客户端进行功能测试。<br>Rational 系统测试解决方案 产品线简介<br>- 3 -<br>第二章 产品线简介<br>2.1 测试管理<br>Rational TestManager 从一个独立的,全局的角度对于各种测试活动进行管理和控制. 它让测<br>试者可以随时了解需求变更对于测试用例的影响, 通过针对一致目标而进行的测试与报告提高了团<br>队生产力.<br>2.2 调用和功能测试<br>Rational TeamTest 提供了功能, 分布式功能, 衰减, 客户-服务器应用调用, 网页和ERP应用<br>的自动化测试解决方案. 通过跟踪和测试管理可以降低团队开发和配置的风险.<br>2.3 运行时分析<br>Rational PurifyPlus 工具集对于开发期间的单元测试实现了自动化, 确保了可靠性, 高性能<br>和高质量. 包括三个独立工具:<br>l Rational Purify<br>定位内存泄漏和运行时错误<br>l Rational Quantify<br>寻找性能瓶颈<br>l Rational PureCoverage<br>表示了未测试代码和提供代码覆盖分析<br>2.4 功能测试<br>Rational Robot 是一个针对WEB, ERP 和C/S 进行功能自动化测试的工具. 它可以降低功能测<br>试上的人力和物力的投入和风险包括了可见和非可见对象.<br>2.5 微软开发环境的功能测试<br>Rational Visual Test则是针对Windows应用程序的功能测试的自动化工具. 它可以直接针对<br>微软的可视化开发环境使用可复用, 可维护和可扩展的测试脚本, 降低了开发高质量软件的花费.<br>2.6 针对X-Windows和终端应用的衰减和调用测试<br>Rational preVue 是一个针对企业级别的基于X-Windows 和终端应用的自动化测试工具. 它们<br>降低了发布风险, 投入并且提高了用户的满意程度.<br>2.7 变更影响跟踪<br>Rational ClearQuest 是一个可以使用于任意平台上各种类型的项目的需求跟踪和变更调整工<br>具.<br>Rational 系统测试解决方案 具体产品简介<br>- 4 -<br>第三章 具体产品简介<br>3.1 TestManager<br>Rational TestManager用来从各个方面进行测试管理:<br>* 测试计划<br>* 测试设计<br>* 测试实现<br>* 测试执行<br>* 结果分析<br>Rational TestManager 可以处理针对测试的计划, 执行和结果数据收集-甚至包括使用第三方<br>的测试工具.使用Rational TestManager, 测试者可以通过创建, 维护或引用测试用例来组织自己<br>的测试计划, 包括来自外部稳定, 模块, 需求变更请求和Excel 电子表格的数据.<br>3.1.1 获得需求变更对于测试的影响<br>Rational TestManager 一个主要功能就是通过自动跟踪整个项目的质量和需求状态来分析所<br>造成的针对测试用例的影响, 由此成为整个软件团队的项目状态的数据集散中心.<br>3.1.2 让整个团队获得信息共享访问<br>QA 或者QE 经理, 商业分析师, 开发者和测试者使用Rational TestManager 都恶意获得基于<br>他们自己特定角度的测试结构数据, 并且利用这些数据对于他们的工作进行决策. Rational<br>TestManager 在整个项目生命周期内为团队提供了持续地面向测试计划目标的状态和进度跟踪.<br>3.1.3 独立性和集成性<br>Rational TestManager 在Rational Suite TestStudio 中作为一个独立组件存在. 我们也可以<br>配合Rational TeamTest 和Rational Robot 使用.作为一个集成的解决方案套件, Rational<br>TestManager 可以和Rational 的其他产品很好的连接各种产品的输入的即时跟踪, 诸如: Rational<br>RequisitePro 需求组件, Rational Rose系统分析模型, 和Rational ClearQuest 需求变更. 它的<br>开发式API可以让测试者为不同输入类型制作接口配件.<br>3.2 TeamTest<br>3.2.1 提高应用程序质量<br>Rational(r) TeamTest为开发中的项目提供了功能和性能的自动化, 高效率以及可重复的测试,<br>测试管理和跟踪能力. 测试者不仅可以降低配置应用的风险, 还减少了测试用时使得整个团队的生<br>产力得到提高.<br>3.2.2 重复功能性测试<br>Rational TeamTest 让测试者可以长剑和维护强壮的, 可重复的测试脚本进行功能-分布式功能<br>-衰减-冒烟测试, 可以集成在大多数开发环境当中, 和Rational Robot 一样, 它使用了<br>Object-Testing(r)技术.<br>3.2.3 量化的性能测试<br>测试者可以设计并执行高度量化的性能测试来模拟现实世界当中的真是情景. Rational<br>TeamTest使得不用编程就可以建立复杂的用例场景; 并且产生很有条理的报告显示性能问题的根源<br>所在.<br>3.2.4 集成测试管理<br>Rational TestManager 是一个Rational TeamTest集成组件, 是测试者的工作平台, 是一个有<br>力的, 开放式的可扩展环境来管理相关测试工作. 测试者使用Rational TestManager进行计划, 设<br>计和实现, 执行并且升级功能测试和性能测试; 并且Rational ClearQuest 负责根据相应的变更进<br>行跟踪.<br>Rational 系统测试解决方案 具体产品简介<br>- 5 -<br>3.3 PurifyPlus<br>Rational PurifyPlus是一个完整的自动化运行时分析工具, 用来提高应用程序的性能和质量.<br>它为哪些需要进行创建和配置可靠的应用程序的开发者设计, 支持Unix平台的C/C++, 和Java, 以<br>及Windows平台上的VC/C++, C#, VB.NET, VB .PurifyPlus for Windows 对于Java 的服务器端和<br>客户端提供一样的支持. 安装在你的WEB服务器上面以后, 你可以针对在服务器诸如IBM WebSphere,<br>BEA WebLogic 和Apache Jakarta Tomcat 上的Java Server Pages (JSPs)和Java servlets 使用<br>PurifyPlus.Rational PurifyPlus 由Rational Purify, Quantify 和 PureCoverage 组<br>成.PurifyPlus为Windows/UNIX开发者提高了生产力, 因为它完全集成在进程当中. 它不要求重新<br>编译目标应用程序, 不会降低你的进度. PurifyPlus 帮助你可视化的执行代码, 提供便于理解和可<br>重复信息, 可以结合或者独立于源代码-包括各种第三方组件.<br>3.3.1 Features and Benefits<br>* Rational Purify用来探测内存泄漏和代码错误.<br>* Rational Quantify 用来发现性能瓶颈.<br>* Rational PureCoverage 用来标识未测试代码.<br>3.3.2 已支持环境<br>* Rational PurifyPlus for Windows<br>Windows 2000 or NT 4.0 or above (including Japanese Windows NT 4.0)<br>Visual Studio 6.0<br>Rational PurifyPlus for UNIX<br>Sun Solaris 2.5.1, 2.6, 7, 8<br>Forte 6, Update 2, and GCC 2.95.2<br>HP-UX 10.20, 11.0, 11.11<br>HP cc/aCC, GCC 2.95.3 and GNUPro 98r2<br>Compaq Tru64 UNIX V4.0F patch 4, 4.0G patch 1, V5.0A, V5.1<br>Compaq C, CompaqCH (for Tru64 UNIX V4.0F, C or C++ prior to V6.2 supported with patch<br>CxxREDIST 621<br>3.3.3 注册<br>* Windows版本适用于nodelocked 或者floating注册方式<br>* UNIX 版本适用于named user或者floating注册方式<br>* 注册使用Globetrotter Software's FLEXlm license manager<br>3.4 Robot<br>3.4.1 降低测试用时提高效率<br>Rational Robot 是一个面向对象的工具让你可以创建, 修改和实现自动化进行功能, 衰减, 冒<br>烟测试. Rational TestManager 和Rational SiteCheck包含于Rational Robot, 让你实现测试的<br>各方面数据的团队共享, 给你一个面向站点的强壮性工具: 实现网站链接管理, 站点监视等功能.<br>3.4.2 Rational Robot的性能<br>仅仅通过鼠标就可以实现GUI 和各个属性的测试.<br>* 可以识别和记录以及重复测试各种应用程序中的对象.<br>* 跟踪, 报告和图形化你的测试进程的信息<br>* 检测以及修改你的网站的各个元素的问题<br>* 在记录的时候检查和修改测试脚本<br>* 对于多重平台使用同样测试脚本<br>Rational Robot 支持各种环境和语言, 包括HTML和DHMTL, Java, Microsoft Visual Basic and<br>Visual C++, Oracle Developer/2000, Delphi, SAP, PeopleSoft, 和Sybase PowerBuilder.<br>Rational 系统测试解决方案 具体产品简介<br>- 6 -<br>3.5 Visual Test<br>Rational Visual Test(r) 6.5 是专门为微软的视窗应用程序的开发者和测试者开发的自动化<br>功能测试工具, 并且可以和Microsoft Visual C++很好地集成. Rational Visual Test 让开发者和<br>测试者便利地组织程序.<br>特性和收益<br>* 支持Microsoft J++ WFC Controls<br>* 更好的Winfo工具<br>* 更好的套件管理者<br>* 将一个项目的所有文件批处理进入p-code<br>* 支持多监视器<br>* 新的activeX过程<br>* 新的ActiveX/Web过程<br>* 新的RUNEX 函数<br>* 新的MSI-based 安装器<br>3.6 prevue<br>Rational(r) preVue是针对X&amp;终端应用的测试解决方案, 让使用者降低测试投入和提高客户满<br>意程度. Rational preVue利用软件脚本模拟用户或者相关硬件行为, 实现自动化功能和衰减测试,<br>并以量化和图形化形式提交测试数据报告.<br>3.6.1 自动化脚本生成<br>Rational preVue 利用测试脚本记录或者"偷拍"用户和应用程序之间的交互合执行, 便于你可<br>以验证你的应用程序在各种调用方式下的性能及可靠性.<br>3.6.2 非插入性测试<br>使用Rational preVue 不需要额外负担. 针对目标应用程序不需要定制函数库或者修改. 该"<br>黑盒"方式允许你可以实现平台无关的X&amp;终端程序的测试.<br>3.6.3 全面的测试结果<br>Rational preVue 使用专业的报告, 图片和日志保存测试结果. 图片帮助你及早发现微小的质<br>量和性能问题, 使得它们没有机会暴露给最终用户.<br>* Rational preVue-X<br>X Window测试工具, 可以在任何X Window 环境中使用.<br>* Rational preVue-ASCII<br>远程终端模拟器, 模拟用户操作应用程序进行多用户自动化测试. Rational preVue-ASCII 支持<br>UNIX, MS Windows NT, MVS, 或者VMS 等系统的终端应用程序测试.<br>3.7 ClearQuest<br>3.7.1 缺陷和变更跟踪工具-- Rational ClearQuest<br>Rational(r) ClearQuest(r)缺陷跟踪工具是目前最具扩展性的系统. 不管你的开发团队的大<br>小和地理分布, 不管他们使用的平台--Windows, Unix或者Web--Rational ClearQuest都能实现高<br>效率地捕获, 跟踪和管理任意类型的变更. 你可以选择配置或者选择一个合适的模板配合你的过程.<br>配合企业数据库, ClearQuest 可以针对各种尺寸的项目. 同其他开发解决方案的集成确保所有团队<br>成员同缺陷/变更跟踪过程绑定.<br>3.7.2 配合你的工作方式<br>不同的组织使用不同的过程处理软件缺陷, 需求变更何其他修改结果. Rational ClearQuest<br>提供针对大多数组织的过程和允许你定制自己的过程.<br>3.7.3 针对整个生命周期的变更跟踪<br>开发当中的每一个人都不仅需要了解变更在特定层面上造成的影响, 也需要理解对于整个项目<br>Rational 系统测试解决方案 具体产品简介<br>- 7 -<br>的影响. 使用Rational ClearQuest 你可以在整个项目的生命周期中跟踪缺陷和需求变更, 分配工<br>作活动和访问项目的真实状态.<br>3.7.4 设计一次就可以到处使用<br>不管你的开发团队大小和他们的地理分布, 不管他们使用的平台, Rational ClearQuest 都可<br>以实现变更的捕获, 跟踪和管理. 用户化仅仅需要一次, 然后即可以发布到Windows, UNIX, Web 的<br>客户层面. ClearQuest 支持好几种企业数据库. 当你的组织成长的时候, ClearQuest 将和你一起成<br>长.<br>3.7.5 将分散的团队整合起来<br>基于被验证的Rational ClearCase MultiSite 技术, ClearQuest MultiSite 是一个针对<br>Rational ClearQuest 的选项, 支持针对地理上分布的站点的同步发展.
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/27370.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2007-05-21 14:10 <a href="http://www.cnitblog.com/szdlinxie/archive/2007/05/21/27370.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>设定时间让脚本自动运行</title><link>http://www.cnitblog.com/szdlinxie/archive/2007/01/05/21583.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Fri, 05 Jan 2007 13:40:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2007/01/05/21583.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/21583.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2007/01/05/21583.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/21583.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/21583.html</trackback:ping><description><![CDATA[
		<p>
				<font color="#000066">
						<font size="2">主要功能：实现每天都对数据库</font>
						<font size="2">进行备份</font>
				</font>
		</p>
		<p>
				<font color="#000066">
						<font size="2">由于WR没有定时自动运行脚本</font>
						<font size="2">的功能，但与TD结合便可以实现。使用的WR版本为7.0，具体实现如下：</font>
				</font>
		</p>
		<p>
				<font color="#000066" size="2">1、设置WR与TD连接。</font>
		</p>
		<p>
				<font color="#000066">
						<font size="2"> 1.1启动WR，在settings--&gt;general options菜单下的environment中勾选"Allow TestDirector to run tests remotely"，之后保存。</font>
						<a href="http://blog.51testing.com/batch.download.php?aid=774" target="_blank">
								<font size="2">
										<img title="点击图片可在新窗口打开" style="CURSOR: pointer" src="http://www.51testing.com/ddimg/uploadimg/20061230/1117060.jpg" border="0" />
								</font>
						</a>
				</font>
		</p>
		<p>
				<font size="2">
				</font> </p>
		<p>
				<font color="#000066">
						<font size="2"> 1.2选择菜单功能tools--&gt;TestDirector Connection,进行设置，指定TD服务器，连接指定的project。具体设置如图</font>
						<a href="http://blog.51testing.com/batch.download.php?aid=775" target="_blank">
								<font size="2">
										<img title="点击图片可在新窗口打开" style="CURSOR: pointer" src="http://www.51testing.com/ddimg/uploadimg/20061230/1117061.jpg" border="0" />
								</font>
						</a>
				</font>
		</p>
		<p>
				<font color="#000066" size="2">2、TD相关操作</font>
		</p>
		<p>
				<font color="#000066" size="2"> 2.1下载XRunnerTestDirector.exe插件。</font>
		</p>
		<p>
				<font color="#000066">
						<font size="2"> 2.2登陆TD，在test plan页面中新加一个测试</font>
						<font size="2">用例，修改type为WR-AUTOMATED.之后点到test scrīpt页签，点击copy from，选择脚本，导入。脚本就成功的导入了。其中脚本调用了其它两个子脚本，WR会跟据所指路径自动去读取，并且在脚本中已添加了加载map的语句。</font>
				</font>
		</p>
		<p>
				<font color="#000066" size="2"> 2.3切到test lab页面，新建test,然后执行"Add Tests to Test Set"功能如图wrltd6.jpg</font>
		</p>
		<p>
				<font color="#000066" size="2">
						<a href="http://blog.51testing.com/batch.download.php?aid=776" target="_blank">
								<img src="http://www.51testing.com/ddimg/uploadimg/20061230/1117062.jpg" border="0" />
						</a>
				</font>
		</p>
		<p>
				<font color="#000066">
						<font size="2">添加刚才test plan中指定的test.添加成功后如图wrltd7.jpg<br /></font>
						<a href="http://blog.51testing.com/batch.download.php?aid=779" target="_blank">
								<font size="2">
										<img title="点击图片可在新窗口打开" style="WIDTH: 400px; CURSOR: pointer" src="http://www.51testing.com/ddimg/uploadimg/20061230/1117063.jpg" border="0" />
								</font>
						</a>
				</font>
		</p>
		<p>
				<font color="#000066">
						<font size="2"> 2.4设置执行时间。见图wrltd7.jpg切到Execution Flow页签，设置时间。如图wrltd5.jpg.</font>
						<a href="http://blog.51testing.com/batch.download.php?aid=777" target="_blank">
								<font size="2">
										<img title="点击图片可在新窗口打开" style="WIDTH: 400px; CURSOR: pointer" src="http://www.51testing.com/ddimg/uploadimg/20061230/1117064.jpg" border="0" />
								</font>
						</a>
				</font>
		</p>
		<p>
				<font color="#000066">
						<font size="2"> 2.5点击wrltd5.JPg中的RUN按钮，弹出窗口"Execution of...窗口",点击run按钮,所有操作到这儿就完成了.如图wrltd6.jpg所示状态，脚本处于等待状态，等到设定的时间，TD会自动打开WR程序，并开始执行脚本。<br /></font>
						<a href="http://blog.51testing.com/batch.download.php?aid=778" target="_blank">
								<font size="2">
										<img title="点击图片可在新窗口打开" style="WIDTH: 400px; CURSOR: pointer" src="http://www.51testing.com/ddimg/uploadimg/20061230/1117065.jpg" border="0" />
								</font>
						</a>
						<br />
						<br />
				</font>
		</p>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/21583.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2007-01-05 21:40 <a href="http://www.cnitblog.com/szdlinxie/archive/2007/01/05/21583.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>QTP中设置共享对象库</title><link>http://www.cnitblog.com/szdlinxie/archive/2007/01/05/21582.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Fri, 05 Jan 2007 13:38:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2007/01/05/21582.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/21582.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2007/01/05/21582.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/21582.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/21582.html</trackback:ping><description><![CDATA[
		<font size="2">很多时候我们总是觉得管理QTP的脚本比较烦.因为除了要对代码的管理之外，还要保证QTP对象库的完整．每一个用例脚本的生成，同时又都会生成一个对象库．那么是不是可以做一个公共的对象库来给各个用例脚本调用呢？接下来，我们就来实现共享对象库的应用．</font>
		<p>
		</p>
		<p>
				<font size="2">　　<strong>第一步：把需要加到共享对象库中的各个用例脚本的对象库，分别导出成．tsr文件．</strong></font>
		</p>
		<p>
				<font size="2">　　操作方法:先用QTP打开已经录制完毕的脚本后，选择Resources－－＞ Object Repository ．</font>
		</p>
		<p>
				<font size="2">　　然后file--&gt;export....取名导出文件．如下图：</font>
		</p>
		<p>
				<font size="2">　　　　　　　　　　　</font>
				<a href="http://blog.51testing.com/batch.download.php?aid=784" target="_blank">
						<font size="2">
								<img src="http://www.51testing.com/ddimg/uploadimg/20061231/1143410.jpg" border="0" />
						</font>
				</a>
		</p>
		<p>
				<font size="2">　　<strong>第二步：把需要加入到共享对象库中的各个用例脚本的对象库，合并对象及对象属性，形成一个大的共享对象库．</strong></font>
		</p>
		<p>
				<font size="2">　　操作方法:打开Resources－－＞Object Repository Manager．找到Tools菜单，然后选择打开Object Repository merge tool.选择两个要合并的对象库文件，进行对象合并．一次只能合并两个．所以如果这里你要合并多个对象库文件的话，先合并两个后，保存成一个新的．tsr文件．然后再重复上面的操作，选择这个新的．tsr文件和另一个准备好的对象库合并．如下图：</font>
		</p>
		<p>
				<font size="2">　　　　　　　　　</font>
				<a href="http://blog.51testing.com/batch.download.php?aid=785" target="_blank">
						<font size="2">
								<img src="http://www.51testing.com/ddimg/uploadimg/20061231/1143411.jpg" border="0" />
						</font>
				</a>
		</p>
		<p>
				<font size="2">　　合并的时候，你会发现，在两个对象库文件中，相同的对象合并成一个，不同的对象，全部被完整增加进去．然后形成一个大的对象库．现在只要保存这个共享对象库．如果以后有新增的对象，可以重复上述操作．</font>
		</p>
		<p>
				<font size="2">　　<strong>第三步：调用上面保存好的共享对象库．给新的脚本使用．</strong></font>
		</p>
		<p>
				<font size="2">
						<strong>　　</strong>操作步骤：Resources－－＞Associate Repository．选择上面保存好的共享对象库的．tsr文件．加入到Associate Repository中．如下图：</font>
		</p>
		<p>
				<font size="2">　　</font>
				<a href="http://blog.51testing.com/batch.download.php?aid=787" target="_blank">
						<font size="2">
								<img src="http://www.51testing.com/ddimg/uploadimg/20061231/1143412.jpg" border="0" />
						</font>
				</a>
		</p>
		<p>
				<font size="2">　　完成这一步后，其实整个共享对象库的操作已经完成．你在对象库中可以看到以后的对象．在录制新脚本的时候，如果对象已经存在，就不会再被记录，只有在这个对象库中没有的对象才会被记录进去．回放脚本，对象识别成功．</font>
		</p>
		<p>
				<strong>
						<font size="2">（注：此操作只适合与装有QTP9.0的版本．对于8.2版本不适合）</font>
				</strong>
		</p>
		<p>
				<strong>
						<font size="2">附：8.2版本中的共享对象库操作</font>
				</strong>
		</p>
		<div style="FONT-SIZE: 12px">
				<font size="2">QTP8.2的共享方法<br />1. 选择“测试”&gt;“设置”&gt;“资源”选项卡。<br />2. 在“对象库类型”区域，“共享”。<br />请指定要用作对象库文件的共享对象库文件。要指定文件，请输入对象库文件名，或单击浏览按钮并从“打开”对话框中选择资源文件。要新建共享对象库文件，请在“共享”框中输入新文件名。<br />对象库文件的默认文件扩展名是 .tsr，但是文件可能使用任何扩展名。在“打开”对话框中浏览现有对象库文件时，在“文件类型”框中选择“所有文件”。 <br />3. 注：请在新测试开始录制前进行设置，已有测试的对象库模式不能进行修改。</font>
		</div>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/21582.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2007-01-05 21:38 <a href="http://www.cnitblog.com/szdlinxie/archive/2007/01/05/21582.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Rational Robot中设置测试环境</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20901.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Thu, 21 Dec 2006 03:14:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20901.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20901.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20901.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20901.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20901.html</trackback:ping><description><![CDATA[
		<font color="#000066">
				<strong>Rational Robot中设置测试环境<br /></strong>
				<h3>
						<font size="3">目的</font>
				</h3>
				<p>
						<strong>本工具向导说明了如何在 Rational Robot<sup><sup>TM</sup></sup> 中设置测试环境。</strong>
				</p>
				<p>
						<strong>相关的 Rational Unified Process 活动： </strong>
				</p>
				<ul>
						<li>
								<strong>活动：实施测试中的“记录或通过编程创建测试脚本”部分 </strong>
						</li>
						<li>
								<strong>活动：执行测试中的“执行测试过程和/或测试脚本”部分 </strong>
						</li>
				</ul>
				<h3>
						<font size="3">概述</font>
				</h3>
				<p>
						<strong>本工具向导适用于 Microsoft Windows 95/98/NT 4.0。</strong>
				</p>
				<p>
						<strong>要使用 Robot 来设置测试环境，请执行以下步骤： </strong>
				</p>
				<ol>
						<ol>
								<li>
										<strong>设置测试环境以进行记录、编辑或测试脚本回放。 </strong>
								</li>
								<li>
										<strong>设置 GUI 脚本记录选项。 </strong>
								</li>
								<li>
										<strong>设置 GUI 脚本回放选项。 </strong>
								</li>
						</ol>
				</ol>
				<h3>
						<font size="3">1. 设置测试环境以进行记录、编辑或测试脚本回放 <img height="20" alt="返回页首" src="http://reference.sdlgame.com/RationalUnifiedProcess.zh_cn/images/top.gif" width="26" border="0" /></font>
				</h3>
				<p>
						<strong>Windows 环境和您所测试的应用程序的状态会影响脚本的回放。如果所记录的环境和回放环境之间存在差异，回放就会出现问题。</strong>
				</p>
				<p>
						<strong>在记录或编辑测试脚本之前，确保您所测试的应用程序和所有其他软件（在测试环境中）都处于适当的初始状态。另外，在执行测试（回放测试脚本）之前，请保证所测试的应用程序和所有其他软件都处于记录/编辑该测试脚本时所处的初始状态。当您开始回放脚本时，记录脚本时处于打开、激活或显示状态的所有应用程序和窗口应该仍处于打开、激活或显示状态。此外，确保所有相关的网络设置、现用数据库和系统内存处于同记录脚本时相同的状态。</strong>
				</p>
				<p>
						<strong>回放测试脚本时，确保您设置了适当的回放选项，其中包括 Robot 应该如何处理意外活动窗口以及如何从脚本命令错误中恢复（请参见下一部分）。</strong>
				</p>
				<h3>
						<font size="3">2. 设置 GUI 脚本记录选项 <img height="20" alt="返回页首" src="http://reference.sdlgame.com/RationalUnifiedProcess.zh_cn/images/top.gif" width="26" border="0" /></font>
				</h3>
				<p>
						<strong>GUI 脚本记录选项指示 Robot 在记录测试脚本时，应如何处理某些对象、鼠标拖动、窗口设置、对象内容和 Robot 窗口。</strong>
				</p>
				<p>
						<strong>要设置 GUI 脚本记录选项，请执行以下步骤： </strong>
				</p>
				<ol>
						<li>
								<strong>执行以下操作之一来显示 GUI Record Options 对话框： </strong>
						</li>
				</ol>
				<blockquote>
						<ul>
								<li>
										<strong>开始记录之前，请单击 Tools &gt; GUI Record Options。 </strong>
								</li>
								<li>
										<strong>单击工具栏上的 Record Script 按钮，开始记录。在 Record 对话框中，单击 Options。 </strong>
								</li>
						</ul>
				</blockquote>
				<ol start="2">
						<li>
								<strong>设置每个选项卡上的选项。有关各选项卡的详细信息，请参见 Using Rational Robot 手册中的 Setting GUI Record Options 一章或参见 Robot 联机帮助。 </strong>
						</li>
				</ol>
				<blockquote>
						<p>
								<strong>General - 指定 Robot 如何确定/识别列表和菜单内容，以及不支持的鼠标拖动。另外，在此选项卡中，您还可以指定：用于脚本自动命名的前缀、是否让 Robot 来保存和恢复活动窗口的大小和位置、是否记录思考时间、是否记录按下回车键后的延迟。Robot Window</strong> - 指定记录测试脚本时 Robot 窗口的显示方式。该选项卡还使用户可以指定热键，用来隐藏/重新显示 Robot 窗口，以及在面向对象的记录模式和低层记录模式之间进行切换。<strong>Object Recognition Order</strong> - 用于在记录之前或记录过程中，改变个别对象类型的对象识别方法优先级。</p>
				</blockquote>
				<p>
						<strong>有关如何记录脚本的详细信息，请参见工具向导：使用 Rational Robot™<sup><sup></sup></sup> 创建测试脚本。</strong>
				</p>
				<h3>
						<font size="3">3. 设置 GUI 脚本回放选项 <img height="20" alt="返回页首" src="http://reference.sdlgame.com/RationalUnifiedProcess.zh_cn/images/top.gif" width="26" border="0" /></font>
				</h3>
				<p>
						<strong>GUI 脚本回放选项指示 Robot 如何回放 GUI 脚本。您既可以在回放之前，也可以在回放过程开始时设置这些选项。</strong>
				</p>
				<p>
						<strong>要设置 GUI 回放选项，请执行以下步骤： </strong>
				</p>
				<ol>
						<li>
								<strong>执行以下操作之一来显示 GUI Playback Options 对话框： </strong>
						</li>
				</ol>
				<blockquote>
						<ul>
								<li>
										<strong>开始回放之前，请单击 Tools &gt; GUI Playback Options。 </strong>
								</li>
								<li>
										<strong>单击工具栏上的 Playback Script 按钮，开始回放。在 Playback 对话框中，单击 Options。 </strong>
								</li>
						</ul>
				</blockquote>
				<ol start="2">
						<li>
								<strong>设置每个选项卡上的选项。有关各选项卡的详细信息，请参见 Using Rational Robot 手册中的 Setting GUI Playback Options 一章或参见 Robot 联机帮助。 </strong>
								<p>
										<strong>Playback</strong> - 指定命令和击键之间的延迟、是否使用记录的思考时间和键入延迟、是否跳过核实点、是否显示确认结果对话框，以及回放过程中 Robot 窗口中出现的内容。有关详细信息，请单击对话框中的 Help 按钮。<strong>Log</strong> - 指定日志中保存的结果、回放后是否显示日志、是否要在覆盖日志之前得到提示、以及是使用默认日志信息还是使用您提供的信息。<strong></strong></p>
								<p>Caption Matching - 指定 Robot 如何匹配记录过程中所记录的窗口标题和回放过程中发现的标题。有关详细信息，请单击对话框中的 Help 按钮。</p>
								<b>
										<p>Wait State</p>
								</b> - 指定回放时的默认重试和超时值。<b><p>Unexpected Active Windows</p></b> - 指定 Robot 应该如何响应意外的活动窗口。<b><p>Error Recovery</p></b> - 指定在脚本回放时，Robot 如何从脚本命令错误和核实点故障中恢复。<b><p>Trap</p></b> - 指定 Trap 实用程序应该记录的有关回放过程中常见保护故障的信息和恢复方法。</li>
						<li>单击 <b>OK</b>。 
<ol></ol><p>有关如何回放脚本的详细信息，请参见工具向导：使用 Rational Robot™<sup><sup></sup></sup> 执行测试。</p></li>
				</ol>
		</font>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/20901.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-21 11:14 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20901.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Loadrunner中参数设置详细分析</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20900.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Thu, 21 Dec 2006 03:00:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20900.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20900.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20900.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20900.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20900.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Loadrunner中参数设置详细分析						做负载或者压力测试时，很多人选择使用了Loadrunner测试工具。该工具的基本流程是先将用户的实际操作录制成脚本，然后产生数千个虚拟用户运行脚本（虚拟用户可以分布在局域网中不同的PC机上），最后生成相关的报告以及分析图。但是在录制脚本的过程中会遇到很多实际的问题，比如不同的用户有不同的使用数据，这就牵涉到参数的设置问题。本文就Loadrunn...&nbsp;&nbsp;<a href='http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20900.html'>阅读全文</a><img src ="http://www.cnitblog.com/szdlinxie/aggbug/20900.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-21 11:00 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20900.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>高级测试管理的工具和技术</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20896.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Thu, 21 Dec 2006 01:51:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20896.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20896.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20896.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20896.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20896.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 高级测试管理的工具和技术业务优化科技概述近年来，在应用测试领域有了突飞猛进的发展。随着当今应用复杂性的不断提升、竞争压力的不断加大，以及在应用失败和宕机方面的成本激增，使得对测试的需求不断攀升。 实施高质量应用的压力持续加大，其挑战在于日益紧缩的开发和部署进度、分散的机构组织、外包、技术熟练员工的高调动率，这些都造成了应用测试难度的提升。 为了实现以较少资源完成更多任务的目标、同时展开多个项目、管...&nbsp;&nbsp;<a href='http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20896.html'>阅读全文</a><img src ="http://www.cnitblog.com/szdlinxie/aggbug/20896.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-21 09:51 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/21/20896.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>QuickTest使用正则表达式 </title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/20/20848.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Wed, 20 Dec 2006 06:41:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/20/20848.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20848.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/20/20848.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20848.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20848.html</trackback:ping><description><![CDATA[QuickTest使用正则表达式 <br /><blockquote class="indent"><a name="wp799340"></a><h2 class="pn2Heading">正则表达式语法 </h2><a name="wp799346"></a><p class="pRegtext">通过正则表达式，QuickTest 可以使用不同的值来标识对象和文本字符串。可以在下列三种情况下使用正则表达式：一是定义对象属性和参数方法时；二是对某步骤进行参数化时；三是使用不同值创建检查点时。 </p><a name="wp799356"></a><p class="pRegtext">正则表达式是指定复杂搜索短语的字符串。使用特殊字符，如句点 (.)、星号 (*)、插字号 (^) 和方括号 ([ ])，可以定义搜索条件。有关正则表达式语法的详细信息，请参阅《QuickTest Professional 用户指南》。 </p></blockquote><br /><blockquote class="indent"><a name="wp799360"></a><h2 class="pn2Heading">使用正则表达式 </h2><a name="wp799362"></a><p class="pRegtext">在本教程中，将针对一个日期文本字符串创建文本检查点，该字符串随选定的航班日期而变化。可以将该日期定义为正则表达式，这样，检查点将检查捕获的文本字符串是否与期望的格式匹配，而不是检查准确的文本。 </p><a name="wp799364"></a><p class="pRegtext">为此，您将使用一个正则表达式创建文本检查点，该表达式将与已定义范围内的某一单个字符相匹配。 </p><div class="pSmartListBold1"><ol class="pSmartListBold1" type="1"><a name="wp799371"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">启动 QuickTest </b><span style="FONT-WEIGHT: normal"><img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_AQT_icon.gif" border="0" /></span><b style="FONT-WEIGHT: bold">并打开“Recording”测试。</b></li></div><a name="wp799393"></a><p class="pIndent">如果 QuickTest 尚未打开，请选择“开始”&gt;“程序”&gt;“QuickTest Professional”&gt;“QuickTest Professional”。 </p><div class="pSmartBullet2"><ul class="pSmartBullet2"><a name="wp799395"></a><div class="pSmartBullet2"><li>如果“欢迎使用”窗口打开，请单击“打开现有测试”。 </li></div><a name="wp799402"></a><div class="pSmartBullet2"><li>如果 QuickTest 打开时未显示“欢迎使用”窗口，请选择<br />“文件”&gt;“打开”，或单击“打开”按钮 <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_open_button.gif" border="0" /> 。 </li></div><a name="wp799404"></a><p class="pIndent">在“打开测试”对话框中，找到并选择“Recording”测试，然后单击“打开”。 </p></ul></div><a name="wp799406"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">将该测试另存为“RegExpression”。</b></li></div><a name="wp799408"></a><p class="pIndent">选择“文件”&gt;“另存为”。将该测试另存为“<span class="cExample">RegExpression</span>”。 </p><a name="wp799410"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">确认是否已启用“Active Screen”选项。</b></li></div><a name="wp799417"></a><p class="pIndent">如果在 QuickTest 窗口底部看不到 Active Screen，请单击“Active Screen”按钮<span style="FONT-WEIGHT: bold"><img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_display_views.gif" border="0" /></span>或选择“查看”&gt;“Active Screen”。 </p><a name="wp799419"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">选择要为其创建检查点的文本。</b></li></div><a name="wp799421"></a><p class="pIndent">在关键字视图中，单击 (+) 展开“Welcome:Mercury:Tours”，然后单击“Select a Flight:Mercury”页。该页将显示在 Active Screen 中。 </p><a name="wp799423"></a><p class="pIndent">在 Active Screen 中向上滚动，然后突出显示出发航班 New York to San Francisco (<span class="cExample">12/29/2004</span>)。右键单击突出显示的字符串，然后选择“插入文本检查点”。将打开“文本检查点属性”对话框。 </p><a name="wp799425"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">对于要检查的文本，输入正则表达式。</b></li></div><a name="wp799429"></a><p class="pIndent">在“已检查的文本”区域中，单击“常量值选项”按钮 <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_const_val_options.gif" border="0" /> 。将打开“常量值选项”对话框。<br /><br /><img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/constant_value_options.gif" border="0" /><br /><br /></p><a name="wp799435"></a><p class="pIndent_after">在“值”框中，用 <span class="cExample">[0-1][0-9]/[0-3][0-9]/200[0-9]</span> 替换当前日期。这将指示 QuickTest 检查选定文本中的每个字符与正则表达式定义的数字范围格式是否匹配。该表达式检查以下格式：MM/DD/200Y。 </p><a name="wp799437"></a><p class="pIndent">选择“正则表达式”复选框。将出现一个消息框，提示您在每个特殊字符之前插入反斜杠字符。单击“否”。 </p><a name="wp799445"></a><p class="pNote">注意： 单击“是”会使 QuickTest 将特殊字符 (<span class="cExample">[</span>)、(<span class="cExample">-</span>) 和 (<span class="cExample">]</span>) 作为文本字符而不是正则表达式处理。 </p><a name="wp799448"></a><p class="pIndent">单击“确定”接受其他默认设置，然后关闭“常量值选项”对话框。将打开“文本检查点属性”对话框。<br /><br /><img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/regular%20expression.gif" border="0" /><br /><br /></p><a name="wp799450"></a><p class="pIndent_after">单击“确定”关闭“文本检查点属性”对话框。 </p><a name="wp799456"></a><p class="pIndent">QuickTest 将向您的测试中添加文本检查点。该检查点在关键字视图中的“Select a Flight:Mercury”页显示为检查操作。 </p><a name="wp799458"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">保存测试。</b></li></div><a name="wp799461"></a><p class="pIndent">选择“文件”&gt;“保存”，或单击“保存”按钮 <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_save_button.gif" border="0" /> 。 </p></ol></div></blockquote><br /><blockquote class="indent"><a name="wp799469"></a><h2 class="pn2Heading">使用正则表达式运行并分析测试 </h2><a name="wp799471"></a><p class="pRegtext">在本练习中，您将运行测试并对检查点结果进行检查。 </p><div class="pSmartListBold1"><ol class="pSmartListBold1" type="1"><a name="wp799473"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">运行“RegExpression”测试。</b></li></div><a name="wp799476"></a><p class="pIndent">单击“运行”按钮 <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_run.gif" border="0" /> ，或选择“测试”&gt;“运行”。将打开“运行”对话框。 </p><a name="wp799478"></a><p class="pIndent">选择“新建运行结果文件夹”并接受默认的结果文件夹名。 </p><a name="wp799480"></a><p class="pIndent">单击“确定”。当完成测试运行时，将打开“测试结果”窗口。 </p><a name="wp799482"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">对检查点结果进行检查。</b></li></div><a name="wp799484"></a><p class="pIndent">在结果树中，单击 (+) 展开“Test RegExpression Summary”&gt;“RegExpression Iteration 1 (Row 1)”&gt;“Action1 Summary”&gt;“Welcome: Mercury Tours”&gt;“Select a Flight:Mercury” </p><a name="wp799487"></a><p class="pIndent">选择“检查点`[0-1][0-9]/[0-3][0-9]/200[0-9]'”。<br /><br /><img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/resreg_exp.gif" border="0" /><br /><br /></p><a name="wp799489"></a><p class="pIndent">由于文本以正则表达式指定的格式显示，因此该检查点通过。 </p><a name="wp799491"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">退出“测试结果”窗口。</b></li></div><a name="wp799495"></a><p class="pIndent">选择“文件”&gt;“退出”关闭“测试结果”窗口。 </p></ol></div></blockquote><br /><font face="Arial" size="1"><font style="BACKGROUND-COLOR: #e0dfe3" size="3">QuickTest</font>将测试拆分为多操作 <br /><blockquote class="indent"><a name="wp77723"></a><h2 class="pn2Heading">使用多操作 </h2><a name="wp77725"></a><p class="pRegtext">如果检查一下在以前课程中创建的某个测试，您将发现该测试可拆分为几个不同的过程： </p><div class="pSmartBullet1"><ul class="pSmartBullet1"><div class="pSmartBullet2"><ul class="pSmartBullet2"><a name="wp77727"></a><div class="pSmartBullet2"><li>登录到 Mercury Tours 站点。</li></div><a name="wp77729"></a><div class="pSmartBullet2"><li>提交航班订单。</li></div><a name="wp77731"></a><div class="pSmartBullet2"><li>注销。</li></div></ul></div></ul></div><a name="wp77741"></a><p class="pRegtext">假设您要为五个不同的航班订单运行测试。正如我们在<a href="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/parameterizing_tests.htm">参数化测试</a>中所见的，您可以对测试进行参数化，使其可以使用五组不同的数据运行五次测试。还可以组织测试，仅使第二个过程运行五次测试，模拟一个用户登录、预定五个航班以及注销的过程。可通过将测试拆分为对不同操作的调用，实现此目的。 </p><a name="wp77743"></a><p class="pRegtext">要将测试拆分成对不同操作的调用，您可以插入对新操作的调用、将现有操作拆分为对两个操作的调用、插入一个对现有操作副本的调用或插入一个对现有操作的调用。 </p><a name="wp77745"></a><p class="pRegtext">可以在录制会话期间或之后将对操作的调用插入测试中。使用下列菜单选项或工具栏按钮之一，向测试添加操作： </p><div class="pSmartBullet1"><ul class="pSmartBullet1"><a name="wp77748"></a><div class="pSmartBullet1"><li>“插入”&gt;“调用新建操作”，或使用“插入对新建操作的调用”按钮。 <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_new_action.gif" border="0" /></li></div><a name="wp77751"></a><div class="pSmartBullet1"><li>“步骤”&gt;“拆分操作”，或使用“拆分操作”按钮。 <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_split_action.gif" border="0" /></li></div><a name="wp77753"></a><div class="pSmartBullet1"><li>“插入”&gt;“调用操作副本”，或右键单击某项操作并选择“插入对操作副本的调用”。</li></div><a name="wp77755"></a><div class="pSmartBullet1"><li>“插入”&gt;“调用现有操作”，或右键单击某项操作并选择“插入对现有操作的调用”。</li></div></ul></div></blockquote><br />新建操作 <br /><blockquote class="indent"><a name="wp77793"></a><h4 class="pn3Heading">录制测试 </h4><div class="pSmartListBold1"><ol class="pSmartListBold1" type="1"><a name="wp77800"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">启动 QuickTest</b><span style="FONT-WEIGHT: normal"><img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_AQT_icon.gif" border="0" /></span><b style="FONT-WEIGHT: bold">并打开新测试。</b></li></div><a name="wp77814"></a><p class="pIndent">有关详细信息，请参阅<a href="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/recording_tests.htm"></a><a href="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/Book-03-3.htm">录制测试</a>中的步骤 <a href="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/Book-03-3.htm#wp214451">1</a>。 </p><a name="wp77816"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">开始录制 Mercury Tours 网站。</b></li></div><a name="wp77822"></a><p class="pIndent">在后面的步骤中，您需要录制一个与<a href="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/recording_tests.htm">录制测试</a>课程中所录制的测试相似的测试。但是，该测试为了优化多操作测试的测试，而设计得有些不同。 </p><a name="wp77824"></a><p class="pIndent">请确认已关闭所有的 Web 浏览器。 </p><a name="wp77828"></a><p class="pIndent">选择“测试”&gt;“录制”，或单击“录制”按钮 <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_record.gif" border="0" /> 。将打开“录制和运行设置”对话框。 <br /><br /><img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/record_run_set_web.gif" border="0" /><br /><br /></p><div class="pSmartBullet2"><ul class="pSmartBullet2"><a name="wp77830"></a><div class="pSmartBullet2"><li>在“Web”选项卡中，选择“录制或运行会话开始时打开以下浏览器”。</li></div><a name="wp77836"></a><p class="pIndent_wide">从“类型”列表中选择浏览器，并确认“地址”框中的 URL 为 <span class="cURL_example"><a href="http://newtours.mercuryinteractive.com&quot;%20target=&quot;_blank/" target="_blank"></a><a href="http://newtours.mercuryinteractive.com/" target="_blank">http://newtours.mercuryinteractive.com</a></span>。 </p><a name="wp77838"></a><p class="pIndent_wide">请确认已选中“不在已经打开的浏览器上录制和运行”和“当测试关闭时关闭浏览器”选项。 </p><a name="wp77840"></a><div class="pSmartBullet2"><li>在“Windows 应用程序”选项卡中，确认已选中“在以下应用程序(会话开始时打开的)上录制并运行”，而且没有列出任何应用程序。 </li></div><a name="wp77842"></a><p class="pIndent_after">单击“确定”。 </p><a name="wp77844"></a><p class="pIndent">QuickTest 开始进行录制，浏览器将打开 Mercury Tours 网站。 </p></ul></div><a name="wp77846"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">签入 Mercury Tours 网站。 </b></li></div><a name="wp77848"></a><p class="pIndent">在“User Name”和“Password”框中，键入在 Mercury Tours 中注册过的名称和密码。 </p><a name="wp77850"></a><p class="pIndent">单击“Sign-In”。 </p><a name="wp77852"></a><p class="pIndent">将打开“Flight Finder”页。 </p><a name="wp77854"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">输入航班详细信息。</b></li></div><a name="wp77856"></a><p class="pIndent">更改下列选项： </p><div class="pSmartBullet2"><ul class="pSmartBullet2"><a name="wp77858"></a><div class="pSmartBullet2"><li>Departing From:<b style="FONT-WEIGHT: bold">New York</b></li></div><a name="wp77860"></a><div class="pSmartBullet2"><li>On:<b style="FONT-WEIGHT: bold">Dec 29</b></li></div><a name="wp77862"></a><div class="pSmartBullet2"><li>Arriving In:<b style="FONT-WEIGHT: bold">San Francisco</b></li></div><a name="wp77864"></a><div class="pSmartBullet2"><li>Returning:<b style="FONT-WEIGHT: bold">Dec 31</b></li></div><a name="wp77866"></a><p class="pIndent">单击“CONTINUE”接受其他默认选项。将打开“Select Flight”页。 </p></ul></div><a name="wp77868"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">选择一个航班。</b></li></div><a name="wp77870"></a><p class="pIndent">单击“CONTINUE”接受其他默认航班选项。将打开“Book a Flight”页。 </p><a name="wp77872"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">输入必需的乘客信息和购买信息。</b></li></div><a name="wp77874"></a><p class="pIndent">在“Passengers”和“Credit Card”部分输入必需的信息（带有红色文本标签的字段）。 </p><a name="wp77876"></a><p class="pIndent">在该页的底部，单击“SECURE PURCHASE”。将打开“Flight Confirmation”页。 </p><a name="wp77878"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">将浏览器返回至“Flight Finder”页。</b></li></div><a name="wp77880"></a><p class="pIndent">在“Flight Confirmation”页的底部，单击“BACK TO FLIGHTS”按钮。将打开“Flight Finder”页。 </p><a name="wp77882"></a><p class="pIndent">通过结束在“Flight Finder”页上的录制，可以在同一页面上创建开始和结束操作，以便您可以根据需要多次调用操作。 </p><a name="wp77884"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">停止录制。</b></li></div><a name="wp77891"></a><p class="pIndent">在 QuickTest 中，单击“停止” <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_stop.gif" border="0" /> 停止录制过程。 </p><a name="wp77893"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">将测试另存为 ActionA。</b></li></div><a name="wp77895"></a><p class="pIndent">选择“文件”&gt;“另存为”。将测试另存为 <span class="cExample">ActionA</span>。 </p></ol></div></blockquote><br /><blockquote class="indent"><a name="wp77903"></a><h4 class="pn3Heading">将测试拆分为两项操作 </h4><a name="wp77905"></a><p class="pRegtext">您的测试当前包含两个主要进程：签入和购买机票，因此将测试拆分为不同的操作非常有意义。 </p><div class="pSmartListBold1"><ol class="pSmartListBold1" type="1"><a name="wp77907"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">选择您希望第二个操作开始时所在的页面。 </b></li></div><a name="wp77909"></a><p class="pIndent">在关键字视图中，单击 (+) 展开“Action1”&gt;“Welcome:Mercury Tours”。 </p><a name="wp77911"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">将测试拆分为两个操作。</b></li></div><a name="wp77915"></a><p class="pIndent">选择第一个“Find a Flight:Mercury”页并选择“步骤”&gt;“拆分操作”，或单击“拆分操作”按钮 <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_split_action.gif" border="0" /> 。将打开“Split Action”对话框。 <br /><br /><img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/Split_Action.gif" border="0" /><br /><br /></p><a name="wp77917"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">输入这两项操作的名称和描述。</b></li></div><a name="wp77919"></a><p class="pIndent">在“第一个操作”中的“名称”框中键入：<span class="cExample">Sign_in</span>。 </p><a name="wp77921"></a><p class="pIndent">在“第一个操作”中的“描述”框中键入：<span class="cExample">Enters user name and password to sign in</span>。 </p><a name="wp77923"></a><p class="pIndent">在“第二个操作”中的“名称”框中键入：<span class="cExample">FlightOrder</span>。 </p><a name="wp77925"></a><p class="pIndent">在“第二个操作”中的“描述”框中键入：<span class="cExample">Chooses and purchases a flight</span>。 </p><a name="wp77927"></a><p class="pIndent">单击“确定”关闭“拆分操作”对话框，并接受其他默认选项。这两项操作将显示在关键字视图中。 </p><a name="wp77929"></a><p class="pIndent">选择“视图”&gt;“全部展开”检查每项操作的内容。注意，“FlightOrder”操作是在“Find a Flight:Mercury”页中开始和结束的操作。 </p></ol></div></blockquote><br /><blockquote class="indent"><a name="wp77933"></a><h4 class="pn3Heading">插入对新建操作的调用 </h4><a name="wp77935"></a><p class="pRegtext">现在您将插入一个对新操作的调用，并将录制返回 Mercury Tours 主页的步骤，以便整个测试在同一页面中开始和结束。 </p><div class="pSmartListBold1"><ol class="pSmartListBold1" type="1"><a name="wp77937"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">插入 ReturnHome 操作。</b></li></div><a name="wp77941"></a><p class="pIndent">选择“插入&gt;“调用新建操作”或单击“插入对新建操作的调用”按钮 <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_new_action.gif" border="0" /> 。将打开“插入对新建操作的调用”对话框。<br /><br /><img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/Insert_New_Action.gif" border="0" /><br /><br /></p><a name="wp77943"></a><p class="pIndent_after">在“名称”框中输入 <span class="cExample">ReturnHome</span>，确认选择了“测试结尾处”，并单击“确定”。将关闭对话框，并将 ReturnHome 操作添加到测试的末尾。 </p><a name="wp77945"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">为录制准备应用程序。</b></li></div><a name="wp77947"></a><p class="pIndent">确认 Web 浏览器已打开“Flight Finder”页。 </p><a name="wp77953"></a><p class="pIndent">如果未打开浏览器，请在 Mercury Tours 站点 (<span class="cURL_example"><a href="http://newtours.mercuryinteractive.com&quot;%20target=&quot;_blank/" target="_blank"></a><a href="http://newtours.mercuryinteractive.com/" target="_blank">http://newtours.mercuryinteractive.com</a></span>) 中打开并签入。将打开“Flight Finder”页。 </p><a name="wp77959"></a><p class="pIndent">将应用程序放置在桌面上，以便可以同时看到 QuickTest 和 Web 浏览器。 </p><a name="wp77961"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">更改录制和运行设置。</b></li></div><a name="wp77963"></a><p class="pIndent">当前已设置了录制和运行设置，因此，每次开始录制测试时，即打开一个新的浏览器。但是，由于您想要在已打开并准备好的浏览器中录制步骤，因此您需要在开始录制之前更改录制和运行设置。 </p><a name="wp77970"></a><p class="pIndent">在 QuickTest 中，选择“测试”&gt;“录制和运行设置”。将打开“录制和运行设置”对话框。<br /><br /><img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/record_run_set_web.gif" border="0" /><br /><br /></p><a name="wp77972"></a><p class="pIndent_after">在“Web”选项卡中，选择“在任何打开的 Web 浏览器上录制和运行测试”并单击“确定”。 </p><a name="wp77974"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">录制 ReturnHome 操作。</b></li></div><a name="wp77976"></a><p class="pIndent">在关键字视图中，选择新的 ReturnHome 操作图标。 </p><a name="wp77979"></a><p class="pIndent">选择“测试”&gt;“录制”，或单击“录制”按钮 <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_record.gif" border="0" /> 。 </p><a name="wp77981"></a><p class="pIndent">单击“Flight Finder”页左侧的“Home”导航链接。将打开 Mercury Tours 主页。 </p><a name="wp77988"></a><p class="pIndent">在 QuickTest 中，单击“停止” <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_stop.gif" border="0" /> 停止录制过程。 </p><a name="wp77990"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">将“录制和运行设置”还原为原始设置。</b></li></div><a name="wp78000"></a><p class="pIndent">您为了录制 ReturnHome 操作而更改了录制和运行设置，但此更改也将影响 QuickTest 运行测试的方式。如果您希望在运行测试时 QuickTest 新打开一个浏览器访问 Mercury Tours 主页，则需要重新应用原始设置。 </p><a name="wp78002"></a><p class="pIndent">选择“测试”&gt;“运行和录制设置”。将打开“录制和运行设置”对话框。 </p><a name="wp78008"></a><p class="pIndent">在“Web”选项卡中，选择“录制或运行会话开始时打开以下浏览器”。确认 <span class="cURL_example"><a href="http://newtours.mercuryinteractive.com&quot;%20target=&quot;_blank/" target="_blank"></a><a href="http://newtours.mercuryinteractive.com/" target="_blank">http://newtours.mercuryinteractive.com</a></span> 显示在“地址”框中并单击“确定”。 </p><a name="wp78010"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">保存测试。</b></li></div><a name="wp78013"></a><p class="pIndent">选择“文件”&gt;“保存”，或单击“保存”按钮 <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_save_button.gif" border="0" /> 。 </p></ol></div></blockquote><br /><blockquote class="indent"><a name="wp78017"></a><h4 class="pn3Heading">将操作设置为可重用操作 </h4><a name="wp78019"></a><p class="pRegtext">可重用操作类似于编程中的函数。如果您需要将一个过程包含在几个测试中，请录制、修改并增强此过程的步骤并将它们保存在可重用操作中。然后即可从其他测试中调用该操作，而不必每次都进行录制、修改和增强这些同样的步骤。 </p><a name="wp78021"></a><p class="pRegtext">要从另一个测试中调用某项操作，必须在存储该操作所用的测试中将其设置为可重用操作。您在本课中创建的“Sign_in”和“ReturnHome”操作几乎可以应于在 Mercury Tours 站点上创建的所有测试，因此将其设为可重用操作非常有意义。 </p><div class="pSmartListBold1"><ol class="pSmartListBold1" type="1"><a name="wp78025"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">将 Sign_in 变为可重用操作。</b></li></div><a name="wp78028"></a><p class="pIndent">在关键字视图中，右键单击“Sign_in”操作并选择“操作属性”。将打开“操作属性”对话框。选择“可重用操作”复选框并单击“确定”。如果显示消息框，请阅读消息，然后单击“不再显示该对话框”，<b style="FONT-WEIGHT: bold"></b>再单击“确定”。操作图标更改为可重用操作图标 <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_action_reusable.gif" border="0" /> 。 </p><a name="wp78032"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">查看 Sign_in 操作的详细信息。</b></li></div><a name="wp78034"></a><p class="pIndent">注意，您将不再能够在关键字视图中展开“Sign_in”操作。 </p><a name="wp78037"></a><p class="pIndent">如果此前关键字视图中并未显示操作列表，则操作列表将在您将操作转换为可重用操作之后进行显示。操作列表将显示测试中所有可重用操作和外部操作的列表。 <br /><br /><img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/ActionList.gif" border="0" /><br /><br /></p><a name="wp78039"></a><p class="pIndent_after">通过从操作列表中选择“Sign_in”，查看“Sign_in”操作的详细信息。将显示“Sign_in”操作的详细信息。 </p><a name="wp78041"></a><p class="pIndent">在操作列表中，选择“测试流程”，将关键字视图中的测试返回到主流程。 </p><a name="wp78043"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">将 ReturnHome 变为可重用操作。</b></li></div><a name="wp78053"></a><p class="pIndent">为 ReturnHome 操作重复步骤 <a href="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/Book-09-07.htm#wp78025">1</a> 和 <a href="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/Book-09-07.htm#wp78032">2</a>。 </p><a name="wp78055"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">保存测试。</b></li></div><a name="wp78058"></a><p class="pIndent">选择“文件”&gt;“保存”，或单击“保存”按钮 <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_save_button.gif" border="0" /> 。 </p></ol></div></blockquote><br /><blockquote class="indent"><a name="wp78066"></a><h2 class="pn2Heading">插入现有操作 </h2><a name="wp78068"></a><p class="pRegtext">在设计一组测试时，您可能会发现每个测试都要求一个或多个同样的活动，例如签入。一旦创建了操作并使用一个测试将其保存，您即可将对现有操作副本的调用或对现有操作的调用插入到其他测试中。 </p><a name="wp78070"></a><p class="pRegtext">在插入对现有操作副本的调用时，可以对复制的操作进行更改，您所做的更改不会影响其他测试，也不会受到其他测试的影响。但是，对现有操作的调用在调用测试中具有只读属性。只能在存储它们所使用的测试中对其进行修改。通过对现有操作的调用，您可以从多个测试中调用同一个操作，这使得维护测试变得很容易，因为当您的应用程序发生更改时，只需更新使用原始测试存储的现有操作。 </p><a name="wp78072"></a><p class="pRegtext">在后面的练习中，您将新建一个类似于“ActionA”测试的测试，所不同的是，“Sign_in”和“ReturnHome”操作是外部操作（对使用其他测试存储的现有操作的调用），而且对“FlightOrder”操作进行了一点修改。 </p></blockquote><br /><blockquote class="indent"><a name="wp78215"></a><h2 class="pn2Heading">参数化操作 </h2><a name="wp78221"></a><p class="pRegtext">看一下 QuickTest 窗口底部的数据表，在 ActionB 测试中您将发现四个选项卡：“Global”“Copy of FlightOrder”、“Sign_in [ActionA]”以及“ReturnHome [ActionA]”。 </p><a name="wp78223"></a><p class="pNote">注意： 如果没有显示数据表，请选择“查看”&gt;“数据表”以显示数据表。 </p><a name="wp78225"></a><p class="pRegtext">“Global”选项卡是一个数据表，其中的数据用于整个测试。如果“Global”表中显示有五行数据，则测试将运行五次。此外，可以使用相关操作表为每个操作创建数据集。如果使用操作参数对步骤进行参数化，并在相应的工作表中输入五行数据，则此操作将在每个测试循环中运行五次。 </p><a name="wp78227"></a><p class="pNote">注意： “Sign_in [ActionA]”和“ReturnHome [ActionA]”数据表显示为灰色，无法进行编辑，因为每一个数据表都属于相应调用的操作，因此仅可以从所调用操作的原始测试进行编辑。 </p><a name="wp78229"></a><p class="pRegtext">在本部分中，您将为“FlightOrder”操作创建一个数据集，以检查应用程序如何在单个用户会话中处理多个订单。 </p><div class="pSmartListBold1"><ol class="pSmartListBold1" type="1"><a name="wp78231"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">打开 </b><b style="FONT-WEIGHT: bold">ActionB</b><b style="FONT-WEIGHT: bold"> 测试。</b></li></div><a name="wp78233"></a><p class="pIndent">如果尚未打开“ActionB”测试，请选择“文件”&gt;“打开”，浏览至“ActionB”。单击“打开”。 </p><a name="wp78237"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">选择要参数化的步骤。</b></li></div><a name="wp78239"></a><p class="pIndent">单击 (+) 展开“Copy of FlightOrder”&gt;“Welcome:Mercury Tours”&gt;“Find a Flight:Mercury”。 </p><a name="wp78243"></a><p class="pIndent">在关键字视图的“toPort”行中，单击“值”单元格，再单击参数化图标 <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_param.gif" border="0" /> 。将打开“值配置选项”对话框。<br /><br /><img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/value_config2.gif" border="0" /><br /><br /></p><a name="wp78247"></a><p class="pIndent"><b style="FONT-WEIGHT: bold">输入参数信息。</b></p><a name="wp78249"></a><p class="pIndent">选择“参数”，并确认选择了“DataTable”选项。 </p><a name="wp78251"></a><p class="pIndent">在“名称”框中，键入 <span class="cExample">ArrivalCity</span>。 </p><a name="wp78253"></a><p class="pIndent">您正在专门为“Copy of FlightOrder”操作创建数据集。因此，选择“当前操作表（本地）”。单击“确定”关闭“值配置选项”对话框。 </p><a name="wp78259"></a><p class="pIndent">QuickTest 自动将“ArrivalCity”列添加到“Copy of FlightOrder”数据表并将“San Francisco”添加到“ArrivalCity”列的第一个单元格中。 </p><a name="wp78261"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">参数化其他步骤。</b></li></div><a name="wp78263"></a><p class="pIndent">一个客户在同一天飞到两个不同的地点，这不太符合逻辑，因此对出发和到达时间进行参数化非常有意义。 </p><a name="wp78269"></a><p class="pIndent">在关键字视图中，选择“fromMonth”。使用步骤 <a href="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/Book-09-11.htm#wp78237">2</a> 中的过程来参数化出发日期。确保选择“值配置选项”对话框中的“当前操作表（本地）”。 </p><a name="wp78275"></a><p class="pIndent">在关键字视图中，选择<b style="FONT-WEIGHT: bold">“toMonth”。</b>使用步骤 <a href="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/Book-09-11.htm#wp78237">2</a> 中的解释来参数化抵达日期。确保选择“值配置选项”对话框中的“当前操作表（本地）”。 </p><a name="wp78277"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">在数据表中输入参数化数据。</b></li></div><a name="wp78279"></a><p class="pIndent">在数据表中，单击“Copy of FlightOrder”选项卡。 </p><a name="wp78281"></a><p class="pIndent">在“ArrivalCity”列的第二行键入 <span class="cExample">Portland</span>。按 Enter 键。 </p><a name="wp78283"></a><p class="pIndent">在出发日期和抵达日期列的第二行键入 <span class="cExample">Oct </span>。 </p><a name="wp78285"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">将操作设置为在本地数据表中运行所有数据。</b></li></div><a name="wp78295"></a><p class="pIndent">默认情况下，QuickTest 仅运行测试中的每个操作的一个循环。您想要 QuickTest 使用“Copy of FlightOrder”选项卡中的所有数据。 </p><a name="wp78300"></a><p class="pIndent">右键单击关键字视图中的“Copy of FlightOrder”操作并选择“操作调用属性”。将打开“操作调用属性”对话框。<br /><br /><img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/Action%20Properties_run_tab.gif" border="0" /><br /><br /></p><a name="wp78302"></a><p class="pIndent_after">选择“运行”选项卡上的“在所有行上运行”。如果打开消息框，请阅读消息，然后单击“确定”将其关闭。单击“确定”关闭“操作调用属性”对话框。 </p></ol></div><div class="pSmartList1"><ol class="pSmartList1" type="1"><a name="wp78304"></a><div class="pSmartList1"><li><b style="FONT-WEIGHT: bold">保存测试。</b></li></div><a name="wp78307"></a><p class="pIndent">选择“文件”&gt;“保存”，或单击“保存”按钮 <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_save_button.gif" border="0" /> 。 </p><a name="wp78309"></a><p class="pIndent_after">现在您已创建了一个测试，该测试可完成下列操作：签入到 Mercury Tours 站点；提交以下两个航班订单：12 月 29 日到 12 月 31 日 从 London 飞往 San Francisco 的航班和 10 月 29 日到 12 月 31 日从 London 飞往 Portland 的航班；以及通过单击“Home”链接，从系统注销。 </p></ol></div></blockquote><br /><blockquote class="indent"><a name="wp78317"></a><h2 class="pn2Heading">运行和分析多操作测试 </h2><a name="wp78319"></a><p class="pRegtext">您将运行“ActionB”测试。整个测试只运行一次，而“FlightOrder”操作将运行两次，为“Copy of FlightOrder”数据表中的每组数据运行一次。 </p><div class="pSmartListBold1"><ol class="pSmartListBold1" type="1"><a name="wp78321"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">运行 </b>ActionB<b style="FONT-WEIGHT: bold"> 测试。</b></li></div><a name="wp78323"></a><p class="pIndent">请确认已关闭所有的 Web 浏览器。 </p><a name="wp78326"></a><p class="pIndent">单击“运行” <img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/sl_run.gif" border="0" /> 或选择“测试”&gt; “运行”。将打开“运行”对话框。 </p><a name="wp78328"></a><p class="pIndent">选择“新建运行结果文件夹”并接受默认的结果文件夹名。 </p><a name="wp78330"></a><p class="pIndent">单击“确定”。当完成测试运行时，将打开“测试结果”窗口。 </p><a name="wp78332"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">检查测试结果。</b></li></div><a name="wp78334"></a><p class="pIndent">检查结果概要。该测试标记为“完成”。这表明测试运行中未发生任何故障（没有要“通过”的检查点）。 </p><a name="wp78337"></a><p class="pIndent">展开“测试结果”窗口中的“Test ActionB Summary”&gt;“ActionB Iteration 1 (Row 1)”。选择结果树中的“Copy of FlightOrder Summary”操作。注意，概要将显示所有两项循环的结果。<br /><br /><img hspace="0" src="mk:@MSITStore:E:\基本常用工具\quicktest\QTP8.2_Tutorial使用手册\QTP8.2中文版Tutorial.chm::/images/results%20lesson8B.gif" border="0" /><br /><br /></p><a name="wp78339"></a><div class="pSmartListBold1"><li><b style="FONT-WEIGHT: bold">关闭“测试结果”窗口。</b></li></div><a name="wp78343"></a><p class="pIndent">选择“文件”&gt;“退出”关闭“测试结果”窗口。 </p></ol></div></blockquote><br /></font><img src ="http://www.cnitblog.com/szdlinxie/aggbug/20848.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-20 14:41 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/20/20848.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WAS服务器负载测试软件导读</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/20/20833.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Wed, 20 Dec 2006 03:08:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/20/20833.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20833.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/20/20833.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20833.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20833.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: WAS服务器负载测试软件导读你的Web服务器和应用到底能够支持多少并发用户访问？在出现大量并发请求的情况下，软件会出现问题吗？这些问题靠通常的测试手段是无法解答的。本文介绍了Microsoft为这个目的而提供的免费工具WAS及其用法。另外，本文介绍了一种Web应用的性能优化方法，并利用WAS测试了它的性能改善程度。　　编译如下：　　随着服务器端处理任务的日益复杂以及网站访问量的迅速增长，服务器性能...&nbsp;&nbsp;<a href='http://www.cnitblog.com/szdlinxie/archive/2006/12/20/20833.html'>阅读全文</a><img src ="http://www.cnitblog.com/szdlinxie/aggbug/20833.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-20 11:08 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/20/20833.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>测试工具的选择和使用</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/20/20832.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Wed, 20 Dec 2006 03:03:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/20/20832.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20832.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/20/20832.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20832.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20832.html</trackback:ping><description><![CDATA[
		<table cellspacing="0" cellpadding="0" width="778" align="center" border="0">
				<tbody>
						<tr>
								<td valign="top">
										<table cellspacing="0" cellpadding="0" width="558" border="0">
												<tbody>
														<tr>
																<td valign="top" align="right" width="98%" bgcolor="#ffffff">
																		<div class="daxiao14" align="left">
																				<center>
																						<h4>Parasoft白盒测试工具集</h4>
																				</center>
																				<p>
																				</p>
																				<table class="hui" align="center" border="1">
																						<tbody>
																								<tr>
																										<td width="20%">工具名</td>
																										<td width="24%">支持语言环境</td>
																										<td>简介</td>
																								</tr>
																								<tr>
																										<td>Jtest</td>
																										<td>Java</td>
																										<td>代码分析和动态类、组件测试</td>
																								</tr>
																								<tr>
																										<td>Jcontract</td>
																										<td>Java</td>
																										<td>实时性能监控以及分析优化</td>
																								</tr>
																								<tr>
																										<td>C++ Test</td>
																										<td>C,C++</td>
																										<td>代码分析和动态测试</td>
																								</tr>
																								<tr>
																										<td>CodeWizard</td>
																										<td>C,C++</td>
																										<td>代码静态分析</td>
																								</tr>
																								<tr>
																										<td>Insure++</td>
																										<td>C,C++</td>
																										<td>实时性能监控以及分析优化</td>
																								</tr>
																								<tr>
																										<td>.test</td>
																										<td>.Net</td>
																										<td>代码分析和动态测试</td>
																								</tr>
																						</tbody>
																				</table>
																				<br />
																				<center>
																						<h4>Compuware白盒测试工具集</h4>
																				</center>
																				<p>
																				</p>
																				<table class="hui" align="center" border="1">
																						<tbody>
																								<tr>
																										<td width="20%">工具名</td>
																										<td width="24%">支持语言环境</td>
																										<td>简介</td>
																								</tr>
																								<tr>
																										<td>BoundsChecker</td>
																										<td>C++,Delphi</td>
																										<td>API和OLE错误检查、指针和泄露错误检查、内存错误检查</td>
																								</tr>
																								<tr>
																										<td>TrueTime</td>
																										<td>C++,Java,Visual Basic</td>
																										<td>代码运行效率检查、组件性能的分析</td>
																								</tr>
																								<tr>
																										<td>FailSafe</td>
																										<td>Visual Basic</td>
																										<td>自动错误处理和恢复系统</td>
																								</tr>
																								<tr>
																										<td>Jcheck</td>
																										<td>M$ Visual J++</td>
																										<td>图形化的纯种和事件分析工具</td>
																								</tr>
																								<tr>
																										<td>TrueCoverage</td>
																										<td>C++,Java,Visual Basic</td>
																										<td>函数调用次数、所占比率统计以及稳定性跟踪</td>
																								</tr>
																								<tr>
																										<td>SmartCheck</td>
																										<td>Visual Basic</td>
																										<td>函数调用次数、所占比率统计以及稳定性跟踪</td>
																								</tr>
																								<tr>
																										<td>CodeReview</td>
																										<td>Visual Basic</td>
																										<td>自动源代码分析工具</td>
																								</tr>
																						</tbody>
																				</table>
																				<br />
																				<center>
																						<h4>Xunit白盒测试工具集</h4>
																				</center>
																				<p>
																				</p>
																				<table class="hui" align="center" border="1">
																						<tbody>
																								<tr>
																										<td width="20%">工具名</td>
																										<td width="24%">支持语言环境</td>
																										<td>官方站点</td>
																								</tr>
																								<tr>
																										<td>Aunit</td>
																										<td>Ada</td>
																										<td>http://www.libre.act-europe.fr</td>
																								</tr>
																								<tr>
																										<td>CppUnit</td>
																										<td>C++</td>
																										<td>http://cppunit.sourceforge.net</td>
																								</tr>
																								<tr>
																										<td>ComUnit</td>
																										<td>VB,COM</td>
																										<td>http://comunit.sourceforge.net</td>
																								</tr>
																								<tr>
																										<td>Dunit</td>
																										<td>Delphi</td>
																										<td>http://dunit.sourceforge.net</td>
																								</tr>
																								<tr>
																										<td>DotUnit</td>
																										<td>.Net</td>
																										<td>http://dotunit.sourceforge.net</td>
																								</tr>
																								<tr>
																										<td>HttpUnit</td>
																										<td>Web</td>
																										<td>http://c2.com/cgi/wiki?HttpUnit</td>
																								</tr>
																								<tr>
																										<td>HtmlUnit</td>
																										<td>Web</td>
																										<td>http://htmlunit.sourceforge.net</td>
																								</tr>
																								<tr>
																										<td>Jtest</td>
																										<td>Java</td>
																										<td>http://www.junit.org</td>
																								</tr>
																								<tr>
																										<td>JsUnit(Hieatt)</td>
																										<td>Java<i>script</i> 1.4以上</td>
																										<td>http://www.jsunit.net</td>
																								</tr>
																								<tr>
																										<td>PhpUnit</td>
																										<td>Php</td>
																										<td>http://phpunit.sourceforge.net</td>
																								</tr>
																								<tr>
																										<td>PerlUnit</td>
																										<td>Perl</td>
																										<td>http://perlunit.sourceforge.net</td>
																								</tr>
																								<tr>
																										<td>XmlUnit</td>
																										<td>Xml</td>
																										<td>http://xmlunit.sourceforge.net</td>
																								</tr>
																						</tbody>
																				</table>
																				<center>
																						<h4>主流黑盒功能测试工具集</h4>
																				</center>
																				<p>
																				</p>
																				<table class="hui" align="center" border="1">
																						<tbody>
																								<tr>
																										<td width="20%">工具名</td>
																										<td width="24%">公司名</td>
																										<td>官方站点</td>
																								</tr>
																								<tr>
																										<td>WinRunner</td>
																										<td>Mercury</td>
																										<td>http://www.mercuryinteractive.com</td>
																								</tr>
																								<tr>
																										<td>Astra Quicktest</td>
																										<td>Mercury</td>
																										<td>http://www.mercuryinteractive.com</td>
																								</tr>
																								<tr>
																										<td>Robot</td>
																										<td>IBM Rational</td>
																										<td>http://www.rational.com</td>
																								</tr>
																								<tr>
																										<td>QARun</td>
																										<td>Compuware</td>
																										<td>http://www.compuware.com</td>
																								</tr>
																								<tr>
																										<td>SilkTest</td>
																										<td>Segue</td>
																										<td>h