zoukankan      html  css  js  c++  java
  • 性能测试工具Loadrunner使用之一(Virtual User Generato)学习笔记

    1.如何设置参数规则?

    数据类型:(1)Date/Time:在需要输入日期、时间的地方,可以用Date/Time来代替,可以选择日期格式,也可进行定制。

         (2)Group Name:该类型的参数用执行脚本的VU所属组的名称来替代。但是在VuGen中运行时,该值为None。

         (3)LoadGenerator Name:LoadRunner使用该虚拟用户所在的Load Generator机器名来代替参数。

         (4)Iteration Number:LoadRunner使用该测试脚本当前循环的次数来代替参数

         (5)Random Number:随机数,可以设置产生随机数的范围

         (6)Unique Number:唯一值来代替参数

         (7)Vuser ID:LoadRunner使用该虚拟用户的ID来代替参数值,该ID是由Controller来控制的,在VuGen中运行脚本时,该值为-1.

         (8)DataFile/Table:可以在属性设置中编辑文件,添加内容,也可以从数据库中提取数据。

         (9)UseDefinedFunction:从dll的简单函数中获取信息替代参数

    【注意】对于参数类型为File/Table的数据文件: 

    1. 在参数数据显示区中,最多只显示前100条数据,之后的不显示,但不影响正常取数据。

    2. 在记事本中编辑参数数据时,数据文件一定要以一个空行结束,否则,最后一行输入的数据不会被参数所使用。

    对于参数类型为File/Table的参数的更新方式:

    Update Value on

    (更新方法)

    Select next row

    (数据分配方法)

    Sequential顺序

    Random随机

    Unique唯一

    Each Iteration(每次迭代)

    对于每次迭代,Vuser会从数据表中提取下一个值

    对于每次迭代,Vuser会从数据表中提取新的随机值。

    对于每次迭代,Vuser会从数据表中提取下一个唯一值。

    Each Occurrence(每次出现)

    参数每次出现时,Vuser将从数据表中提取下一个值,即使在同一迭代中。

    参数每次出现时,Vuser将从数据表中提取新的随机值,即使在同一迭代中。

    参数每次出现时,Vuser将从数据表中提取新的唯一值,即使在同一迭代中。

    Once(一次)

    对于每一个Vuser,第一次迭代中分配的值,将用于所有后续的迭代。

    第一次迭代中分配的随机值将用于该Vuser的所有迭代。

    第一次迭代中分配的唯一值将用于所有的后续迭代。

    举例:

    假设某参数有1.2.3.4.5.6.7.8.9.10这10个备选值,
    场景设置为运行3个Vuser,
    迭代次数为2,

    怎样取下一行数据? 
    Sequential:顺序,所有虚拟用户按照顺序读取数据表 
    Random:随机,所有虚拟用户随机形式读取数据表 
    Unique:唯一,所有虚拟用户每次各取一值(不重复)
    什么时候访问数据表完成数据更新? 
    Each iteration:每次迭代以后 
    Each occurrence:每次出现参数 
    Once:每出现一个虚拟用户

    实例: 

    现对不同搭配做比较: 
    Sequential+ Each iteration:这种方式最常用,表示每个Vuser都是顺序取值,每次迭代更新。
    运行后取值如下:
    Vuser1: 1,2
    Vuser2: 1,2
    Vuser3: 1,2

    Unique+ Each iteration:这种方式表示表示每个Vuser每次迭代取值不同,
    运行后取值如下:
    Vuser1: 1,2
    Vuser2: 3,4
    Vuser3: 5,6

    Unique+Once:表示每个Vuser彼此之间各不相同,但是每个Vuser在每次迭代中值保持不变。在测试存款性能的时候,由于在实际业务中不存在两个人同时向同一个账户存钱的可能,所以对存款账号的参数化就可以采用这种方式,保证不同的用户操作不同的账号,不会在一个账号上有并发产生,
    运行后取值如下:
    Vuser1: 1,1
    Vuser: 2,2
    Vuser3: 3,3


    Unique+Once:表示每个Vuser彼此之间各不相同,但是每个Vuser在每次迭代中值保持不变。在测试存款性能的时候,由于在实际业务中不存在两个人同时向同一个账户存钱的可能,所以对存款账号的参数化就可以采用这种方式,保证不同的用户操作不同的账号,不会在一个账号上有并发产生,
    运行后取值如下:
    Vuser1: 1,1
    Vuser: 2,2
    Vuser3: 3,3

     
     

    原文地址:http://www.cnblogs.com/qmfsun/p/4491457.html

    2.什么是迭代?为什么要设置action的迭代次数?以及对于不同的应用系统应该怎样设置迭代次数呢?

    答:录制脚本时只会有1个虚拟用户,1个虚拟用户可以有多次 迭代,也就是 重复执行 Action里面的内容,在场景设置的时候,如果在runtime-setting的Run Logic里面设置为10,那就是1个虚拟用户 迭代 10次,并且要求你设置的场景Duration的类型为Run until Completion 时,这个设置才会起作用,如果Duration的类型是Run for <时间>, 这个意思就是1个用户在这段时间内不停执行Action里面的操作;

    性能测试是模拟系统一段时间内真实的压力情况,以考察系统的性能。怎么模拟系统真实的压力情况?比如在半个小时内,用户都在进行登录操作,且平均分布在这半个小时内。我们要做的是什么?模拟这半个小时用户的行为。怎么模拟?估算出同时操作的人数,并用LoadRunner不断的发送登录请求,这就是我们为什么要迭代;

    至于迭代次数,只要能够模拟出真实情况,多少次都无所谓,不过10次8次估计是模拟不出来。迭代次数至少要保证压力达到一个稳定值后再运行一段时间,这样我们得到的数据才是有效的。所以我们除非是特别要求,一般不用迭代次数,而是用运行时间。

    3.什么是并发?并发与迭代的区别?

    答:某个脚本设置的vuser值, 可以理解为这个业务场景的并发用户数,但如果要测试具体某个业务的并发操作, 那就需要设置集合点, 而且集合点数目不能大于vuser值;迭代就是不停的反复调用同一脚本,反复执行,注意,对1个用户执行10次来说,只会分配一块内存。10个用户执行一次,是调用同一脚本10次,会分配10块内存。LR调用脚本,编译后,运行,按脚本发送数据。

    迭代跟虚拟用户数没什么必然联系

    迭代是这样的:

        迭代1次    迭代2次    迭代3次

    用户1   X1        X2      X3

    用户2   Y1       Y2       Y3

    其中的X1-3 Y1-3是参数,参数规则就如上面说的

    这么两个用户是根据你的rump up 上来的,比如5秒上两个用户,那么用户1和2就在5秒之内加载进来的。迭代次数只是对你设置了迭代次数的action进行迭代,而用户数可以理解为对整个录制过程的迭代(只是各个用户不同)而且增加并发量可以通过增加用户来达到,还可以设置集合点来增加某个操作的并发量。

    假如一个脚本,设置最大并发量为10,每5秒中增加2个并发用户,而Action设置的迭代为10次:

    当开始至2秒时,加载了2个用户,这2个用户分别开始运行,并都运行10次,不管这个2个用户运行10次是否结束,当下一个2两秒到来时,即开始至第4秒时又加载了2个用户,这2个又运行10次;就这样一直加载到10个并发用户,然后当每个用户都运行完10次时就结束。这样中间最大并发是10个,但不一定能达到10个,因为在加载最后几个时,前面的有可能已经运行结束,所以如果要真正达到最大并发10就必须设置集合点来完成。不过也不一定非要设置集合点才能实现同时处在running的状态有10个用户。设置duration也是可以的。不过那就不只每个用户运行10次了。如果想实现用户迭代10次,并且想同时running为10个用户,就应该设置集合点。

    3.应用案例展示

    测试用例:(1)登录系统;

         (2)预定EN42034次航班机票3张;

         (3)退出登录;

    (1)录制脚本:注:如果把所有脚本都录制到一个action里,那回放的时候,每个用户登录就只能买一张票,而如果想一个用户买多张票的话,这样就行不通了。那你就要设多个action,并把登录和结束各录制在一个action里,把买票录到一个action中,这样,将买票的action迭代多次,而用户登录和结束只运行一次)

    (2)运行时设置:(注:使用LoadRunner的Block(块)技术,来设置事务循环/迭代次数)

    1.打开Run-Time Settings对话框,点击Run Logic,再选中Run

    2.点击Inser Block

    3.选中Block0,点击Insert Action,在Select Actions中选中Order,点击Ok按钮。

    4.选中Block0,点击Properties按钮,设置Block的迭代次数。

    5.调整Action运行顺序,是顺序排列为Login→Block0(×3)→Logout。设置Number of Iterations为1。

  • 相关阅读:
    git操作说明书
    python之routes入门
    python inspect库
    Python SMTP发送邮件
    Python深入:setuptools进阶
    Python打包之setuptools
    python graphviz的使用(画图工具)
    pathlib的使用
    python tempfile 创建临时目录
    python flake8 代码扫描
  • 原文地址:https://www.cnblogs.com/zynNote/p/6991941.html
Copyright © 2011-2022 走看看