LR中参数的定义和赋值

  1.参数的赋值和取值
  lr_save_string("hello world","param");
  lr_eval_string("{param}");
  2.变量到参数
int x;
char *y;
y="hello";
x=10;
lr_save_int(x,"param");
lr_save_string(y,"param1");
lr_eval_string("{param}");
lr_eval_string("{param1}");
  3.变量读参数
char x[100];
x="{param}";
lr_save_string("hello world","param");
lr_eval_string(x);
  LR中文件下载模拟
Action()
{
//定义一个整型变量保存获得文件的大小
int flen;
//保存文件句柄
long filedes;
//保存文件路径及文件名
char file[256]="/0";
//定义一个随机数
char * strNumber;
//Returns the string argument after evaluating embedded parameters.
strNumber=lr_eval_string("{RandomNum}");
//将路径保存到file变量中
strcat(file,"D://Excel//");
//将获得的随机数拼接在file变量之后
strcat(file,strNumber);
//将下载的文件后缀名.rar拼接在file变量之后
strcat(file,".rar");
//到此为止一个LoadRunner已经获得了一个完整的文件名
//设置参数的最大长度,注意该值必须大于文件的大小
web_set_max_html_param_len("20000");
//使用关联函数获取下载文件的内容,在这里不定义左右边界,获得服务器响应的所有内容
web_reg_save_param("fcontent",
"LB=",
"RB=",
"SEARCH=BODY",
LAST);
lr_start_transaction("下载帮助文件");
//发送下载帮助文件的请求
web_url("DownLoadServlet",
"URL=https://testserver3/servlet/DownLoadServlet?filename=help",
"Resource=1",
"RecContentType=application/x-msdownload",
"Referer=",
"Snapshot=t41.inf",
LAST);
//获取响应中的文件长度
flen = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);
if(flen > 0)
{
//以写方式打开文件
if((filedes = fopen(file, "wb")) == NULL)
{
lr_output_message("打开文件失败!");
return -1;
}
//写入文件内容
fwrite(lr_eval_string("{fcontent}"), flen, 1, filedes);
//关闭文件
fclose(filedes);
}
lr_end_transaction("下载帮助文件",LR_AUTO);
return 0;
}
  如何进行数据的关联
  VuGen提供二种方式帮助您找出需要做关联(correlation)的值:
  1. 自动关联
  2. 手动关联
  自动关联
  VuGen内建自动关联引擎(auto-correlationengine),可以自动找出需要关联的值,并且自动使用关联函数建立关联。有两种方式:
  RuleCorrelation
  可以在【RecordingOptions】>【InternetProtocol】>【Correlation】中启用关联规则,则当录制这些应用系统的脚本时,VuGen会在脚本中自动建立关联。
 
字体:        | 上一篇 下一篇 | 打印  | 我要投稿

  您也可以在【RecordingOptions】>【InternetProtocol】>【Correlation】检视每个关联规则的定义。
  请依照以下步骤使用RuleCorrelation:
  1. 启用auto-correlation
  1) 点选VuGen的【Tools】>【RecordingOptions】,开启【RecordingOptions】对话窗口,选取【InternetProtocol】>【Correlation】,勾选【Enablecorrelation during recording】,以启用自动关联。
  2) 假如录制的应用系统属于内建关联规则的系统,如AribaBuyer、BlueMartini、BroadVision、InterStage、mySAP、NetDynamics、Oracle、PeopleSoft、Siebel、SilverJRunner等,请勾选相对应的应用系统。
  3) 或者也可以针对录制的应用系统加入新的关联规则,此即为使用者自订的关联规则。
  2. 录制脚本
  开始录制脚本,在录制过程中,当VuGen侦测到符合关联规则的数据时,会依照设定建立关联,您会在脚本中看到类似以下的脚本,此为BroadVision应用系统建立关联的例子,在脚本批注部分可以看到关联前的数据为何。
  3. 执行脚本验证关联是OK的。
  CorrelationStudio
  当录制的应用系统不属于VuGen预设支持的应用系统时,RuleCorrelation可能既无法发挥作用,这时可以利用CorrelationStudio来做关联。
  CorrelationStudio会尝试找出录制时与执行时,服务器响应内容的差异部分,藉以找出需要关联的数据,并建立关联。
  使用CorrelationStudio的步骤如下:
  1. 录制脚本并执行
  2. 执行完毕后,VuGen会跳出下面的【ScanAction for Correlation】窗口,询问您是否要扫描脚本并建立关联,按下【Yes】按钮。
  3. 扫描完后,可以在脚本下方的【CorrelationResults】中看到扫描的结果。
  4. 检查一下扫瞄的结果后,选择要做关联的数据,然后按下【Correlate】按钮,一笔一笔做,或是按下【CorrelateAll】让VuGen一次就对所有的数据建立关联。
  注意:由于CorrelationStudio会找出所有有变动的数据,但是并不是所有的数据都需要做关联,所以不建议您直接用【CorrelateAll】。
  5. 一般来说,您必须一直重复步骤1~4直到所有需要做关联的数据都找出来为止。因为有时前面的关联还没做好之前,将无法执行到后面需要做关联的部份。
  手动关联
  手动关联的执行过程大致如下:
  1. 使用相同的业务流程与数据,录制二份脚本
  2. 使用Diff工具比较一下生成的Action.c,找出需要关联的数据
  3. 使用web_reg_save_param函数手动建立关联
  4. 将脚本中有用到关联的数据,以参数取代
  注意动态数据不能放在vuser_init.c文件中。不是所有的差异处都要关联的,WEB_URL()等方法的参数列表的先后顺序是没关系的,思考时间当然也可以不同。
  LR的检查点设置
  常用检查点函数如下:
  1)web_find()函数用于从 HTML 页中搜索指定的文本字符串;
  2)web_reg_find()函数注册一个请求,以在下一个操作函数(如 web_url)检索到的HTML网页上搜索指定的文本字符串;
  3)web_image_check()函数用于从HTML页面中查找指定的图片;
  4)web_global_verfication()属于注册函数,注册一个在web页面中搜索文本字符串的请求,与web_reg_find只在下一个Action函数中执行搜索不同的是它在之后所有的Action类函数中执行搜索指定的文本字符串;
  下面分别介绍以上函数的用法:
  1、web_find()函数参数举例:
  web_find("web_find","RighOf=a","LeftOf=b","What=name",LAST);
  参数解释:"web_find"定义该查找函数的名称;“LeftOf”和“RighOf=”用来定义查找字符的左右边界;“What=”定义查找内容;
  例如上述参数举例中的意思就是在页面中查找左边界为b,右边界为a,内容为name的信息;
  使用该函数注意事项:该函数是在查找页面中的内容,所以要放在要查找的内容的后面;该函数只能在基于HTML模式录制的脚本中进行查找
  注意事项:使用该函数时,要在Vuser->Run-Tme Settings中更改下设置
  勾选Enable Image and text check
  系统默认是不勾选该选项的。
  2、web_reg_find()函数参数举例:
  web_reg_find("Search=Body","SaveCount=ddd","Test=aaa",LAST);
  参数解释: Search用来定义查找范围,SaveCount定义查找计数变量名称,该参数可以记录在缓存中查找内容出现的次数,可以使用该值,来判断要查找的内容是否被找到;
  例如上述参数举例中的意思就是Body中查找内容为aaa的信息,并将出现次数记录在变量ddd中;
  【代码一:web_reg_find("Text=PaymentDetails",LAST);
  代码思路:1.“Payment Details” 为你要检查的文本;
  2. 脚本执行到此处,若在页面上找到了这几个字符串,那脚本继续执行下去;若没有找到,脚本将在此报错并且结束。
  3、web_image_check()函数参数说明:
  web_image_check("web_image_check","Alt=","Src=",LAST);
  参数解释:“Alt”和“Src”的值直接取该图片在网页源代码中相应参数的值;
  注意事项:使用该函数时,要在Vuser->Run-Tme Settings中勾选Enable Image and text check,具体操作请看web_find()中的注意事项。
  插入函数的方法
  1、 手工写入,在需要插入函数的位置手工写入该函数;
  2、 光标停留在要插入函数的位置,在INSERT菜单中,选择new step,在列表中选择或查找要插入的函数,根据提示填写必要的参数;
  3、 在tree view模式下,在树状菜单中选中要插入函数的位置,右键,选择insert after或insert before,根据提示填写必要的参数;
  总结:
  1、 这两个函数函数类型不同,WEB_FIND是普通函数,WEB_REG_FIND是注册函数;
  2、 WEB_FIND使用时必须开启内容检查选项,而WEB_REG_FIND则不没有此限制;
  3、 WEB_FIND只能用在基于HTML模式录制的脚本中,而WEB_REG_FIND没有此限制;
  4、 WEB_FIND是在返回的页面中进行内容查找,WEB_REG_FIND是在缓存中进行查找;
  5、 WEB_FIND在执行效率上不如WEB_REG_FIND;
  使用web_concurrent_start报错
  录制方式选的是HTML-based script,改为url-based script就可以了。该函数不支持HTML-based script方式。
  LR中的脚本变量声明报错
  Loadrunner使用的是C语言的语法。脚本中变量必须在开头声明。比如说,在Vuser_init、Action、Vuser_end定义变量,必须现在最顶端生命,后面才能使用。如果不这样,编译器是通不过的。

LoadRunner FAQ2的更多相关文章

  1. 【云知道】LoadRunner 录制问题集锦

    关键词:各路录制小白汇集于此 虽然知道君对录制不感冒,但总是看到扎堆的人说这些问题,忍不住要站出来了. 百度虽好,帮助了很多小白,但关键是百度并没有排除错误内容,经过历史的几年传播,错的都快变对的了, ...

  2. 【云知道】究极秒杀Loadrunner乱码

    Loadrunner乱码一击必杀 之前有介绍一些简单的针对Loadrunner脚本或者调试输出内容中乱码的一些设置,但是并没能完全解决一些小伙伴的问题,因为那些设置实在能力有限,还是有很多做不到的事情 ...

  3. LoadRunner函数百科叒叒叒更新了!

    首先要沉痛通知每周四固定栏目[学霸君]由于小编外派公干,本周暂停. 那么这周就由云层君来顶替了,当然要要说下自己做的内容啦,DuangDuang! <LoadRunner函数百科>更新通知 ...

  4. Loadrunner Http Json接口压力测试

    前天接到了一个测试任务,要求测试一下ES(elsticsearch)在不同并发下的查询效率.如图: 业务场景是在客户端根据具体车牌查询相关车辆信息,结果返回前10条记录. 从图中可以看到,接口的请求参 ...

  5. LoadRunner免费公开课,惠普金牌讲师亲授

    [开课时间]:9月13日 下午2:00—4:00(暂定)[活动费用]:免费[主办单位]:慧都学院[课程形式]:网络在线公开课 LoadRunner简介惠普软件测试解决方案LoadRunner测试实例答 ...

  6. loadrunner性能测试---添加windows多台压力机

    添加多台压力机 1.前置条件 1)保证压力机上都安装了loadrunner Agent,并启动,状态栏中会有小卫星.       2)添加的压力机与controller所在机器是否在同一个网段,建议关 ...

  7. LoadRunner安装+汉化+破解

    因为工作需要要用到LoadRunner,找个好几个版本,换了两台电脑(公司的win7折腾了好久装不上去),耗时两天终于搞定了,分享给需要的小伙伴们,避免大家踩更多的坑~ 一.安装前的准备 Win10系 ...

  8. Loadrunner时间函数、用时间生成订单编号例子

    Loadrunner中取时间函数.用时间函数生成订单编号例子: <如要转载,请注明网络来源及作者:Cheers_Lee> 问题的提出: (1)有时候在Loadrunner中用C语言设计脚本 ...

  9. 通过LoadRunner - Analyze详细分析页面元素请求

    众所周知LoadRunner录制某个链接,包括动态请求与js.css.jpg等静态请求. web_custom_request("动态请求", "URL=http://w ...

随机推荐

  1. c语言简易文法

    <程序>→<外部声明>|<程序><外部声明> <外部声明>→<函数定义>|<声明> <函数定义>→< ...

  2. IQueryable join 的问题

    //定义OrderDetailsTable model类public class OrderDetailsTable { public int OrderID { get; set; } public ...

  3. 关于公司VPN专线接入的一个案例

    最近互通网络技术部门收到一到封邮件,是关于公司VPN接入的问题,问题如下: 条件:A区为办公地点1,其他办公电脑20台,并通过写字楼的宽带接口联通外网. B区为新办公地点2,预设应用.数据库.备份服务 ...

  4. Redis学习笔记1-Redis数据类型

    Redis数据类型 Redis支持5种数据类型,它们描述如下: Strings - 字符串 字符串是 Redis 最基本的数据类型.Redis 字符串是二进制安全的,也就是说,一个 Redis 字符串 ...

  5. [BTS] WCF-OracleDB

    When I insert some data to Oracle, BizTalk WCF-OracleDB throw this error. A message sent to adapter ...

  6. Objective-C学习备忘录:Clang编译器编译运行Objective-C代码

    我们都知道可以通过Apple公司的Xcode工具来学习Objective-C编程语言,但是能不能脱离XCode这个IDE进行Objective-C学习呢?当然是可以的.首先作为计算机科班出身的程序员都 ...

  7. jstl删除session,choose,动态获取request当前工程路径

    1.jstl标签c:remove删除session request.getSession().setAttribute("ssmsg", "修改成功"); &l ...

  8. Linux中MySQL5.5解压版普通用户安装

    #查看本机mysql 安装路径 [hadoop@SY-0134 toolkit]$ rpm -qa|grep -i mysql [hadoop@SY-0134 toolkit]$ whereis my ...

  9. logstash通过kafka传输nginx日志(三)

    单个进程 logstash 可以实现对数据的读取.解析和输出处理.但是在生产环境中,从每台应用服务器运行 logstash 进程并将数据直接发送到 Elasticsearch 里,显然不是第一选择:第 ...

  10. 图形 - bootStrap4常用CSS笔记

    .rounded 图片显示圆角效果 .rounded-circle 设置椭圆形图片 .img-thumbnail 设置图片缩略图(图片有边框) .img-fluid 响应式图片 .float-righ ...