总一下Loadrunner中的检查点函数,主要介绍两只函数:web_find()和web_reg_find();这简单只函数均用于内容之搜,但双边为出实质之分,具体介绍如下:
一、web_find()函数
欠函数的图是“从HTML页面被寻觅指定的文本字符串”常用参数和意义如下:

22:因子分解

  • 查看
  • 提交
  • 统计
  • 提问

究竟时限定: 
1000ms

内存限制: 
65536kB

描述
输入一个再三,输出其素因子分解表达式。

输入
输入一个平头 n (2 <= n < 100)。

输出
出口该整数的因数分解表达式。
表达式中逐条素数从小到好排列。
设该整数可以讲产生因子a的b次方,当b大叫1时,写做 a^b
;当b等于1时,则一直写成a。

样例输入
60

样例输出
2^235

来源
习题(9-3)

  1 #include<iostream>
  2 #include<cmath>
  3 using namespace std;
  4 int vis[10001];
  5 int zs2;
  6 int zs3;
  7 int zs5;
  8 void f(int &n)
  9 {
 10     if(n%2==0)
 11     {
 12         zs2++;
 13         n=n/2;
 14         f(n);
 15     }
 16     else if(n%3==0)
 17     {
 18         zs3++;
 19         n=n/3;
 20         f(n);
 21     }
 22     else if(n%5==0)
 23     {
 24         zs5++;
 25         n=n/5;
 26         f(n);
 27     }
 28 }
 29 int main()
 30 {
 31     
 32         int n;
 33     cin>>n;
 34     for(int i=2;i<=sqrt(n+0.5);i++)
 35     {
 36         if(vis[i]==0)
 37         {
 38             for(int j=i*i;j<=n;j=j+i)
 39             vis[j]=1;    
 40         }    
 41     }//筛法求素数 
 42     f(n);
 43     int flag=0;
 44     if(zs2==1)
 45     {
 46         cout<<"2";
 47         flag=1;
 48     }
 49     else if(zs2>0)
 50     {
 51         cout<<"2^"<<zs2;
 52         flag=1;
 53     }
 54     
 55     if(zs3==1)
 56     {
 57         if(flag==1)
 58         {
 59             cout<<"*3";
 60             flag=2;
 61         }
 62         else 
 63         {
 64             cout<<"3";
 65             flag=2;
 66         }
 67     }
 68     else if(zs3>1)
 69     {
 70         if(flag==1)
 71         {
 72             cout<<"*3^"<<zs3;
 73             flag=2;
 74         }
 75         else 
 76         {
 77             cout<<"3^"<<zs3;
 78             flag=2;
 79         }
 80     }
 81     //cout<<"3^"<<zs3<<"*";
 82     if(zs5==1)
 83         if(flag==1||flag==2)
 84         {
 85             cout<<"*5";
 86             flag=3;
 87         }
 88         else 
 89         {
 90             cout<<"5";
 91             flag=3;
 92         }
 93     else if(zs5>0)
 94         if(flag==1||flag==2)
 95         {
 96             cout<<"*5^"<<zs5;
 97             flag=3;
 98         }
 99         else 
100         {
101             cout<<"5^"<<zs5;
102             flag=3;
103         }
104     if(n!=1)
105     cout<<"*"<<n<<endl;
106     
107     return 0;
108 }

 

1 web_find("web_find", //定义该查找函数的名称
2   "RightOf=a", //定义查找字符的右边界
3   "LeftOf=b", //定义查找字符的左边界
4   "What=name", //定义查找内容
5   LAST);

 

行使该函数注意以下事项:
1、位置
  该函数在呼吁的页面内容全亮出后,在页面中进行搜索,所以只能写以打开页面的动作下
2、录制模式
  该函数只能当因HTML模式录制的本子中进行查找
3、必须启用内容检查选项
  打开LoadRunner的Virtual User Generator组件,选择Vuser->runtime
setting->Preferences里面,把Enable image and text
check选中,启用检查点,否则将无履该查找函数;

4、在VB和JAVA语法中无支持该函数
5、被寻找的文书内容中不要来空格,否则运行后产生误

  该函数有以下缺点:
1、 执行效率比较逊色
2、
不回来寻找结果情况,如想当推行该函数后根据查找结果召开越操作时,没有返回值可以根据
  例如:
  于页面被寻觅“登录成功”的字符串,如果找到该字符串在日记中输出“登录成功”,如果搜索不顶该字符串,则在日记中输出“登录失败”,此时使该函数没有根据来举行这个判断,但利用web_reg_find()函数,使用它其中的SaveCount可以开展判定,具体方法我们下介绍。

二、web_reg_find()函数
欠函数的作用是“在缓存中检索相应的内容”,常用参数与意义如下:

1 web_reg_find("Search=Body", //定义查找范围
2   "SaveCount=ddd", //定义查找计数变量名称
3   "Text=aaaa", //定义查找内容
4   LAST);

 

应用该函数注意以下事项:
1、位置
欠函数写于苟寻找内容的请求之前,通常状态下写于如下六个函数之前:

1 web_castom_request(); 
2 web_image(); 
3 web_link(); 
4 web_submit_data(); 
5 web_submit_form();
6 web_url()

 

2、使用技巧
  以拖欠函数的参数中发生只“SaveCount”,该参数可以记录在缓存中查找内容出现的次数,我们可以采取该值,来判定要物色的内容是否给找到,下面举个例证来验证:(引用LR的增援中的例子)

 1 // Run the Web Tours sample
 2 web_url("MercuryWebTours",
 3     "URL=http://localhost/MercuryWebTours/",
 4     "Resource=0",
 5     "RecContentType=text/html",
 6     "Referer=",
 7     "Snapshot=t1.inf",
 8     "Mode=HTML",
 9     LAST);
10 // Set up check for successful login by looking for "Welcome"
11 web_reg_find("Text=Welcome",
12     "SaveCount=Welcome_Count",
13     LAST);
14 // Now log in
15 web_submit_form("login.pl",
16     "Snapshot=t2.inf",
17     ITEMDATA,
18     "Name=username", "Value=jojo", ENDITEM,
19     "Name=password", "Value=bean", ENDITEM,
20     "Name=login.x", "Value=35", ENDITEM,
21     "Name=login.y", "Value=14", ENDITEM,
22     LAST);
23 // Check result
24 if (atoi(lr_eval_string("{Welcome_Count}")) > 0){ //判断如果Welcome字符串出现次数大于0
25     lr_output_message("Log on successful."); }//在日志中输出Log on successful
26 else{ //如果出现次数小于等于
27     lr_error_message("Log on failed"); //在日志中输出Log on failed
28 return(0);

我认为这主意好有因此,我们可以举一反三,应用到我们实在的门类面临
其三、插入检查点函数的道
1、手工写入,在用插入函数的职手工写副该函数
2、光标停留于使插入函数的岗位,在INSERT菜单中,选择new
step,在列表中摘要探寻要插入的函数,根据提示填写必要之参数
3、在tree view模式下,在树状菜单中选中要插入函数的职,右键,选择insert
after或insert before,根据提示填写必要之参数
四、总结
1、这片独函数类型不同,web_find是一般函数,web_reg_find是报函数;

2、这点儿种植函数在运行机制不同,当客户端向服务器发一个要的下,服务器进行响应;当响应的数据以缓存中的时候,注册函数可以于缓存中寻觅所设物色的始末;而通常函数(例如:web_find)需要相当我们呼吁的来得页面完全亮出后,从夫展示页面被开展搜索制定的字符串内容
3、web_find使用时务必被内容检查选项,而web_reg_find则从未是限制
4、web_find只能只用在依据HTML模式录制的本子中,而web_reg_find没有这个限制
5、web_find是当回的页面中展开内容搜索,web_reg_find是于缓存中展开搜寻
6、web_find在执行效率达不使web_reg_find

附录

web_find
 语法:
int web_find (const char *StepName, <Attributes and Specifications
list>, char *searchstring, LAST );

参数:
1、StepName:步骤名称,在Tree视图中出现。

2、Attributes and Specifications list:

支撑之习性有:

Frame:在差不多Frame的状态下,定义要摸Frame的限制。

Expect:定义在啊动静下函数检查成功:找到了点名的摸标准还是无找到。例如说,可以检查指定的错误信息是否出现于web页面中。合法的价有2个:found和notfound。默认值是“found”。

Matchcase:指定搜索是否别轻重缓急写。

Repeat:指定当第一糟发现只要寻找的字符串时,搜索是否继续。当一个web页面中富含多独为摸的字符串时,此参数是非常实用之。合法的值有2独:yes,no。默认值是“yes”。

Report:指定在啊情形下,VuGen在履行日志被展示是函数的自我批评结果。合法的值有:success,failure,always。默认值是“always”。

Onfailure:此参数决定在函数检查失败后,Vuser是否中断。参数值是abort。如果指定了Onfailure=abort,当函数检查失败时,不论在运转时设置中的error-handling是啊,脚本还见面搁浅。

而没指定Onfailure=abort,那么运行时设置中error-handling将会晤自作用。

支持的风味有:RightOf, LeftOf (不支持7.x及重新胜版本)。

RightOf:要找的字符串右边的内容。

LeftOf:要寻找的字符串左边的情。

3、Searchstring:需要寻找的字符串,格式为“What=stringxyz”。此寻觅未分轻重缓急写。

4、LAST:属性列表结束符。

返回值
 整型。 成功时回来LR_PASS(0),失败时回来LR_FAIL (1)。

说明
 此函数的意向是当HTML页面被检索指定的字符串。

其一函数只能于依据HTML录制的台本中以。当指定的HTML请求全部做到以后,开始推行搜过程,比web_reg_find要慢。

web_find函数在C语言的剧本中早已深受web_reg_find所替代,web_reg_find运行速度比快,而且以HTML-based和URL-based的录制方式中还足以以。在C语言脚论中,web_find是朝后相当的。Java与Visual
Basic脚本中不再支持它们。

运行于HTTP模式下之WAP用户以及运作在WSP回放模式下之WAP用户都未支持这函数。

web_reg_find
 语法:
int web_reg_find (const char *attribute_list, LAST);

参数:
1、attribute_list:

透过Name=Value对来传递参数。例如“Text=string”。Text,TextPfx,TextSfx三个必产生一个起。其他的特性是可选的。

a) Text:要找的字符串,字符串必须非空,以NULL结尾。可以采取text
flags自定义搜索字符串。

b) TextPfx:要摸索的字符串的一直前缀。

c) TextSfx:要物色的字符串的第一手后缀。

d) Search:搜索的限制。可选取的价是:Headers
、Body(在伸手求体中觅)、Noresource
(仅仅在HTML请求体中查找,不包头与资源)、ALL
(在恳求求体、头和资源被检索),默认值是“BODY”。

e) SaveCount:匹配的个数。

f) Fail:设置函数检查在什么状态下砸。

g) ID:日志文件中标识这函数的一个字符串。

h) RelFrameId:相关联的FrameId。注意:此参数在GUI级别之剧本中不吃支持。

2、LAST:属性列表结束之标记符。

返回值
 整型。成功时回来LR_PASS(0),失败时返回LR_FAIL(1)。

说明
web_reg_find属于注册函数,注册一个于web页面中寻觅文本字符串的呼吁,在接入下的Action(例如:web_url)类函数中实施搜。

经过寻找期望的字符是否有来证实是否回了愿意之页面。例如,通过搜寻“Welcome”来检查主页是否完全打开了。也可以寻找“Error”检查浏览器是否生误。还得应用这函数注册一个告来统计特定字符串出现的次数。

只要检查失败,在属下的Action类的函数中见面报错误。此函数仅仅注册请求,并无实行。函数的回来值仅表明注册是否中标,并无代表检讨的结果。

此函数不仅能寻text,还会查找到环在text的strings。不要以指定text和前缀后缀。

Fail,处理选项,可以是“Found或“NotFound”。默认是“NotFound”。

“Fail=Found”
指示当对应的字符找到时,函数检查失败。例如,查找单词“Error”,如果找到了,说名web请求没有水到渠成,你想拿函数检查装置为破产。

“Fail=NotFound”指示当对应的字符找不顶常,函数检查失败。如果搜索的凡web请求成功时起的字符串时,需要以NotFound。

SaveCount参数指示保存到参数中之配合的字符串的个数。使用此特性,需要指定“SaveCount=param”。检查操作为执行后,param
的价值是null结尾的数字型的价。

要是指定了SaveCount,且并未使Fail参数,检查不见面失败,无论用寻找的字符串是否找到。通过检查SaveCount的价确定字符串是否给找到。如果param是0,说明没有找到呼应的字符串。

而同时指定了SaveCount和Fail,指定的错误处理选项和SaveCount协同工作。
handling option specified works together with the SaveCount.
Thus,如果指定了SaveCount且指定了“Fail=NotFound”
,但是字符串被找到,SaveCount被赋值为字符串出现的次数,检查成功。如果字符串找不至,SaveCount被赋值为0,检查失败(注意,参数的0值只以运作时设置中Continue
on error 选中常才发生意义)。

斯函数在HTML-based和URL-based的剧本中还好运用。此函数是于所请内容到前注册搜索请求的,所以当所请求内容一致到达晚虽会见履行搜,产生的剧本比较迅速。