LoadRunner 技巧之 添加事务
事务(Transaction)用于模拟用户的一个相对完整的、有意义的业务操作过程,例如登录、查询、交易、转账,这些都可以作为事务,而一般不会把每次HTTP请求作为一个事务。
拿笔者所测试的邮箱系统为例,对于邮箱来说更基本且用户使用最多的应用就是收发邮件功能,我们可以拿发邮件看作一个事务:打开写信页,填写收件人,主题,内容,点击发信。在做性能需求分析的时候也就是把系统的业务抽离出来,在性能脚本中用事务来描述。
我们在录制脚本的过程中,可以通过录制面板的事务按钮来添加事务。
同样以loadrunner 自带WebTours为例,操作步骤:
1、打WebTours首页
2、点击事务开始按钮,输入“登录”
3、输入用户名密码点击登录按钮
4、点击事务结束按钮,确定。(注意:事务的开始与结束的名称一定要一致)
脚本如下:
Action()
{
web_url("WebTours",
"URL=http://127.0.0.1:2080/WebTours/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t3.inf",
"Mode=HTML",
EXTRARES,
"Url=../favicon.ico",
"Referer=", ENDITEM,
LAST);
lr_start_transaction("登陆"); //事务开始函数
web_submit_data("login.pl",
"Action=http://127.0.0.1:2080/WebTours/login.pl",
"Method=POST",
"Referer=http://127.0.0.1:2080/WebTours/nav.pl?in=home",
"Mode=HTML",
ITEMDATA,
"Name=userSession",
"Value=110409.949777238fzHQcVVpHQVzzzzHDtAHfpcHAHf", ENDITEM,
"Name=username",
"Value=test", ENDITEM,
"Name=password",
"Value=123456", ENDITEM,
"Name=JSFormSubmit",
"Value=on", ENDITEM,
LAST);
web_submit_data("login.pl_2",
"Action=http://127.0.0.1:2080/WebTours/login.pl",
"Method=POST",
"RecContentType=text/html",
"Referer=http://127.0.0.1:2080/WebTours/nav.pl?in=home",
"Snapshot=t4.inf",
"Mode=HTML",
ITEMDATA,
"Name=userSession",
"Value=110409.949777238fzHQcVVpHQVzzzzHDtAHfpcHAHf", ENDITEM,
"Name=username",
"Value=test", ENDITEM,
"Name=password",
"Value=123456", ENDITEM,
"Name=JSFormSubmit",
"Value=on", ENDITEM,
"Name=login.x",
"Value=51", ENDITEM,
"Name=login.y",
"Value=12", ENDITEM,
LAST);
lr_end_transaction("登陆",LR_AUTO); //事务结束函数
return 0;
}
查看运行结果:
Action.c(15): Notify: Transaction "登陆" started.
Action.c(17): web_submit_data("login.pl") was successful, 795 body
bytes, 225 header bytes [MsgId:
MMSG-26386]
Action.c(29): web_submit_data("login.pl_2") was successful, 795 body
bytes, 225 header bytes [MsgId:
MMSG-26386]
Action.c(45): Notify: Transaction "登陆" ended with "Pass" status
(Duration: 0.5704 Wasted Time: 0.0152).
通过运行结果我们可以很清晰地看到本次事务是pass的,整个脚本的持续时间和事务的消耗时间等。
插入事务的方法:
插入事务操作可以在录制脚本过程中,也可以在录制结束后进行。可以在脚本中找到需要添加事务的部分,直接插入:
-------------------------------------------------
lr_start_transaction("事务");
.....
lr_end_transaction("事务",LR_AUTO);
------------------------------------------------
注意:1、开始与结束函数必须成对出现
2、事务的名称必须一样。
当然,我们也可以将鼠标定位到要插入事务的位置,通过菜单栏来插入事务(insert--->start transaction/end transaction)
---------------------------------------------------------------------------
到些,loadrunner
脚本的一些基本设置已经介绍完了。你疑问,是不是少了很重要的概念,参数化。
LoadRunner参数化详解
之间有做过介绍,这里也不再重复。
LoadRunner 技巧之 添加事务的更多相关文章
- LoadRunner使用技巧之添加事务
事务(Transaction)用于模拟用户的一个相对完整的.有意义的业务操作过程,例如登录.查询.交易.转账,这些都可以作为事务,而一般不会把每次HTTP请求作为一个事务. 以刚刚过去的双11淘宝为例 ...
- LoadRunner 技巧之 思考时间设置
LoadRunner 技巧之 思考时间设置 用户访问某个网站或软件,一般不会不停地做个各种操作,例如一次查询,用户需要时间查看查询的结果是否是自己想要的.例如一次订单提交,用户需要时间核对自己填写的信 ...
- LoadRunner 技巧之 集合点设置
LoadRunner 技巧之 集合点设置 Loadrunner 技巧已经整理4篇了,你个一定疑问,这些知识点,网上随处可见.确实,由于长时间没有使用这个工具,造成我的一些概念开始在大脑中模糊,我只是用 ...
- LoadRunner 技巧之 脚本设计
LoadRunner 技巧之 脚本设计 在做性能测试时,我们可能会遇到各种不同的业务需求与用户行为,在一个系统或网站中,每个用户的操作都不完全一样.我们如何来模拟这此用户的行为?经验与能力有限,我这里 ...
- LoadRunner 技巧之 检查点
LoadRunner 技巧之 检查点 判断脚本是否执行成功是根据服务器返回的状态来确定的,如果服务器返回的HTTP状态为 200 OK ,那么VuGen 就认为脚本正确地运行了,并且是运行通过的.在绝 ...
- springmvc 用注解方式添加事务不生效解决方法
springmvc 事务注册有很多种方法,在此我只mark 用注解方式添加transaction不生效的解决办法. springmvc 注解方法添加事务步骤: 1.在 spring的 root-con ...
- 软件测试之loadrunner学习笔记-01事务
loadrunner学习笔记-01事务<转载至网络> 事务又称为Transaction,事务是一个点为了衡量某个action的性能,需要在开始和结束位置插入一个范围,定义这样一个事务. 作 ...
- LoadRunner 思考时间与事务响应时间的区别与关系
LoadRunner 思考时间与事务响应时间的区别与关系 思考时间lr_think_time 就是一个事务要开始时思考的时间;比如 你要点击一个 登录按钮 我们都要点击这个按钮要先思考下 就是人为 ...
- sql server小技巧-自动添加时间与主键自增长
在敲机房收费系统的时候,遇到添加时间的时候总是通过vb端调用当前时间再添到sql server中,期间还有时因为添加时间格式的不统一导致一些小问题,现在才知道原来是自己孤陋寡闻,sql server ...
随机推荐
- QT textbroswer textedite Qlist的常用的操作函数
Textbrowser: 一.添加函数 1.insertPlainText():这个函数特别好用,括号里面的参数是QString,可以用QString(“%1%2”).arg(QString变量).a ...
- Python 实用爬虫-04-使用 BeautifulSoup 去水印下载 CSDN 博客图片
Python 实用爬虫-04-使用 BeautifulSoup 去水印下载 CSDN 博客图片 其实没太大用,就是方便一些,因为现在各个平台之间的图片都不能共享,比如说在 CSDN 不能用简书的图片, ...
- mysql每日数据统计
select a.click_date from ( SELECT curdate() as click_date union all day) as click_date union all day ...
- VScode VUE+PYTHON习惯用的编辑器
本人从事运维开发工作,经常要开发一些web系统工具,这就需要用到前后端开发.vscode是我用得最舒服的一种编辑器,前端后端都习惯在上面写,这里记录一些配置. 一,插件安装 目前我最主要用的是: ...
- noi.ac NA536 【打地鼠】
又一道可写的小清新思维题 其实想到倒着做了,然而还是因为T1害人不浅(我太菜了),所以并没有写 考虑两个局面不同,显然至少打了一次地鼠,基于操作的颜色覆盖性质,我们可以考虑把操作倒着做,对于一个X点, ...
- thinkPHP5.0.22初体验---路由,url访问
“豪情卷起万重浪,吼吼哈哈-”一学thinkPHP才知道这是个国内研究的php web开发框架,瞬间自豪感如电流一般传遍全身 这就不多不说说 一.控制器 所谓MVC编程,无外乎函数(sometimes ...
- LightOJ-1104-birthday Paradox(概率)
链接: https://vjudge.net/problem/LightOJ-1104 题意: Sometimes some mathematical results are hard to beli ...
- 对JavaScript 引擎基础:Shapes 和 Inline Caches
全文有5个部分组成 1.JavaScript 引擎工作流程:介绍 JavaScript 引擎的处理流水线,这一部分会涉及到解释器/编译器的内容,且会分点介绍不同引擎间的差别与共同点: 2.JavaSc ...
- wx小程序知识点(二)
二.WXML和HTML的异同.WXSS和CSS的异同 (1)WXML和HTML 相同点:都是用来描述页面结构的,由标签.属性组成 不同点:标签名不一样,小程序标签名更少: 小程序多了 wx:if 这样 ...
- [深度学习] pytorch学习笔记(2)(梯度、梯度下降、凸函数、鞍点、激活函数、Loss函数、交叉熵、Mnist分类实现、GPU)
一.梯度 导数是对某个自变量求导,得到一个标量. 偏微分是在多元函数中对某一个自变量求偏导(将其他自变量看成常数). 梯度指对所有自变量分别求偏导,然后组合成一个向量,所以梯度是向量,有方向和大小. ...