精华内容
下载资源
问答
  • Jmeter脚本增强-事务

    2019-07-06 17:14:43
    在Jmeter中对于事务的处理一般分为两种情况:  一个业务只有一个请求:是不需要额外处理,只需要保证请求的名称的唯一性即可。  一个业务包含多个请求:则需要通过逻辑控制器--事务控制器组件 将多个请求放在同一...

    在Jmeter中对于事务的处理一般分为两种情况:
      一个业务只有一个请求:是不需要额外处理,只需要保证请求的名称的唯一性即可。
      一个业务包含多个请求:则需要通过逻辑控制器--事务控制器组件 将多个请求放在同一个事务控制器中,这样会把此事务下的所有请求,都当作一个请求来计算。
    PS:勾选Generate Parent Sample,表示将事务控制器作为父级取样器。

           例如:http://localhost/phpwind/index.php网站,提交发帖是一个操作,但是涉及两个接口(提交帖子和自动跳转至读帖页面),但是我们把他设为一个事务,那么就会计算这个事务时间,如下截图

          操作步骤:在提交发帖请求中右键>插入上级>逻辑控制器>事务控制器,勾选Generate Parent Sample

     

    展开全文
  • 增加事务 当我们关心的不是一个请求的性能情况,而是一组请求的性能情况时,我们就可以使用事务控制器, 例如,我们测试打开一个页面的性能时,我么不仅关心主页面的返回,也关心页面渲染所需要的数据(例如:css、...

    增加事务
    当我们关心的不是一个请求的性能情况,而是一组请求的性能情况时,我们就可以使用事务控制器,
    例如,我们测试打开一个页面的性能时,我么不仅关心主页面的返回,也关心页面渲染所需要的数据(例如:css、js、图片等)的返回。尤其时当页面的图片、文件多,或者比较大时,它们会消耗较多的系统、网络资源,更是不可忽视这些资源的请求时间,必须要考虑这些资源的性能消耗。如何将这些请求响应时间累加起来呢?Jmeter提供了事务控制器。
    事务控制器会生产一个额外的取样器,用来统计该控制器子结点的所有时间。
    在这里插入图片描述
    事务控制器会生成一个额外的取样器来测量其下测试元素的总体时间。值得注意的是,生成的事务取样器的测量的时间包括其下取样器器以及其他的一切时间。由于时钟频率的问题,这个时间可能略大于单个取样器的时间之和。时钟开始时间介于控制器记录开始时间与第一个取样器开始之间,时钟结束时间亦然。
    Generate parent sample:选中这个选项,则在聚合报告中只显示事务控制器的时间,而不显示取样器的时间,
    Include duration of timer and pre-post processors in generated sample:选中这一项会将计时器、前置处理器、后置处理器等时间计算在内,否则只统计取样器的时间。
    当我们关心的是一组请求的性能,记得添加事务控制器。

    欢迎关注我的网易云课程
    https://study.163.com/courses-search?keyword=软件测试123#/?ot=5

    展开全文
  • 1.6脚本增强技术之事务 事务,叫transaction,是用来业务操作的响应时间,在LoadRunner中,需要做的操作就是在请求的出发前添加一个事务开始的计数器,在请求结束的地方添加一个事务结束的计数器,Vugen会自动计算...

    1.6脚本增强技术之事务
    事务,叫transaction,是用来业务操作的响应时间,在LoadRunner中,需要做的操作就是在请求的出发前添加一个事务开始的计数器,在请求结束的地方添加一个事务结束的计数器,Vugen会自动计算函数间的时间差。一般是由两个时间函数实现的,
    lr_start_transaction()、lr_end_transaction()
    可以通过下图的两个图标添加,也可以右键insert->start transaction和end transaction进行添加
    在这里插入图片描述

    添加完事务函数执行脚本后,在日志中可以看到以下信息:
    在这里插入图片描述

    事务的结束的说明中包含了请求所花费的时间为Duration和Wasted time。
    事务的操作很简单,我们来看一下需要注意的事项:
    1、 事务函数仅仅是两个计时器函数,对脚本本身的业务功能并不会造成影响。
    2、 事务函数要保证成对出现(执行),在LR中,事务函数是通过名称建立对应关系的。一定要保证开始和结束的函数中,事务名称的一致性。
    3、 事务函数的添加位置,取决于测试人员自身的需求
    4、 事务函数的时间构成:
    事务时间=事务结束的时间-事务开始的时间
    预期:事务时间=响应时间
    但是事实上,事务时间并不等于响应时间,一个事务时间通常由三个部分组成:
    事务时间=响应时间+wasted time +think time
    在LR中,事务函数本身是不会去统计响应时间,但是会识别出wasted time和think time。
    Wasted time :浪费时间,是指LR的脚本本身代码层面编译执行所消耗的时间,不包含代码执行之后的效果所引起的时间。一般来说,该时间越差,则说明负载机的性能越差。(在Controller,LR会自动将wasted time 从事务时间中剔除,也就是说在Controller中获得的事务时间=事务时间-wasted time=响应时间+think time)
    Think time :思考时间,是指LR的思考时间函数实际执行所等待的时间。当测试结果从Controller导入到Analysis之后,默认情况下,LR是将思考时间从事务时间中剔除的。也就是说,在Analysis中所看到的事务响应时间=事务时间-wasted time – think time。
    在脚本中,我们要尽可能的避免在事务函数中添加一些和请求无关的代码。
    响应时间:包括网络时间、服务器处理时间、网络延迟。
    5、 事务的结束状态:
    LR_PASS:表示事务的结束状态为pass。
    LR_FAIL:示事务的结束状态为fail。
    LR_STOP:表示事务的结束状态为stop。
    LR_AUTO:表示自动,LR会根据事务函数中所有有结束状态的函数(有结束状态是指有返回的函数)的结束状态来自动判断事务的结束状态。
    如果所有的函数结束状态为pass,则事务为pass。
    如果有任意函数的结束状态为faile,则事务为fail。
    如果有任意函数的结束状态为stop,则事务为stop。
    一般来说,根据函数是否和服务器进行通信,可以将函数分为两类:
    ·请求类函数:和服务器进行通信的。
    ·功能型函数:不和服务器通信,是用来完成一些数据、配置工作的
    对于功能型函数来说,函数的结束状态取决于函数的功能是否成功。
    对于请求类函数来说,是根据服务器响应的状态码(响应代码)来进行判断的。
    一般来说,1xx、2xx、3xx表示成功;4xx、5xx表示失败。
    这个自动判断仅仅是完成了通信逻辑层面的判断,没有对业务进行判断。
    而为了保证我们所获取到的事务时间的有效性,我们必须对请求的业务是否成功进行更进一步的判断,这样就需要用到检查点技术。

    展开全文
  • 这篇博客主要说一下用于LoadRunner脚本逻辑判断增强常用的几个函数和事务的封装。

    LoadRunner学习笔记5-LoadRunner VuGen脚本增强之逻辑判断增强与事务

    这篇博客主要说一下用于LoadRunner脚本逻辑判断增强常用的几个函数和事务的封装。

    一、逻辑判断增强

    1)先介绍以下几个函数:

    1.atoi函数

    函数用法:

    int atoi(要转换成整型的字符);//把指定的字符转换成整型

    2.lr_eval_string函数

    函数用法:

    lr_eval_string("{当前想要获取的参数名}");//获取指定的当前参数的值

    3.strcmp函数

    函数用法:

    strcmp(字符串1,字符串2);//比较字符串1和字符串2的大小

    4.strcpy函数

    函数用法:

    strcpy(目标字符串,原字符串);//将原字符串拼接到目标字符串后

    2)增强脚本思路与代码

    针对之前录制的登录脚本,脚本编写的思路是:登陆成功后检查用户名并记录次数,使用lr_eval_string函数获取用户名出现的次数,通过atoi函数进行转换之后与0比较,只要不等于0,就认为成功。关键代码如下:

        //文本检查点,检查用户名
        web_reg_find("Text=besttest","SaveCount=besttest_count",LAST);
        //提交登录请求
        web_submit_data("login.pl", 
            "Action=http://127.0.0.1:1080/WebTours/login.pl", 
            "Method=POST", 
            "RecContentType=text/html", 
            "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home", 
            "Snapshot=t5.inf", 
            "Mode=HTML", 
            ITEMDATA, 
            "Name=userSession", "Value={userSession}", ENDITEM, 
            "Name=username", "Value=besttest", ENDITEM, 
            "Name=password", "Value=besttest", ENDITEM, 
            "Name=JSFormSubmit", "Value=on", ENDITEM, 
            "Name=login.x", "Value=33", ENDITEM, 
            "Name=login.y", "Value=9", ENDITEM, 
            LAST);
        //增加判断,如果检查到用户名出现的次数大于0,则登录成功,否则失败
        if(atoi(lr_eval_string("{besttest_count}"))!=0)
            lr_output_message("登录成功了");
        else
            lr_output_message("登录失败了");

    二、事务实战

    事务可以理解为一个或多个操作的集合。事物的插入可以在录制过程中进行,也可以在录制完成后的脚本中自行插入。不是所有操作都需要封装成事务,只对关心的操作进行事务封装即可。

    插入事务有两种方法:

    1)手工写代码。提示:不要忘了事务有开始就需要有结束配对出现,代码编写方法如下:

    lr_start_transaction(“事务名称”);
    lr_end_transaction("事务名称",LR_AUTO);

    2)利用插入功能,如下图所示。注意Start Transaction 和 End Transaction中事务的名称要一致。

    这里写图片描述

    提示:为了提高事务统计时的准确性,一般情况下,事务要尽量精简,里面不要包含检查点、关联、逻辑判断、思考时间等。

    1.自动事务

    自动事务函数的结果交由LoadRunner来判断,关键代码如下所示:

        //增加了事务、开头
        lr_start_transaction("login");
        //提交登录请求
        web_submit_data("login.pl", 
            "Action=http://127.0.0.1:1080/WebTours/login.pl", 
            "Method=POST", 
            "RecContentType=text/html", 
            "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home", 
            "Snapshot=t5.inf", 
            "Mode=HTML", 
            ITEMDATA, 
            "Name=userSession", "Value={userSession}", ENDITEM, 
            "Name=username", "Value=besttest", ENDITEM, 
            "Name=password", "Value=besttest", ENDITEM, 
            "Name=JSFormSubmit", "Value=on", ENDITEM, 
            "Name=login.x", "Value=33", ENDITEM, 
            "Name=login.y", "Value=9", ENDITEM, 
            LAST);
        lr_end_transaction("login",LR_AUTO);//事务结尾,要与开头对应

    2.手动事务

    和手动事务相反,手动事务的结果可以自己指定。关键代码如下所示:

        //文本检查点,检查用户名
        web_reg_find("Text=besttest","SaveCount=besttest_count",LAST);
        //增加了事务
        lr_start_transaction("login");
        //提交登录请求
        web_submit_data("login.pl", 
            "Action=http://127.0.0.1:1080/WebTours/login.pl", 
            "Method=POST", 
            "RecContentType=text/html", 
            "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home", 
            "Snapshot=t5.inf", 
            "Mode=HTML", 
            ITEMDATA, 
            "Name=userSession", "Value={userSession}", ENDITEM, 
            "Name=username", "Value=besttest", ENDITEM, 
            "Name=password", "Value=besttest", ENDITEM, 
            "Name=JSFormSubmit", "Value=on", ENDITEM, 
            "Name=login.x", "Value=33", ENDITEM, 
            "Name=login.y", "Value=9", ENDITEM, 
            LAST);
        //增加判断,如果检查到用户名出现的次数大于0,则事务结果成功,否则失败
        if(atoi(lr_eval_string("{besttest_count}"))!=0)
            lr_end_transaction("login",LR_PASS);
        else
            lr_end_transaction("login",LR_FAIL);
    展开全文
  • ·要度量的操作只有一个请求:脚本不需要进行任何额外的处理,修改一下请求名称即可。 ·要度量的操作有多个请求:则需要添加逻辑处理器—事务处理器 Generate parent sample:不会计算浪费时间 Include duration ...
  • jmeter脚本增强

    2019-10-19 18:19:09
    ·性能测试的脚本增强技术:参数化、关联、事务、检查点、思考时间和集合点。 ·参数化:在Jmeter中,实现参数化的方式很多。 本质上来说,参数化的实现方式有两种: ·文件方式:一般建议通过配置元件--CSV ...
  • 通过划分一批请求组合成一个事务,可以跟踪分析这个事务请求所花费的总体时间了。 事务可以通过简单的指定开始的request和结束的request来设定。 右键请求打开菜单,点击【插入事务】 点击运行一下,我们...
  • 脚本增强与调试   一般来说,使用LR的Vugen录制的脚本并不能直接用于测试,需要对脚本进行各方面的增强,主要包括添加注释、关联、检查点、事务、参数化、日志输出等。下面结合刚完成的一个web项目性能测试来对LR...
  • 掌握LR-脚本增强的基本操作 掌握脚本回放的设置及故障,并解决。 掌握事务的定义,标记方法。 掌握模拟多用户的参数化操作。 知识准备: 脚本播放,事务,参数化。 实训步骤: ** 一、脚本播放 1、 录制脚本。 1) ...
  • 脚本增强的目的和方式 ps:检查点也叫断言。 事务:局部操作的汇总,是tps的基础。 集合点:虚拟用户集合在一起,实现并发操作。 参数化和检查点: 参数化就是脚本中的常量用变量去代替。 runtime settings运行时...
  • 8 Jmeter脚本增强

    2018-10-14 10:16:21
    Jmeter脚本增强 测试计划录制完成后,我们会整理和增强脚本: 包括增加监听器、定时器、集合点、增加断言、参数化、增加关联、增加事务 增加监听器——可以帮助我们查看请求响应情况以及性能指标情况 增加...
  • 3.4.5.Tsung的脚本增强配置 3.4.5.1 Tsung事务的配置   如官方文档中的示例,transaction标签定义事务的名称。 <sessions>  <session name="http-example" probability=&...
  • 1.事务  .就是一系列操作的集合  .插入事务方便我们今后的分析 2.参数化  .LR的参数化功能是为了更加真实的模拟实际用户操作而设置的  .我们对座位的位置进行参数化 3.如何验证网页的内容(检查点)  ....
  • 事务(1)事务就是一系列操作的集合。(2)插入事务方便今后的分析。参数化(1)lr的参数化功能是为了更加真实的模拟实际用户操作而设置的。如何验证网页的内容(检查点)(1)运行测试时,经常要验证在返回的页面上...
  • --事务 --参数化 --如何验证网页的内容(检查点) --如何产生调试信息(输出函数) 1、事务 事务就是一系列操作的集合 插入事务方便我们今后的分析 2、参数化 LR的参数化功能是为了更加真实的模拟实际用户...
  • 一、事务: 二、参数化: 有两种方式进行参数化,第一种是在参数上面右键,选择“Replace with a Parameter”如下图所示: 第一个是参数名,第二个参数类型,第三个是初始值,点击右...
  • VU脚本优化

    2018-04-23 11:40:00
    目录:  1.使用动态链接技术 ...2.VU脚本事务  事务:服务器对某个动作处理的响应时间  组成:开始事务函数和结束事务函数  录制过程中插入事务的优点:  ①保证不会遗漏需要插入的事务点...
  • 本次笔记主要记录LoadRunner脚本设计、场景设计和结果分析 1、 脚本设计 ... 1.1 脚本增强事务、集合点、参数化、关联、检查点 检查点:web_reg_find 、web_find(需要打勾)区别 其中web_r...
  • 总括: VUG脚本录制——webtours案例:登录、订票、...2)脚本增强之——关联函数:登录、选择票务、支付判断订票是否成功,3处分别写关联函数,调试运行脚本,成功。(注意:动态值从response中获取确认无误);...
  • Lua脚本介绍 ...redis中嵌套调用实现类类似事务的功能 web容器中应用处理一些过滤 缓存等等的逻辑, 如Nginx 开源框架OpenResty的应用,对Nginx实现了增强 Lua脚本安装 安装环境 Linux 安装依赖库 yum inst
  •  为什么要完善增强脚本呢?  首先,为了衡量服务器的性能,需要定义事务(Transaction)。例如在脚本中有一个数据查询操作,为了衡量服务器执行查询操作的性能,可以把这个操作定义为一个事务。这样在运行测试...
  • 3)增强,在脚本中设置注释,添加事务,参数化,时间间隔… 4)Prepare for Load 1)录制脚本之前需要确定要录制的业务逻辑,初始化工作 Init,action,end说明 init录制的一般是业务流程开始之前的初始化工作...

空空如也

空空如也

1 2 3 4 5
收藏数 100
精华内容 40
关键字:

脚本增强事务