• 性能学习笔记之四--事务,思考时间,检查点,集合点和手写lr接口


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

    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请求.

       

  • 相关阅读:
    c++的一些个学习及总结
    简单回合制游戏流程
    c++11 符号修饰与函数签名、函数指针、匿名函数、仿函数、std::function与std::bind
    二叉搜索树、平衡二叉树、红黑树
    STL之空间配置器
    centos 7 安装mysql及常用操作
    生产服务器问题定位
    Linux常用命令
    Garbage First(G1) 垃圾收集器
    垃圾回收算法和垃圾收集器
  • 原文地址:https://www.cnblogs.com/panpan0301/p/8698626.html
Copyright © 2020-2023  润新知