事务(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 技巧之 添加事务的更多相关文章

  1. LoadRunner使用技巧之添加事务

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

  2. LoadRunner 技巧之 思考时间设置

    LoadRunner 技巧之 思考时间设置 用户访问某个网站或软件,一般不会不停地做个各种操作,例如一次查询,用户需要时间查看查询的结果是否是自己想要的.例如一次订单提交,用户需要时间核对自己填写的信 ...

  3. LoadRunner 技巧之 集合点设置

    LoadRunner 技巧之 集合点设置 Loadrunner 技巧已经整理4篇了,你个一定疑问,这些知识点,网上随处可见.确实,由于长时间没有使用这个工具,造成我的一些概念开始在大脑中模糊,我只是用 ...

  4. LoadRunner 技巧之 脚本设计

    LoadRunner 技巧之 脚本设计 在做性能测试时,我们可能会遇到各种不同的业务需求与用户行为,在一个系统或网站中,每个用户的操作都不完全一样.我们如何来模拟这此用户的行为?经验与能力有限,我这里 ...

  5. LoadRunner 技巧之 检查点

    LoadRunner 技巧之 检查点 判断脚本是否执行成功是根据服务器返回的状态来确定的,如果服务器返回的HTTP状态为 200 OK ,那么VuGen 就认为脚本正确地运行了,并且是运行通过的.在绝 ...

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

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

  7. 软件测试之loadrunner学习笔记-01事务

    loadrunner学习笔记-01事务<转载至网络> 事务又称为Transaction,事务是一个点为了衡量某个action的性能,需要在开始和结束位置插入一个范围,定义这样一个事务. 作 ...

  8. LoadRunner 思考时间与事务响应时间的区别与关系

    LoadRunner 思考时间与事务响应时间的区别与关系   思考时间lr_think_time 就是一个事务要开始时思考的时间;比如 你要点击一个 登录按钮 我们都要点击这个按钮要先思考下 就是人为 ...

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

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

随机推荐

  1. PAT Basic 1002 写出这个数 (20 分)

    读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 1. 输出格式: 在一行内输出 n 的 ...

  2. struts2与SpringMVC区别

    1.springmvc基于方法开发的,struts2基于类开发的. 2.单例和多例的区别:springmvc在映射的时候,通过形参来接收参数的,是将url和controller方法映射,映射成功后,s ...

  3. 958. Check Completeness of a Binary Tree

    题目来源 题目来源 C++代码实现 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode ...

  4. 模拟客户端向服务器发起请求(从Fiddler抓包到Jmeter接口测试)

    一.安装Fiddler 二.配置 在菜单栏Tools->Fiddler Options->Connections,勾选Allow remote computers to connect,默 ...

  5. k8spod探测

    一.pod存活性探测 pod spec为容器列表中的相应容器定义其专用的探针即可启用存活性探测,目前,k8s的容器支持存活性探测的方法包含:ExecAction.TCPSocketActon和HTTP ...

  6. Spring Boot干货系列:(十二)Spring Boot使用单元测试(转)

    前言这次来介绍下Spring Boot中对单元测试的整合使用,本篇会通过以下4点来介绍,基本满足日常需求 Service层单元测试 Controller层单元测试 新断言assertThat使用 单元 ...

  7. 关于system.timer的使用

    private System.Timers.Timer _timer = null; if (_timer == null) { _timer = new System.Timers.Timer(); ...

  8. Golang闭包和匿名函数

    1. 匿名函数 匿名函数就是没有函数名的函数,如下所示. func test() int { max := func(a, b int) int { if a > b { return a } ...

  9. zabbix监控win服务器

    https://jingyan.baidu.com/article/fcb5aff76486f2edaa4a712a.html 卸载win上的zabbix: cmd /c "C:\zabbi ...

  10. static后期静态绑定

    先说一下__CLASS__,get_class() ,  get_called_class() 区别: __CLASS__获取当前的类名, get_class()与上面一样,都是获取当前的类名, ge ...