事务(Transaction)用于模拟用户的一个相对完整的、有意义的业务操作过程,例如登录、查询、交易、转账,这些都可以作为事务,而一般不会把每次HTTP请求作为一个事务。

以刚刚过去的双11淘宝为例,对于淘宝来说更基本且用户使用最多的应用就是购物下单功能,我们可以拿购物下单看作一个事务:打开淘宝网页,搜索商品,下单。在做性能需求分析的时候也就是把系统的业务抽离出来,在性能脚本中用事务来描述。

我们在录制脚本的过程中,可以通过录制面板的事务按钮来添加事务:

现在以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使用技巧之添加事务的更多相关文章

  1. LoadRunner 技巧之 添加事务

    事务(Transaction)用于模拟用户的一个相对完整的.有意义的业务操作过程,例如登录.查询.交易.转账,这些都可以作为事务,而一般不会把每次HTTP请求作为一个事务. 拿笔者所测试的邮箱系统为例 ...

  2. LoadRunner小技巧集锦

    preftest 性能测试工作室,专注于性能测试技术研究(www.AutomationQA.com) LoadRunner小技巧集锦 1.录制脚本中包含中文,出现乱码怎么办? 把录制选项中的Suppo ...

  3. 品味性能之道<八>:Loadrunner关联技巧与字符处理

    一.概述       Loadrunner作为HP出品的性能测试工具,拥有太多奇妙魔法甜点供予性能测试人员享用,其中吃起来比较有嚼劲的那就是关联了.当然在关联之后我们还需要一些简单的字符处理,用以生成 ...

  4. LoadRunner脚本编写之三(事务函数)

    LoadRunner脚本编写之三(事务函数) 关于脚本的这块,前两篇都在讲C语言,其实,要整理点实用的东西挺难,在应用中多对录制的脚本分析,但对于新手学脚本确实无从下手. 先贴一个脚本: 完整代码: ...

  5. springmvc 用注解方式添加事务不生效解决方法

    springmvc 事务注册有很多种方法,在此我只mark 用注解方式添加transaction不生效的解决办法. springmvc 注解方法添加事务步骤: 1.在 spring的 root-con ...

  6. LoadRunner测试场景中添加负载生成器

    如何在LoadRunner测试场景中添加负载生成器 本文对如何在LoadRunner的测试场景中添加负载生成器,如何使用负载生成器的方法,总结形成操作指导手册,以指导测试人员指导开展相关工作. 1.什 ...

  7. sql server小技巧-自动添加时间与主键自增长

    在敲机房收费系统的时候,遇到添加时间的时候总是通过vb端调用当前时间再添到sql server中,期间还有时因为添加时间格式的不统一导致一些小问题,现在才知道原来是自己孤陋寡闻,sql server ...

  8. Inno Setup技巧[界面]添加和自定义左下角标签

    原文 http://blog.sina.com.cn/s/blog_5e3cc2f30100cc49.html 本文介绍添加和自定义“左下角标签”的方法. 界面预览: Setup技巧[界面]添加和自定 ...

  9. 代码中添加事务控制 VS(数据库存储过程+事务) 保证数据的完整性与一致性

    做人事档案的系统考虑到数据的安全性与一致性,毕竟是要对外上线.真正投入使用的项目,数据库的可靠性与安全性上我们开发人员要考虑的就很多了,记得做机房收费系统时注册新卡是自己为了简单,写成了一个存储过程( ...

随机推荐

  1. 记录一次fat32格式U盘不识别问题

    升级了4.1.15内核发现U盘不识别了,考虑到内核编译前的配置是通过localmodconfig完成的,所以大略是缺模块导致. 于是开始查配置,USB控制器,EHCI,mass storeage de ...

  2. SharePoint 2013 开发——其他社交功能

    博客地址:http://blog.csdn.net/FoxDave 上一篇讲了如何获取用户配置文件的相关属性,它属于SharePoint 2013社交功能的一个小的构成部分.社交功能是SharePoi ...

  3. Jdk内置性能测试工具的介绍

    (一) JConsole JConsole使用JVM的可扩展性Java管理扩展(JMX)工具来提供关于运行于Java平台的应用程序的性能和资源消耗的信息. 在J2SE 5.0软件中,你需要启动使用-D ...

  4. reverse-daily(1)-audio_visual_receiver_code

    本人第一篇随笔,就以一篇CTF逆向分析的文章开始吧! 链接:http://pan.baidu.com/s/1eS6xFIa 密码:u14d 因为re的分析比较琐碎,所以主要就挑一些重点东西来说. 据说 ...

  5. vim替换指令备忘

    1.  替换当前行中的内容: :s/from/to/    (s即substitude) :s/from/to/     :  将当前行中的第一个from,替换成to.如果当前行含有多个        ...

  6. 第一篇T语言实例开发(版本5.3),带错误检测的加减乘除运算器

    带错误检测的加减乘除运算器 表达式 TC综合开发工具里的表达式大体分为:计算表达式.条件表达式 计算表达式: 它一般是用在赋值过程中,或者是和条件表达式混合使用这样的表达式里只有数字运算符(如:+.- ...

  7. oracle数据本机自动备份

    1.创建三个文件 exp.list  内容:oracle数据库的用户名和密码 name pwd exp.log   主要用于存储在自动备份数据库时的日志信息 exp.sh #!/bin/sh #找到数 ...

  8. 论文笔记之:Conditional Generative Adversarial Nets

    Conditional Generative Adversarial Nets arXiv 2014   本文是 GANs 的拓展,在产生 和 判别时,考虑到额外的条件 y,以进行更加"激烈 ...

  9. JVM byte code

    http://blog.jamesdbloom.com/JVMInternals.html#constant_pool http://grepcode.com/file/repository.grep ...

  10. Ecs下的两台mysql做主从设置

    一.主库配置master 1.用户root账户进入到mysql mysql -uroot -p 2.创建用于主从同步的账户,并赋予权限,由于这个账户只是作为同步数据用,所以分配权限不要过大,我这里只赋 ...