服务器tps越大响应时间越小,性能基础知识学习之四---事务,思考时间,检查点,集合点和手写lr接口(示例代码)...

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

1.事务

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

而在录脚本时:

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

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

003417f60e004b26a2d3ab5c23fb9783.jpg

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

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

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

2.检查点

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

方法:

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

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

c59b75a1fc964764bea9ee1bc2fbeacc.jpg

在脚本中显示如下:

068453d36e7743cd84a36e4f9acefa37.jpg

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

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

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

3.集合点

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

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

集合点的添加:Insert -- Rendezvous

b6d82922d5da46bf8c4228afebfa7003.jpg

4.思考时间

等待时间,相当于sleep

添加思考时间方法:

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

ba145430608f4ca78b93e9e5c5dc9065.jpg

2.设置run time setting:

5325c2159d064f5195c0d5707bb3bed5.jpg

思考时间作用:控制单位时间内像服务器发起请求的数量,以达到控制服务器压力的目的,从而影响事务的响应时间及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与响应时间的关系

a20dd40d7a8d469789fe0aaaa1d7c159.jpg

tps与并发用户的关系:

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

a0f177c36eb4441f9090d25a71fbb093.jpg

二.手写接口

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

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

263b466ab9ca411fb7219d388e4a63d9.jpg

2.web_url

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

40bd4a8e0700498384a1ba3d3a5e1807.jpg

3.web_submit_data

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

085dcb6c0a0b4f54a8bcfb398e7b122f.jpg  

5f2d76a4fd3a45d08e2434a0dc41171f.jpg

————————————————

原文链接:https://www.cnblogs.com/panpan0301/p/8698626.html

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值