web_reg_find是先注册(register)后查找的:使用时将它放在请求语句的前面. 而web_find是查找前面的请求结果:使用时将它放在请求语句的后面. 另二者的参数也完成不一样的,web_reg_find参数中SaveCount记录查找匹配的次数, web_find的机制是一旦查找匹配成功就立即返回,并不继续查找和记录匹配次数 再者Run-time设置中的"enable image and textcheck"对web_find有效,而对web_reg_find无效. 注…
LR脚本实战:文本检查点web_reg_find和web_find两个函数的区别   web_reg_find是先注册(register)后查找的:使用时将它放在请求语句的前面. 而web_find是查找前面的请求结果:使用时将它放在请求语句的后面.另二者的参数也完成不一样的,web_reg_find参数中SaveCount记录查找匹配的次数, web_find的机制是一旦查找匹配成功就立即返回,并不继续查找和记录匹配次数再者Run-time设置中的“enable image and text…
对于很多用过LR的人来说,乱码一直是很纠结的事情,尤其是对新手来说.网上给的解决方法是在录制的时候勾选UTF-8选项,但是似乎并没有解决. 对于用户名为中文或者检查点为中文的情况,我们又该如何去处理呢,很简单 利用LR的内置函数 lr_convert_string_encoding , 函数语法: lr_convert_string_encoding("Hello world",LR_ENC_SYSTEM_LOCALE, LR_ENC_utf8,"stringInUnicod…
LR检查点 设置检查点的目的不只是为了验证我们的脚本没有错误,而更重要的是一个规范问题,如何使得测试结果更具有说服力,因此建议所有的测试脚本中都添加检查点设置 一.设置检查点的方法 1.将脚本切换到树结构,在page view页面上找到你要check的文本内容, 并执行鼠标右键,选择Add a text check. 2.将脚本切换回代码界面,在光标闪烁的上行,手动添加如下的代码 web_reg_find("Text/IC=Payment Details", "SaveCou…
前段时间在群里跟大家讨论一个关于性能测试的 问题,谈到如何评估测试结果,有一个朋友谈到规范问题,让我颇有感触,他说他们公司每次执行压力测试的时候,都要求脚本中必须有检查点存在,不然测试结果 将不被认可,这是他们公司的规范.其实,在做压力测试过程,我们很容易忽略很多东西,而且随着自身的技术演变,我们很容易去丢失掉一些很好的习惯,当我们 再碰到这些问题的时候,我们才发现其实是我们太粗心大意了,所以说好的习惯要保持.这次我刚好也要接手一些性能工作,因此就如何规范设置检查点来谈谈一些基本的流程和方法.…
在使用Loadrunner 11进行性能测试中,有时需要对性能测试中的功能是否全部正确进行判断.这里就需要用到“检查点”,本文总结了常用三种协议下检查点的使用方法,希望阅读本文后的小伙伴们能够掌握其使用方法,并灵活应用在实际项目中. 1. HTTP协议 HTTP协议中检查点有两种:图片和文字.这两种检查点可用以下三个函数实现:web_find().web_reg_find()和web_image_check(),下面介绍三种函数的使用方法. 1.1  web_find()函数 函数的作用是“在页…
一.什么是检查点 LoadRunner中检查点是用来判断脚本是否执行成功的.如果不加检查点,只要服务器返回的HTTP状态码是200,VuGen就认为脚本执行通过了.但是很多情况下服务器返回200并不代表脚本执行通过了,比如:登录操作,登录失败服务器返回的也是200,但是实际上它是执行失败了.所以在脚本调试时,我们一般会加上检查点来判断脚本是否执行通过. 上面说了,我们是在脚本调试过程中需要加上检查点,在实际的压测过程中是否需要加检查点呢?我的理解是尽量不要使用,除非迫不得已,因为脚本里面加入了检…
在使用loadrunner 测试时,比如我们在登陆时,我们希望说登录是否成功.这个时候我可以使用检查点函数. 检查登录后,页面上是否返回了某个标识,这样我们可以根据标识判断登录事务是否成功.   现在举例如下: 登录成功后页面会返回 class="success" 这个时候我们就可以使用检查点函数进行检查.   web_reg_find("Text=class=\"success\"", "SaveCount=amount",…
在测试时,我们可以根据文本检查点判断事务是否执行正确.   我们在启动流程时,成功返回:   我们检查这个响应结果是否有. int i=0; i=web_reg_find("Text=\":1,\"",         "Search=Body",         LAST); web_submit_data("startFlow.ht",         "Action=http://192.168.1.154:8…
//检查点设置语句 //tmp在此时为临时参数  web_reg_find("SaveCount=tmp",   "Text=xxx",   LAST);   //事务判定语句 //因为tmp为临时参数,所以需要用lr_eval_string函数将起转化为变量.     if(atoi(lr_eval_string("{tmp}"))>=1){   lr_end_transaction("register", LR_PA…
将脚本切换回代码界面, 在光标闪烁的上行,添加如下的代码: 添加的代码根据你检查的方式不同而不同, 你可以选择其中之一即可. 代码一: web_reg_find("Text=Payment Details",LAST); 注:“Payment Details” 为你要检查的文本: 脚本执行到此处,若在页面上找到了这几个字符串,那脚本继续执行下去:若没有找到,脚本将在此报错并且结束. 代码二: web_reg_find("Text=Payment Details",…
见过磕长头的人吗?他们的脸和手都很脏,可是心灵却很干净. ——<可可西里> 1.选择需要设置检查点的内容 有如下“添加客户”功能,添加任务操作完成之后,我希望检查是否添加成功.从图中可以看出应用程序给出了“添加客户成功”的提示 很遗憾的是当我选中这段文本-右键-add a text check(web_reg_find) 不可用,是灰色状态.但view Source可用. 2.查看view source, 打开之后是一个txt文件,可以使用Ctrf+F查找你想找的文本. 3. 插入检查点,选择…
1.首先使用录制的方式,把论坛的代码编写完成后,要判断的执行前插入检查点,使用右键方式,弹出的下拉的菜单中进行选择“insert”的选项. 2.就在弹出下一级的菜单中,进行选中一个为“new step”的选项. 3.进入到搜索框的界面中,在输入框进行搜索web_reg_find的函数的选项. 搜索函数,然后双击选择函数 4.在第一行的输入框中输入要检查的内容 5.然后在返回代码脚本的界面中,检查点函数被插入到代码中了. 6.通过执行代码可以看到log日志的信息是,插入检查点是执行成功的.…
插入检查点   靠LR自动生成的脚本是不够的,很难达到业务要求,因此需要对录制完的脚本进行完善,使其能达到业务模拟的要求 ,这样尽可能地使虚拟用户模拟时更接近用户的实际使用. 在进行压力测试时,经常会有页面间数据传递的操作.如果在测试过程中传递数据的次数逐渐增多,页面就有可能发生传递混乱,或者客户端与服务器端数据传输被中断.传输过程中产生了错误的数据等情况.为了判断数据传递的正确性,LR提供了插入检查点的方法.之前在入门篇的博客中有提到插入检查点的原因,这里就不再细说了,大概提一下,是因为当事务…
判断操作是否成功,检查点是必不可少的.loadrunner中可以设置文本检查点和图片检查点,下面记录一下loadrunner设置检查点的几种方法. 前言:在回放脚本时,必须确定run-time setting中勾选了“Enable Image and text check”选项,如下图所示.如果不勾选此项,脚本回放将不会执行检查点函数. 下面介绍几个添加检查点的方法 1)         可以在录制过程中添加文本检查点: 2)         在录制完成后,可以在Tree视图中添加文本检查点:如…
LoadRunner例子:检查点为参数的一个例子 检查点是LoadRunner的一个功能,用来验证业务功能的正确性.如果检查的内容是变化的,脚本该如何写呢? 问题提出:LoadRunner订票网站例子中,创建一个虚拟用户脚本,在登陆完成之后,设立一个检查点,来检查“welcome, xxx”.其中xxx为登陆的用户名称. 解决方法: 1)使用web_find() 做检查点 Action(){ //连接字符串,把welcome和用户名组合成一个字符串 char teststring[1024]="…
一.脚本录制(录制) 打开Loadrunner > 选择创建/编辑脚本 > NewScript > 选择协议(单协议.多协议) > Strart Recording >选择录制类型以及录制动作(其中action是可重复执行的,登陆与退出表示进入程序与完成录制) > 开始录制 > 中间可以自己增加action并自命名 > 录制完成点击停止 > 程序会自动保存并编译 > 录制完成. 二.脚本回放(回放) 在上一步中已录制完成脚本 >点击运行 &…
1.int web_reg_save_param("参数名","LB=左边界","RB=右边界",LAST);   //注册函数,在参数值出现的前面使用,注册成功时返回值为0,注册失败时返回值为1.左右边界需根据TreeView里相关步骤的SeverResponse代码来确定.用以上函数能获取第一个符合条件的数值. 2.web_reg_save_param("参数名”,"LB=左边界”,"RB=右边界",&…
1.什么是参数化参数化:把固定的一个值,变成动态.可变的数组,把数组的值进行值传递.数组大小可控制.2.为什么要使用参数化,2个原因.1.数据库校验字段值的唯一性.(数据库修改字段的唯一性,可避免参数化)2.应用程序不允许用一个值反复操作.(开发调整不允许一个值反复操作,可避免参数化)3.避免数据库的查询缓存,保证测试结果的真实性.(数据库在执行一条SQL查询操作时,先进行语法检查.语义分析(写法是否正确.表是否存在.是否有权限),生成执行计划,按执行计划做查询操作,如果查询的数据在数据库内存,…
学习示例 Loadrunner自带有WebTour的网站可以帮助初学者学习性能测试安装完Loadrunner以后进入到Program Files下的WebTour文件加,启动WebTour服务在浏览器中打开:http://127.0.0.1:1080/WebTours/index.htm 即可登陆WebTour服务 Loadrunner基本概念 集合点(lr_rendezvous): 可以同步虚拟用户以便更好的在同一时刻执行任务,实现并发. 事务: 服务器相应虚拟用户请求所用的时间,开始和结束总…
有这么一个场景,接口返回的多个状态都是正常的,那么在压测的时候,断言就需要多 init里面执行登录,根据返回获取到tokenId action中,执行登录后的操作,获取响应返回的状态,把正确的状态个数相加,大于0,就表示请求成功,然后通过if条件,人工判断事务是否成功 详细脚本如下: vuser_init() { //获取response响应信息 //web_reg_save_param("response","LB=","RB=",LAST);…
loadrunner判断登录是否成功,以下方法可以解决:1.利用添加检查点web_reg_find函数的方法---------------------------- lr_start_transacton("事物名称"); //插入开始事物 web_reg_find("Search=Body", "SaveCount=num", //检查内容出现的次数并保存到num中 "Text=苏宁", //查找的文本 LAST); ...…
前段时间接触了一下loadrunner的接口性能测试,然后尝试了一下手动编写脚本,毕竟录制这种东西,不是每次都能通的,而且录制下来的脚本,通常是有很多其他杂七杂八的请求夹杂在中间,没有达到真正的压测接口的目的: loadrunner默认的脚本是C语言的,百度之后发现其实它支持目前所有主流的语言,如:Java User.VB User.VB script User .Javascript User等. 下面是尝试过的几种post接口的请求方式: Post接口,通过JSON方式请求: int i;…
LoadRunner 参数化 为什么需要参数化? 大众理解:为了更加真实的模拟用户操作 底层原理: 1,应用服务,数据库会校验该值的唯一性(unique key) 2,为了避免数据库的查询缓存对性能测试结果的影响   LoadRunner 关联 一.为什么需要做关联? 1,回放的时候业务没有成功 2,服务器返回一个动态变化的值,并且下次请求时需要用到这个动态变化的值 3,提交请求的时候,服务器会校验这些值的合法性:它们之间有依赖关系 二.关联步骤: 1,找到服务器返回的动态变化的值 2,保存为一…
Loadrunner之HTTP脚本编写 刚学习性能测试的时候还是建议以录制脚本为好,从录制的脚本中去了解脚本结构,各个函数的用法,慢慢再去尝试自己去编写脚本,如果想往技术方向发展,建议最好学习一门编程语言,C语言和Java都可以,当然还有其他语言,我个人比较喜欢使用C和java! Loadrunner提供帮助文档,可以在帮助文档里查询相应函数的用法,大部分会提供example作为参考,我们只需要copy example中的实例,加之修改即可!言归正传,下面举个简单的例子介绍下: Action()…
转:检查点(web_reg_find函数详解) LR检查点 设置检查点的目的不只是为了验证我们的脚本没有错误,而更重要的是一个规范问题,如何使得测试结果更具有说服力,因此建议所有的测试脚本中都添加检查点设置 一.设置检查点的方法 1.将脚本切换到树结构,在page view页面上找到你要check的文本内容, 并执行鼠标右键,选择Add a text check. 2.将脚本切换回代码界面,在光标闪烁的上行,手动添加如下的代码 web_reg_find("Text/IC=Payment Deta…
loadrunner传k-v,用web_custom_request函数. init里面执行登录,根据返回获取到tokenId,action中,执行登录后的操作. 详细脚本如下: vuser_init vuser_init() { //获取response响应信息 //web_reg_save_param("response","LB=","RB=",LAST); //获取tokenId值 web_reg_save_param("tok…
异同点: 1.录制的和编写的脚本质量上没有区别 2.性能脚本关心的是用户和服务器的数据交互,从这点上来看,录制和编写也没有区别,手动编写脚本也可以写出很真实的脚本 3.能录制的情况下,就录制吧,谁每天闲着没事自己手动写脚本呢.一般的页面.http-get类型的接口,都可以录制.录制生成脚本后再手动修改下.web类型的 有页面的  一般都采取录制的方法(有页面 且是http协议多采用录制),接口类的 没有界面,都采用按照接口文档手写的方法 分别记录下两种脚本编写方法 录制脚本 一.录制脚本 1.I…
当我们使用一个数据库时,总希望数据库的内容是可靠的.正确的,但由于计算机系统的故障(硬件故障.软件故障.网络故障.进程故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失.因此当发生上述故障后,希望能重新建立一个完整的数据库,该处理称为数据库恢复.恢复子系统是数据库管理系统的一个重要组成部分.恢复处理随所发生的故障类型所影响的结构而变化. 一.恢复数据库所使用的结构 Oracle数据库使用几种结构对可能故障来保护数据:数据库后备.日志.回滚…
环境:Loadrunner版本:8.0自建一个test.html文件:<html><head><meta name="google1" content="google2"/><title>google3</title></head><body>google4:<input type="text" name="google5" />&…