﻿<?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博客-金鳞-文章分类-Loadrunner</title><link>http://www.cnitblog.com/chenxin9821/category/7796.html</link><description>目标-&gt;软件测试架构师</description><language>zh-cn</language><lastBuildDate>Mon, 26 Sep 2011 19:05:08 GMT</lastBuildDate><pubDate>Mon, 26 Sep 2011 19:05:08 GMT</pubDate><ttl>60</ttl><item><title>GENERAL C PROGRAMMING EXAMPLES</title><link>http://www.cnitblog.com/chenxin9821/articles/52986.html</link><dc:creator>金鳞</dc:creator><author>金鳞</author><pubDate>Wed, 24 Dec 2008 06:47:00 GMT</pubDate><guid>http://www.cnitblog.com/chenxin9821/articles/52986.html</guid><wfw:comment>http://www.cnitblog.com/chenxin9821/comments/52986.html</wfw:comment><comments>http://www.cnitblog.com/chenxin9821/articles/52986.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/chenxin9821/comments/commentRss/52986.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/chenxin9821/services/trackbacks/52986.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;&nbsp;General C Programming Examples&nbsp;&nbsp;Table of ContentsIntroduction1. Program FormatC Program Format&nbsp;&nbsp; User-Defined Functions in C&nbsp;&nbsp; L...&nbsp;&nbsp;<a href='http://www.cnitblog.com/chenxin9821/articles/52986.html'>阅读全文</a><img src ="http://www.cnitblog.com/chenxin9821/aggbug/52986.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/chenxin9821/" target="_blank">金鳞</a> 2008-12-24 14:47 <a href="http://www.cnitblog.com/chenxin9821/articles/52986.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>A_lrunner_java_protocol_fixes_Feb_05</title><link>http://www.cnitblog.com/chenxin9821/articles/51427.html</link><dc:creator>金鳞</dc:creator><author>金鳞</author><pubDate>Fri, 14 Nov 2008 05:27:00 GMT</pubDate><guid>http://www.cnitblog.com/chenxin9821/articles/51427.html</guid><wfw:comment>http://www.cnitblog.com/chenxin9821/comments/51427.html</wfw:comment><comments>http://www.cnitblog.com/chenxin9821/articles/51427.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/chenxin9821/comments/commentRss/51427.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/chenxin9821/services/trackbacks/51427.html</trackback:ping><description><![CDATA[转自：<a href="http://www.51testing.com/?80261/action_viewspace_itemid_83341.html">http://www.51testing.com/?80261/action_viewspace_itemid_83341.html</a><br><br><br>以前在使用<a onclick="javascript:tagshow(event, 'loadrunner');" href="javascript:;" target=_self><u><strong><font color=#009999>loadrunner</font></strong></u></a> 的过程中，基本很少关注过手动编写<a onclick="javascript:tagshow(event, '%B2%E2%CA%D4');" href="javascript:;" target=_self><u><strong><font color=#009999>测试</font></strong></u></a>脚本，这也与手头<a onclick="javascript:tagshow(event, '%B9%A4%D7%F7');" href="javascript:;" target=_self><u><strong><font color=#009999>工作</font></strong></u></a>有一定的关系，平时难以接触到这方面的测试类型。虽然这期间也看过，但是感觉当时的Loadrunner对<a onclick="javascript:tagshow(event, 'JAVA');" href="javascript:;" target=_self><u><strong><font color=#009999>JAVA</font></strong></u></a>语言脚本的支持较弱，JDK还是1.1、1.2的版本，显然太不合时宜了，于是也就放弃了。
<p>&nbsp;&nbsp;&nbsp; 昨晚，在网上看了看Loadrunner8.1版本，已经支持到了JDK1.5版本，结合目前手头测试工作，觉得有必要细看一下。
<p>要使得Loadrunner8.1版本能够支持JAVA语言脚本，以下几点需要注意：
<p>1.JDK的版本必须是5.0（我机器上原先装的是JDK6.0，折腾了好长一段时间，总是报 ERROR loading javai.dll的错，最后没办法只能装5.0 ，Loadrunner对jdk的支持有点弱智）。设置好java 环境。
<p>2.Loadrunner 要支持JAVA语言必须，安装一个补丁。（ java_protocol_fixes_Feb_05 可以网上找一下，这儿没法上传）
<p>
<p>打开virtual user generator ，新建java vuser，看一下run-time settings，java environment setting 设置 如下图
<p><a href="http://wr2trw.bay.livefilestore.com/y1p4VrewYhoA6Icf7wpiym-OOzsSeOfJUCEHeGmxP8GxAJjvfYAVnsv-a5e2l8OoMtiTAL45ibfMkcn53Pd7E2ZBQ?PARTNER=WRITER"><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; WIDTH: 400px; BORDER-RIGHT-WIDTH: 0px" height=334 alt=1 src="http://by1.storage.msn.com/y1pQ9xL6cvFDOYvSsqpO5cSq9UwkzTAyNpEvOcGAFyWiuqqXE1gNj9ZKL52lQySsGdqlZ0DOg1SlLduy0GnZ7GWftbjgxf5ES5M?PARTNER=WRITER" width=573 border=0></a>
<p>
<p>打开 java vuser的编辑界面
<p>import lrapi.lr;
<p>public class Actions<br>{
<p>&nbsp;&nbsp;&nbsp; public int init() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<br>&nbsp;&nbsp;&nbsp; }//end of init
<p>&nbsp;&nbsp;&nbsp; public int action() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<br>&nbsp;&nbsp;&nbsp; }//end of action
<p>&nbsp;&nbsp;&nbsp; public int end() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<br>&nbsp;&nbsp;&nbsp; }//end of end<br>}
<p>可以看到标准的java class 写法。
<p>Actions 类包含三个方法：<em>init</em>、<em>action</em> 和 <em>end</em>。
<p><a></a>
<p>init&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 登录到服务器&nbsp;&nbsp;&nbsp; Vuser 已初始化（已加载）
<p><a></a>
<p>action&nbsp; 客户端活动&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Vuser 处于&#8220;正在运行&#8221;状态
<p><a></a>
<p>end&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注销过程&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Vuser 完成或停止
<p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这时候完全可以理解loadrunner如何执行java 测试脚本代码了，在Actions 类中调用测试java类，然后在脚本中需要的地方加上loadrunner自带的一些函数方法等（比如事务函数、命令行分析函数、信息性函数、运行时函数），当然还能进行一些参数化的设置，最后在control上增加vuser数量（也就是增加线程）。
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果抛开Loadrunner，使用一些开源的unit工具，完全也能够实现loadrunner这些功能，只不过可能在监控方面，没有loadrunner做的那么精致罢了。
<p>做个小例子。
<ul>
    <li>写个测试java类</li>
</ul>
<blockquote>
<p>public class&nbsp; testjava<br>{<br>&nbsp;&nbsp;&nbsp; public static void main(String args[])<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("hello world");<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; public String getStr()<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return "hello world";<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; public String getStr(String str)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return str;<br>&nbsp;&nbsp;&nbsp; }<br>}</p>
</blockquote>
<ul>
    <li>通过java Vuser调用测试java类</li>
</ul>
<blockquote>
<p>/*<br>* LoadRunner Java scrīpt. (Build: 754)<br>* <br>* scrīpt Descrīption: <br>*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>*/
<p>import lrapi.lr;<br>import org.apache.log4j.*;
<p>public class Actions<br>{<br>&nbsp;&nbsp;&nbsp; static Logger logger = Logger.getLogger(Actions.class.getName());<br>&nbsp;&nbsp;&nbsp; int i=10;
<p>&nbsp;&nbsp;&nbsp; public int init() {
<p>//读取log4j属性文件<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PropertyConfigurator.configure("D:\\MyEclipse Enterprise Workbench 5.1.0 GA\\eclipse\\workspace\\testjava\\bin\\log4j.properties");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<br>&nbsp;&nbsp;&nbsp; }
<p>&nbsp;&nbsp;&nbsp; public int action() {
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lr.start_transaction("事务");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; testjava t=new testjava();//调用测试类<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lr.message( "获取返回值："+&nbsp;&nbsp; t.getStr("&lt;NewParam&gt;")); //NewParam是loadrunner参数化设置的参数
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //设置集合点<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lr.rendezvous("集合点");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //设置等待时间<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lr.think_time(2); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lr.end_transaction("事务",lr.PASS);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //检索运行 Vuser 的计算机的名称<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String my_host = lr.get_host_name( );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lr.message( "计算机的名："+&nbsp; my_host+"&nbsp; "+i);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lr.log_message (lr.get_vuser_id() +" "+ t.getStr("&lt;NewParam&gt;"));
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //lr.get_vuser_id&nbsp; 返回当前 Vuser 的 ID <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logger.info(lr.get_vuser_id() +" "+ t.getStr("&lt;NewParam&gt;"));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lr.enable_redirection(true);
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("This is an informatory message&#8230;"); // 已重定向 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // System.err.println("This is an error message&#8230;"); // 已重定向
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lr.enable_redirection(false); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("This is an informatory message&#8230;"); // 未重定向 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // System.err.println("This is an error message&#8230;"); // 未重定向
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<br>&nbsp;&nbsp;&nbsp; }
<p>&nbsp;&nbsp;&nbsp; public int end() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<br>&nbsp;&nbsp;&nbsp; }<br>}</p>
</blockquote>
<ul>
    <li>Vuser运行 log</li>
</ul>
<blockquote>
<p>Virtual User scrīpt started<br>Starting action vuser_init.<br>Ending action vuser_init.<br>Running Vuser...<br>Starting iteration 1.<br>Starting action Actions.<br>Notify: Transaction "事务" started.<br>获取返回值：1<br>Rendezvous 集合点<br>Notify: Transaction "事务" ended with "Pass" status (Duration: 0.0175).<br>计算机的名：ms-599008241fcd&nbsp; 10<br>-1 1<br>System.out:&nbsp; INFO (Actions.java:37) - -1 1<br>Notify:<br>System.out: This is an informatory message&#8230;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Notify:<br>Ending action Actions.<br>Ending iteration 1.<br>Ending Vuser...<br>Starting action vuser_end.<br>Ending action vuser_end.<br>Vuser Terminated.</p>
</blockquote>
<ul>
    <li>Control 运行 截图</li>
</ul>
<blockquote>
<p><a href="http://wr2trw.bay.livefilestore.com/y1pAj192bOv_yxp57DRDtSRe7jOts-wjpQhkLXAx0Cs4DCyfcKowikk_SMRKYabWGNDt7J_VSKwTkSMA0_ib6hb5MFXx3ZwcNpE?PARTNER=WRITER"><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; WIDTH: 400px; BORDER-RIGHT-WIDTH: 0px" height=75 alt=2 src="http://by1.storage.msn.com/y1pQ9xL6cvFDObLjpFQH1Z0Bi1mB9ULwPoebC9yuRO3raaGM5f4VgScOiff04KV0yYXxRqqkzpX30ewm9906ihwv9OxKdMvLK-D?PARTNER=WRITER" width=480 border=0></a>
<p>看到定义的&#8220;事务&#8221;。
<p>&nbsp;</p>
</blockquote>
<ul>
    <li>log4j属性文件</li>
</ul>
<blockquote>
<p>log4j.rootCategory=DEBUG, stdout,R<br>log4j.appender.stdout=org.apache.log4j.ConsoleAppender<br>log4j.appender.stdout.layout=org.apache.log4j.PatternLayout<br>log4j.appender.stdout.layout.ConversionPattern=%5p (%F:%L) - %m%n<br>log4j.appender.R=org.apache.log4j.RollingFileAppender<br>log4j.appender.R.File=c:/log.txt<br>log4j.appender.R.MaxFileSize=100KB<br>log4j.appender.R.MaxBackupIndex=1<br>log4j.appender.R.layout=org.apache.log4j.PatternLayout<br>log4j.appender.R.layout.ConversionPattern=%d{yyyy MMM dd HH:mm:ss} %-5p %c - %m%n </p>
</blockquote>
<ul>
    <li>20个Vuser运行一次，查看一下log文件，可以看一下参数设置的效果</li>
</ul>
<blockquote>
<p>2008 三月 02 18:06:43 INFO&nbsp; Actions - 7 91<br>2008 三月 02 18:06:43 INFO&nbsp; Actions - 16 101<br>2008 三月 02 18:06:43 INFO&nbsp; Actions - 17 121<br>2008 三月 02 18:06:43 INFO&nbsp; Actions - 13 41<br>2008 三月 02 18:06:43 INFO&nbsp; Actions - 10 181<br>2008 三月 02 18:06:43 INFO&nbsp; Actions - 18 141<br>2008 三月 02 18:06:43 INFO&nbsp; Actions - 19 151<br>2008 三月 02 18:06:43 INFO&nbsp; Actions - 6 71<br>2008 三月 02 18:06:43 INFO&nbsp; Actions - 11 1<br>2008 三月 02 18:06:43 INFO&nbsp; Actions - 9 131<br>2008 三月 02 18:06:43 INFO&nbsp; Actions - 2 191<br>2008 三月 02 18:06:43 INFO&nbsp; Actions - 12 21<br>2008 三月 02 18:06:43 INFO&nbsp; Actions - 5 51<br>2008 三月 02 18:06:43 INFO&nbsp; Actions - 15 81<br>2008 三月 02 18:06:43 INFO&nbsp; Actions - 20 161<br>2008 三月 02 18:06:43 INFO&nbsp; Actions - 3 11<br>2008 三月 02 18:06:43 INFO&nbsp; Actions - 1 171<br>2008 三月 02 18:06:43 INFO&nbsp; Actions - 8 111<br>2008 三月 02 18:06:43 INFO&nbsp; Actions - 14 61<br>2008 三月 02 18:06:43 INFO&nbsp; Actions - 4 31
<p>&nbsp;</p>
</blockquote>
<p>loadrunner 提供的.NET JAVA等语言脚本支持，为测试的灵活性、多样性提供了极大的方便。</p>
<img src ="http://www.cnitblog.com/chenxin9821/aggbug/51427.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/chenxin9821/" target="_blank">金鳞</a> 2008-11-14 13:27 <a href="http://www.cnitblog.com/chenxin9821/articles/51427.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Loadrunner中参数和变量的使用</title><link>http://www.cnitblog.com/chenxin9821/articles/51426.html</link><dc:creator>金鳞</dc:creator><author>金鳞</author><pubDate>Fri, 14 Nov 2008 05:12:00 GMT</pubDate><guid>http://www.cnitblog.com/chenxin9821/articles/51426.html</guid><wfw:comment>http://www.cnitblog.com/chenxin9821/comments/51426.html</wfw:comment><comments>http://www.cnitblog.com/chenxin9821/articles/51426.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/chenxin9821/comments/commentRss/51426.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/chenxin9821/services/trackbacks/51426.html</trackback:ping><description><![CDATA[<div class=bvMsg id=msgcns!7F506A16C428EC18!284>
<p>//字符串复制<br>strcpy(str,"Hello ") ;
<p>//字符串连接<br>strcat(str,"World !");<br>lr_message("str: %s",str);
<p>//变量转为参数,将变量str的值存到参数Param中<br>lr_save_string(str,"Param");
<p>//参数复制<br>lr_save_string(lr_eval_string("{Param}"),"Param_1");
<p>//参数转为变量<br>strcpy(str1,lr_eval_string("{Param_1}"));<br>lr_message("str1: %s",str1);
<p>//参数名称格式化输出到变量中<br>sprintf(str2,"{Param_%d}",1);<br>lr_message("str2: %s",lr_eval_string(str2));
<p>在web系统中 参数一般通过web_reg_save_param获取
<p>语法：
<p>int web_reg_save_param(const char *ParamName, &lt;list of Attributes&gt;, LAST);
<p>参数说明:
<ul>
    <li>ParamName: 存放得到的动态内容的参数名称
    <li>list of Attributes: 其它属性，包括：Notfound, LB, RB, RelFrameID, Search, ORD, SaveOffset, Convert, SaveLen。属性值不分大小写
    <ul>
        <li>Notfound: 当在返回信息中找不到要找的内容时应该怎么处理
        <li>Notfound=error: 当在返回信息中找不到要找的内容时，发出一个错误讯息。这是缺省值。
        <li>Notfound=warning: 当在返回信息中找不到要找的内容时，只发出警告，脚本也会继续执行下去不会中断。
        <li>LB( Left Boundary ) : 返回信息的左边界字串。该属性必须有，并且区分大小写。
        <li>RB( Right Boundary ): 返回信息的右边界字串。该属性必须有，并且区分大小写。
        <li>RelFrameID: 相对于URL而言，欲查找的网页的Frame。此属性质可以是All或是数字，该属性可有可无。
        <li>Search : 返回信息的查找范围。可以是Headers，Body，Noresource，All(缺省)。该属性质可有可无。
        <li>ORD : 说明第几次出现的左边界子串的匹配项才是需要的内容。该属性可有可无，缺省值是1。如为All，则将所有找到的内容储存起来。
        <li>SaveOffset : 当找到匹配项后，从第几个字元开始存储到参数中。该属性不能为负数，缺省值为0。
        <li>SaveLen ：当找到匹配项后，偏移量之后的几个字元存储到参数中。缺省值是-1，表示一直到结尾的整个字串都存入参数。
        <li>Convert : 可取的值有以下两种: </li>
    </ul>
    </li>
</ul>
<p>HTML_TO_URL : 将 HTML-encoded 资料转成 URL-encoded 资料格式
<p>HTML_TO_TEXT : 将 HTML-encoded 资料转成纯文字资料格式
<p>注：可以将ORD设置成ALL看看效果，然后充分挖掘
<p>&nbsp;
<p><strong>付：</strong>
<p>字符串处理主要是对字符串操作和比较。
<p>函数名 介绍 <br>strcat 连接两个字符串 <br>strchr 返回字符串第一次出现后的所有字符 <br>strcmp 区分大小写字母比较&nbsp; <br>strcpy 复制一个字符串到另一个&nbsp; <br>strdup 复制字符串 <br>stricmp 不区分大小写字母比较 <br>strlen 返回字符串长度 <br>strlwr 转化字符串为小写字母 <br>strncat 一个字符串连接另一个字符串到第n个的字符&nbsp; <br>strncmp 比较两个字符串从第一到n个字符 <br>strncpy 复制一个字符串从第一到n个字符到另一个字符串&nbsp; <br>strnicmp 比较两个字符串的n个字符&nbsp; <br>strrchr 返回字符最后出现后的所有字符 <br>strset 为字符串填充特殊字符 <br>strspn 返回字符串中包含特殊字符的个数&nbsp; <br>strstr 返回一个字符串在另一个中第一出现的位置数&nbsp; <br>strtok 返回特殊标记分割的字符&nbsp; <br>strupr 转化字符串为大小字母 </p>
</div>
<img src ="http://www.cnitblog.com/chenxin9821/aggbug/51426.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/chenxin9821/" target="_blank">金鳞</a> 2008-11-14 13:12 <a href="http://www.cnitblog.com/chenxin9821/articles/51426.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>