一.事物,思考时间,检查点,集合点

1.事务

  lr里面的事物是lr运行脚本的基础.lr里面 要测试的三个维度都以事物为单位,所以一定要有事物.事务的概念贯穿loadrunner的使用,比如我们说的响应时间其实是事务的的相应时间;tps,每秒中处理的事务数.当脚本跑完之后没有响应时间,导致此种情况之一就是没定义事务.

  而在录脚本时:

    1.在录脚本是要添加事务

    2.添加事务是为了准确的测出相应请求的响应时间,尽量保证每一个事务中只有一个请求.但当录制脚本的时候,在录制HTML脚本时,由于一个HTML下可以有多个url,此时为了保证请求的"干净",可以将mode改为http.http就会只发送这个请求,而html会下载上下文.

  

    3.做脚本时每个事物就放一个请求,这样响应时间就是这个事物的时间,每个事物只包含一个请求

    4,思考时间,检查点,关联函数都放在事务外面

    

ps:做测试的时候action里面最好只有一个请求.因为如果有多个请求,运行同样的时间下,脚本比较"干净"的脚本跑的tps会大一点,这样就影响了tps; 当跑并发的时候,应用服务器里面只处理一个请求和处理多个请求,一定是处理一个请求的更快一点.也就是说,脚本的"干净性"会影响tps和响应时间.

2.检查点

检查点实际是从请求的返回结果里面判断某一个字符串是否有返回,从而判断脚本的请求是否正确

方法:

a.抓包看请求的返回值,从请求的返回值里面.从返回值里面找出能标识返回值的唯一字段

b.在lr中打开脚本的tree视图--HTTP View---从response中找到上一步在返回值里面找出的标识返回值的唯一字段---选中这个字段后右键---选择"Add Text Check Step"

在脚本中显示如下:

其中,以web_reg开头,所以该函数是预注册函数要放在要检查请求的前面,并且为了准确的测出事务的响应时间要放在事务的外面.

PS:1.当在做性能的压测的时候一定要保证请求的成功率=正确的请求/总请求.只有当加检查点后才能保证请求的成功率.

  2.检查点会影响性能,当要做结果的检查但又想不影响性能的话,可以做数据库的写操作(update,insert,delete)

3.集合点

集合点在并发的时候才会生效;集合点是为了保障所有的并发都一起运行集合点下面的请求,加大瞬时并发的概率.

集合点放置的位置也要放在事务之前

集合点的添加:Insert -- Rendezvous

4.思考时间

等待时间,相当于sleep

添加思考时间方法:

1.在脚本中添加函数lr_think_time(5),添加时添加到事务的外面.

2.设置run time setting:

思考时间作用:控制单位时间内像服务器发起请求的数量,以达到控制服务器压力的目的,从而影响事务的响应时间及tps.

eg:

注册   tps=1s    rt=1s   (说明服务器1s处理一个请求)

1个并发   rt=1s

2个vu     vu1         rt=1s                  2s(vu2的1s+自己处理的1s)

     vu2        rt=2s(处理时间1s+等待vu1的1s)

5.tps(每秒钟处理事务数)

理论上说,响应时间越大,tps越大;响应时间越小,tps越大.因为响应时间越小,处理的事务越多. 当服务器到达极限值以后,响应时间会增加,但tps不会变了

tps与响应时间的关系

tps与并发用户的关系:

随着并发用户量的不断增大,tps不断增大

二.手写接口

  下面介绍请求接口常用的几个函数:

1.web_custom_request

这个函数用于接口的get/post请求.get请求参数与url拼接使用?,参数与参数之间连接使用&,

如http://127.0.0.1/bbs/upload/member.phpmod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1

post请求,在body里面添加请求参数.

  当参数为json时,使用该函数更简洁方便.

注:尽量把Mode改为HTTL,这样在tree视图中会过滤掉css等一些请求.Mode默认为HTML

2.web_url

  这个函数用于接口的get请求,只能做get请求

3.web_submit_data

使用web_submit_data做接口时,会自己往接口url后面拼问号.故,不论是get还是post请求,都要将参数写到data部分.但使用这个函数通常都用来做post请求.

  

性能学习笔记之四--事务,思考时间,检查点,集合点和手写lr接口的更多相关文章

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

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

  2. Oracle学习笔记之四sp1,Oracle 11g的常用函数

    从Oracle学习笔记之四,SQL语言入门中摘出来的,独立成一章节 3.1 字符类函数 ASCII(c)和CHR(i)    分别用于返回一个字符的ASCII码和返回给定ASCII值所对应的字符. C ...

  3. WCF学习笔记之事务编程

    WCF学习笔记之事务编程 一:WCF事务设置 事务提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元: WCF通过System.ServiceModel.TransactionFlowA ...

  4. springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定

    springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定 标签: springmvc springmvc学习笔记13-springmvc注解开发之集合类型參数绑定 数组绑定 需 ...

  5. 用MXnet实战深度学习之一:安装GPU版mxnet并跑一个MNIST手写数字识别

    用MXnet实战深度学习之一:安装GPU版mxnet并跑一个MNIST手写数字识别 http://phunter.farbox.com/post/mxnet-tutorial1 用MXnet实战深度学 ...

  6. MySQL实战45讲学习笔记:事务隔离级别(第三讲)

    一.隔离性与隔离级别 1.事务的特性 原子性 一致性 隔离性 持久性 2.不同事务隔离级别的区别 读未提交:别人改数据的事务尚未提交,我在我的事务中也能读到.读已提交:别人改数据的事务已经提交,我在我 ...

  7. Oracle学习笔记之四,SQL语言入门

    1. SQL语言概述 1.1 SQL语言特点 集合性,SQL可以的高层的数据结构上进行工作,工作时不是单条地处理记录,而对数据进行成组的处理. 统一性,操作任务主要包括:查询数据:插入.修改和删除数据 ...

  8. spring学习笔记---数据库事务并发与锁详解

    多事务运行并发问题 在实际应用中,往往是一台(或多台)服务器向无数客户程序提供服务,当服务器查询数据库获取数据时,如果没有采用必要的隔离机制,可能会存在数据库事务的并发问题,下面是一些常见的并发问题分 ...

  9. 多事务运行并发问题spring学习笔记——数据库事务并发与锁详解

    多事务运行并发问题 在实际应用中,往往是一台(或多台)服务器向无数客户程序提供服务,当服务器查询数据库获取数据时,如果没有采用必要的隔离机制,可能会存在数据库事务的并发问题,下面是一些常见的并发问题分 ...

随机推荐

  1. mysql> set sql_mode='no_auto_value_on_zero';

    mysql> set sql_mode='no_auto_value_on_zero';

  2. SqlDbx远程链接DB2数据库

    1.首先下载IBM的IBM Data Server Client,百度云链接:http://pan.baidu.com/s/1kVBVjan 密码:2gtz 2.安装好客户端之后,打开cmd,运行db ...

  3. COGS 615. 韩国明星

    [问题描述] 在LazyCat同学的影响下,Roby同学开始听韩国的音乐,并且越来越喜欢H.o.T,尤其喜欢安七炫和Tony,可是,爱学习爱思考的Roby同学想,如果以后喜欢的韩星越来越多怎么办呢?R ...

  4. DataModel doesn't have preference values

    mahout和hadoop实现简单的智能推荐系统的时候,出现了一下几个方面的错误 DataModel doesn't have preference values 意思是DataModel中没有找到初 ...

  5. UVA 11324 The Largest Clique (强连通分量,dp)

    给出一个有向图,求一个最大的结点集合,任意两个点u,v.u可到达v或v可到达u. 一个强连通分量肯定一起选的.而且只能在一条路径上. 所以先找出所有scc,然后缩点找一条最大权的路径,按拓扑序跑DAG ...

  6. jni ndk 入门

    1. Linux环境模拟,下载sygwin 安装,选择devl 和shell -> install sygwin 中的配置ndk环境,进入安装目录c:/cygwin64 etc/profile文 ...

  7. MINST手写数字识别(一)—— 全连接网络

    这是一个简单快速入门教程——用Keras搭建神经网络实现手写数字识别,它大部分基于Keras的源代码示例 minst_mlp.py. 1.安装依赖库 首先,你需要安装最近版本的Python,再加上一些 ...

  8. 兼容IE6\7\8浏览器的html5标签的几个方案

    html5大行其道的时代已经到来.如果你还在等待浏览器兼容,说明你已经与web脱节几条街了.当然,这得益于移动客户端的蓬勃发展.如果还在纠结于,是否应该掌握html5和css3技术时,请狠狠的抽自己几 ...

  9. 【转】Spring, MyBatis 多数据源的配置和管理

    同一个项目有时会涉及到多个数据库,也就是多数据源.多数据源又可以分为两种情况: 1)两个或多个数据库没有相关性,各自独立,其实这种可以作为两个项目来开发.比如在游戏开发中一个数据库是平台数据库,其它还 ...

  10. js采用正则表达式获取地址栏参数

    getQueryString:function(name) { var reg = new RegExp("(^|&)"+ name +"=([^&]*) ...