LoadRunner学习笔记——Day5

来源:互联网 发布:2016微信数据报告 编辑:程序博客网 时间:2024/06/04 18:38

Day5

注意:

1、如果Runtime settings中忽略了think time,则脚本在运行时所有的think time时间记为0,所以lr_think_time不生效,所以也就不需要移到事务之外;但是如果runtime settings中不忽略think time,则事务中的lr_think_time一定要移出 。

           2、如果是多用户,则必须要打开控制台;如果需要得到结果报告,则也需要打开控制台

一、练习

1、什么是基准测试,简介其做法

2、什么是并发测试,简介其做法

——多用户进行并发测试,即在同一时刻进行某种操作

3、什么是参数化?

      ——简单的说,就是将脚本中的常量变成变量的过程。比如:订购机票,1000张机票,每张机票的起始和目的城市都有可能不同,所以为了模拟真实的情况,将脚本中录制好的起始城市和目的城市转化成变量,这就是参数化的过程。

4、检查点的三个函数?LR推荐使用的是哪个函数

      ——web_reg_find

二、如何将2个参数写到一个文件中?(regis30中改的)

      即:实现name.bat和password.bat形成一个文件,文件名称不重要,使用两者中任意一个都行,目的是在该文件中,出现2列,一列对应一个参数,比如:第一列对应name参数,第二列对应password参数。

      实现步骤:

      1、参数化脚本中的name、password

      2、点击name.bat,给它增加一列,列名可以不和参数名相同(我还是设置password了)

      3、将所有参数值(2列)拷贝到name.dat中(与上一步的效果相同)

      4、将Name指定为name.dat文件的第一列(使用列号或选择列名都可以)

      5、将Password制定为name.dat文件的第二列(使用列号或选择列名都可以)

三、参数池的策略:

1、select next row(选择下一行的方式——how):

      1)按照顺序(suquential):(默认的)每个VU都是从第一行开始,顺序的向下取值(第一次取第一行、第二次取第二行、、、)

            特点:每个虚拟用户取值序列相同

      2)随机的(random):所有VU随机取值

         3)唯一的(unique):每个VU要唯一的向下取值,第一个用户从第一行开始取(只有选择此种方式时才会出现when out of values

           例如:如果数据为1(行) 、2(行) 、3(行)、4(行)…….,VU为甲、乙、丙,则取数据的规则:

甲:第一次取1(行)、第二次取2(行)、第三次取3(行)

乙:第一次取4(行)、第二次取5(行)、第三次取6(行)

丙:第一次取7(行)、第二次取8(行)、第三次取9(行)

注意:如果控制台中设置的循环次数为5,则每个VU都循环5次(取5行参数执行)

      4)Same line as XXX:2个参数如果取值需要保持一致,则设置好其中一个后,另外的一个参数的取值方式可以选择Same line as XXX

2、update value on(何时取值——when):

         1)每次迭代(Each Iteration):每次迭代(action的循环)时取值

      2)Each Occurrence(没讲)

3、越界后的处理方法(when out ofvalues):

      1、继续取最后一个值(Continue with last value)

      2、以循环的方式继续(continue in a cyclic manner)

      3、放弃虚拟用户(AbortVuser

 

注意:

1、       多用户注册脚本,使用控制台,则参数池的策略为:Unique+ Each Iteration+AbortVuser(U+E+A)

2、       如果对于单用户,顺序和 唯一 的取值方式一致

 

四、Runtime settings- Miscellaneous(杂项)中的相关设置

1、Error handling(对错误的处理)

1)Continue on error先不管错误,继续往下执行。长时间测试中,如综合场景或者疲劳强度测试时,该项要选中,测试结束后如果失败的事务数是场景中所有事务综合的5%以下则视为场景通过,以上则为失败(系统出错)。

      2)Fail opentransactions on lr_error_message:

      执行到事务中调用lr_error_message()函数,将事务的结果置为Failed

      3)Generate snapshot onerror:对错误进行快照

2、Multithreading:设定脚本是以多线程还是多进程方式运行

      1)Run Vuser as aprocess:以多进程方式运行,场景运行时会为每一个虚拟用户创建一个进程   

2)Run Vuseras a thread:以多线程方式运行(一般都是它,节省客户端的资源),将每个虚拟用户作为一个线程来运行,在任务管理器中只看到一个mmdrv.exe,这种方式的运行效率更高,能造成更大的压力,是默认选项

           如果以多线程方式并发,一个进程可以支持50VU的并发,只会出现一个mmdrv进程;如果以多线程方式并发,Load generator将会比多进程支持更多的用户,具体的一个VU占用内存的取值根据LR的版本不同而不同。

 

五、综合场景测试(在线)

1、综合场景的准备条件:至少3个以上的脚本

2、LR的tours网站,购票、查询订票线路 和 搜索航班

3、准备好三个脚本,在将脚本(三个脚本放入同一个文件夹中,同时在VUG中打开)放入控制台前需要做的工作是?——去掉所有事务里面的Think time,建议移出事务,不要删除,不要注释(因为录制时的停顿一般是模拟用户的操作,如果注释或者删除,甚至脚本中没有think time,则脚本不真实,此时综合场景测试设置(按照脚本录制的thinktime的随机百分比设置)的thinktime则无效), 保留,原因是要真实模拟实际的生产环境

4、在线综合场景测试时,如果事务中的think time不移出,则后果是?

答:因为综合场景根据实际生产环境要保留think time,所以事务中的think time(没有移出的话)会生效,进而影响事务的响应时间,会导致结果不准确。

5、脚本修改完毕要编译,保证没有语法错误,准备加入控制台(控制台中如果脚本路径为红色,说明路径错误,重新选择即可)

6、控制台中设置:

      1)设置用户数:买2  查路线2  搜索航班4(此时Load Generator是本机服务器)

      2)Schedule by:Scenario(场景方式),所有的虚拟用户统一听指挥,可以同时设置三个脚本(Ctrl同时选中它们)

           场景类型:

           A、按场景Scenario设置:即场景中所有的虚拟用户统一行动,一般都用这个

           B、按组group设置:场景中每个组(执行不同脚本的VUs,一个脚本的用户成为一个组)分头行动

      3)Global Schedule:

           A、Initialize:默认(运行前初始化每一个虚拟用户)

           B、Start Vusers:每隔1s一个Vuser

           C、Duration:设置运行30mins

           D、Stop Vusers:一般不设置(退出时一般没有压力)

      4)runtime settings:

           A、Runtime logic:不动,因为已经设置了Duration

           B、Pacing:设置随机6-9s(企业中一般2-3s)

           C、Log:不动(如果调试脚本,可以设置,方便随时查看日志;如果运行场景,则只在报错时发送日志即可

           D、Think time:设置按照录制时间的200%-400%随机(企业中一般选择默认的50%-150%)

           E、Miscellaneous(杂项):

                 Error:Continue on error,场景出错时继续

                 MultiThreading:Run user as a thread,以线程运行VUs

           F、Speed Simulation(Network speed):

Usemaximum bandwidth:使用最大带宽,如果带宽不充足则LR发出的请求可能会只有部分成功到达服务器端,导致性能测试结果不准确。带宽越充足越接近真实

           G、Browser Emulation(模拟浏览器):

Simulatebrowser cache:不勾选,不模拟浏览器的缓存——执行严格的测试

           H、Proxy不动

           I、Preference:

Enableimage and text check:不勾选(因为此时脚本没有加检查点)

                 Optios:中三个超时时间由120s均改为600s

      5)Windows Resources

           点击它的空白处选择Add measurements(增加计数器):

A、       AddMachine:localhost

B、       将上一步添加进来的资源全部删掉(下一步再添加需要的)

C、       Add  Windows  Resources

a、       Object:Memory  时

Counters中:

选择%Committed Bytes In Use—Add

选择available Mbytess—Add

选择Page Faults/Sec—Add

选择Pages Reads/sec—Add

选择Pages/sec(页面读取率)—Add——后面加的

 

                            Object:Network Interface时

Counters中:

           选择Packets/sec-网络选择loopback (回环,表示本机通讯,企业中测试如果客户端和服务器不是一台机器,则需要选择使用着的物理网卡)(没找到,选择的默认的环境WiFi网络))

           选择BytesTotal/sec—同上

 

Object:PhysicalDisk时

Counters中:

选择Avg. Disk Read Queue Length—Total(磁盘和CPU,选择Total)

选择Current Disk Queue Length—Total

选择Disk Reads Bytes/sec—Total

选择Disk Writes Bytes/sec—Total

 

 

 

Object:Processor时

Counters中:

选择%Processor Time——Total

选择%User Time——Total

 

 

Object:System时

Counters中:

      选择ProcessorQueue Length

                      只要测试的是Windows系统的,选以上14项就足够了

 

      设置完成,点击运行

      运行过程中出现错误修改脚本(点击红色error修改、直接在控制台添加的脚本路径处修改),修改后控制台中菜单栏Details-refresh-scris刷新脚本,之后再重新开跑,资源什么的重新计算,完成场景,保存结果

 

7、性能测试中的设置要把握一个原则,模拟真实场景,并且不给AUT增加额外的负载,以免结果数据不准确。

8、综合场景测试注意:

1、控制台中,开始运行时,在所有的VUs加载的过程中,如果有错误,应马上停止,因为测试要求是所有的VUs在线场景,如果没有达到所有的VUs在线,则无法继续测试

2、要保证所有的VUs登录成功,后面出错可以继续,但是如果大量出错,也要查找原因,必要时停止。

3、有一种错误是正常的:报 发现有资源为负值,没有问题,表示监控的服务器中有出错的计数器,但是不属于监控的13项。

 

六、联系作业:

1、LR自带Tours网站,综合场景完成

2、QTP自带的Tours网站,三个脚本,完成综合场景,设置与上例相同

3、保存测试结果,提交Analysis文件


 

原创粉丝点击