一、脚本创建关联和插入检查点

脚本录制完成后,首先需运行脚本回放,验证是否可回放成功,然后找出各事务请求中的关联点!

如本例子中,录制的场景为:打开综合窗口收件-->查询事项-->窗口登记-->选择申请人-->保存办件-->选择意见-->下一步出件!完成以上场景后,会在【综合窗口出件】页面产生一条签收结果为“未签收”的办件!

运行脚本后,选择树结构,可查看各请求的请求数据和响应结果!经过分析得出,后续请求用到的controlSeq和handleSeq,是由controlSave.do这个接口产生,因此需要在这里将controlSeq和handleSeq参数值提取,以供后续接口使用!

1、参数提取--->创建关联

(1)选中对应的参数值,鼠标右键选择“创建关联”,在弹窗中点击“是”;

(2)由树结构切回脚本(Script)页面,对应接口请求前有增加了一个提取参数的函数,需修改函数中的左、右边界,拿多一点参数使提取结果更精确!(PS:使用正则表达式进行参数提取,此处不过多描述)

web_reg_save_param_ex(
"ParamName=CorrelationParameter_1",
"LB=\"controlSeq\":\"",
"RB=\"}",
SEARCH_FILTERS,
"Scope=All",
"RequestUrl=*/add.v*",
"NotFound=warning",
LAST);

以上步骤,完成了controlSeq的参数提取(handleSeq参数同操作),后续的事务请求中用到参数controlSeq时,其对应的值会自动替换为CorrelationParameter_1,如下图:

2、添加文本检查

LoadRunner中的文本检查,相当于Jmeter中的响应断言!

(1)在想要检查的接口请求前后添加图中的查找函数、打印函数,相关代码和解释如下:

1  web_reg_find("Search=Body",                                        #Search用来定义查找范围
2 "SaveCount=count", #SaveCount定义查找计数变量名称,该参数用来记录在缓存中查找内容出现的次数,可以使用该值,来判断要查找的内容是否被找到;
3 "Text=骞夸笢鐪佺瀛愮鐞嗘€荤珯", #=后为查找的文本内容
4 LAST); #本例子的含义:在Body中查找内容为“骞夸笢鐪佺瀛愮鐞嗘€荤珯”的信息,并将出现次数记录在变量count中 (注意:web_reg_find()需在对应接口请求前定义)
5 
6
7 lr_output_message(lr_eval_string("{count}")); #打印变量count的值

(2)将录制时产生的结束事务(对应接口请求所在的事务)的脚本屏蔽,用以下代码替换:

 1           if(atoi(lr_eval_string("{count}")) > 0)
2 {
3 lr_end_transaction("综合窗口收件",LR_PASS);
4 lr_output_message("综合窗口收件事务成功!");
5 }
6 else
7 {
8 lr_end_transaction("综合窗口收件",LR_FAIL);
9 lr_output_message("综合窗口收件事务失败!");
10 }

#代码含义:将找到的要检查的字符串的个数存到count参数中。 通过判断count的值是否大于0来判断是否找到了所要检查的字符串。

#atoi()函数的作用是将一个ASCII字符串转换为整型

#lr_eval_string()函数作用是取得参数值,将字符串变量中的参数值替换为当前的参数值并将这个字符串返回

对应的文本检查是否找到,可在回放日志中查看打印的日志:若找到文本(count>0),则打印事务成功!(PS:一个事务中可能包含多个请求,选择其中一个代表性的请求添加文本检查,以此来判断事务是否成功即可)

3、验证脚本是否运行成功

前面介绍,完成以上场景后,会在【综合窗口出件】页面产生一条签收结果为“未签收”的办件!

(1)未运行脚本前,查看【综合窗口出件】当前页面有226条办件数据;

(2)运行脚本,再刷新【综合窗口出件】页面,办件数据变为了227条,说明脚本调试成功,正常产生办件数据!

二、运行负载

脚本调试成功后,可选择“工具”-->"创建Controller场景(L)..."打开[创建场景]弹窗,默认“手动场景”,点击“确定”打开场景设计页面;

在场景设计页面,可以看到【创建场景】弹窗中初始化的数据,可双击修改虚拟用户数及负载机;

在“全局计划”中设置启动虚拟用户、持续时间、停止虚拟用户(一般与启动虚拟用户设置一致)后,可点击【场景组】下的运行负载;页签切换到【运行】,如下图:

可以在页签中查看场景状态+运行结果以及一些报表结果。

三、分析结果

负载测试完成后,可点击“结果”-->"分析结果";

打开结果分析页面,会自动载入负载测试时的结果数据;结果分析页面包含报告+图表:

从【概要报告】中可以看出一些我们的测试数据:虚拟用户数、持续时间、事务摘要及平均响应时间等,也可切换头部页签查看具体图表数据,如“平均响应时间”:

通过整合概要报告和相关图表信息,可整理出测试的性能测试报告!!!

LoadRunner11脚本关联+运行负载+分析结果的更多相关文章

  1. LR12.53—第6课:运行负载测试

    第6课:运行负载测试 当你运行一个负载测试,LoadRunner将生成系统上的负载.然后,您可以使用LoadRunner的监控器和图形负载下,观察系统的性能. 在这一课中,你将涵盖以下主题: 一目了然 ...

  2. Camel运行原理分析

    Camel运行原理分析 以一个简单的例子说明一下camel的运行原理,例子本身很简单,目的就是将一个目录下的文件搬运到另一个文件夹,处理器只是将文件(限于文本文件)的内容打印到控制台,首先代码如下: ...

  3. Chrome扩展开发之二——Chrome扩展中脚本的运行机制和通信方式

    目录: 0.Chrome扩展开发(Gmail附件管理助手)系列之〇——概述 1.Chrome扩展开发之一——Chrome扩展的文件结构 2.Chrome扩展开发之二——Chrome扩展中脚本的运行机制 ...

  4. 【转】第6篇:Xilium CefGlue 关于 CLR Object 与 JS 交互类库封装报告:自动注册JS脚本+自动反射方法分析

    作者: 牛A与牛C之间 时间: 2013-11-21 分类: 技术文章 | 暂无评论 | 编辑文章 主页 » 技术文章 » 第6篇:Xilium CefGlue 关于 CLR Object 与 JS ...

  5. 【转】第5篇:Xilium CefGlue 关于 CLR Object 与 JS 交互类库封装报告:自动注册JS脚本+委托回调方法分析

    作者: 牛A与牛C之间 时间: 2013-11-19 分类: 技术文章 | 暂无评论 | 编辑文章 主页 » 技术文章 » 第5篇:Xilium CefGlue 关于 CLR Object 与 JS ...

  6. [转]Loadrunner11之VuGen运行时设置Run-Time Setting

    转自:http://www.51testing.com/html/92/450992-248065.html General 1.Run Logic运行逻辑 脚本如何运行的,每个action和acti ...

  7. Struts2运行流程分析

    一.Struts2运行流程图: 二.运行流程分析: 1. 请求发送给StrutsPrepareAndExecuteFilter 2.StrutsPrepareAndExecuteFilter询问Act ...

  8. linux内存负载分析

    衡量内存负载的一个很重要的指标就是页面置换的频率.当linux系统频繁的对页进行换进换出 的时候,说明物理内存不过,不得不进行频繁的置换页面. 使用vmstat(virtual memory stat ...

  9. Linux服务器Jboss运行环境搭建步骤和开机自动启动脚本编写运行

    Jboss运行环境:Linux+Jdk+Jboss+jsp系统 Jboss软件说明:类似于Tomcat,就是一个跑Jsp系统的环境,他的站点路径跟Tomcat类似,Tomcat存放站点文件到webap ...

随机推荐

  1. Crash的数字表格 (莫比乌斯反演)

    Crash的数字表格 Description 今天的数学课上,Crash小朋友学习了最小公倍数(Least Common Multiple).对于两个正整数a和b,LCM(a, b)表示能同时被a和b ...

  2. 【java】学习路线5-public和private、构造方法、this关键字、封装对象、static关键字、main方法结构解析

    //一个教务管理系统//知识点清单/*public & private 的区别一个是公开的,一个是私有的,作用域不一样,访问的权限不一样咯如果是用private修饰,则调用者只可以是在当前的作 ...

  3. 【读书笔记】C#高级编程 第十章 集合

    (一)概述 数组的大小是固定的.如果元素个数是动态的,就应使用集合类. List<T>是与数组相当的集合类.还有其它类型的集合:队列.栈.链表.字典和集. (二)列表 1.创建列表 调用默 ...

  4. aardio + .NET 快速开发独立 EXE 程序,可防 ILSpy 反编译

    简介 aardio 可以非常方便地调用 .NET( 不需要任何复杂的步骤 ). .NET 在 aardio 中很好用,系统自带 .NET 组件以及各种开源 .NET 组件在 aardio 用户中也很受 ...

  5. C语言输入输出格式符

    C语言输入输出格式符 printf函数(格式输出函数) 1.一般格式 printf(格式控制,输出表列) 例如:printf("i=%d,ch=%c\n",i,ch); 说明: ( ...

  6. HashMap不安全后果及ConcurrentHashMap线程安全原理

    Java集合HashMap不安全后果及ConcurrentHashMap 原理 目录 HashMap JDK7 HashMap链表循环造成死循环 HashMap数据丢失 JDK7 Concurrent ...

  7. [Python]-字典-实践经验总结

    字典是Python中常用的一个数据类型. 与列表有相似的用法,表现在列表的下标和字典的键值可以通过相似的方式读取数据: list_name[0] = value dict_name['key'] = ...

  8. 将java的项目jar包打成镜像

    一.镜像.容器相关知识的概述 Docker 镜像 docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序.库.资源.配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷.环境变量 ...

  9. host主机监控规则

    1.先在 Prometheus 主程序目录下创建rules目录,然后在该目录下创建 host.yml文件,内容如下: 内容很多,可以根据实际情况进行调整. 规则参考网址:https://awesome ...

  10. Prometheus与服务发现

    这种按需的资源使用方式对于监控系统而言就意味着没有了一个固定的监控目标,所有的监控对象(基础设施.应用.服务)都在动态的变化.对于Prometheus这一类基于Pull模式的监控系统,显然也无法继续使 ...