LoadRunner学习笔记——Day2

来源:互联网 发布:linux pipe 编辑:程序博客网 时间:2024/06/09 20:30

Day2

一、练习题:

1、什么是性能测试?

答:使用工具模拟实际的生产情况中的业务压力,去测试系统,去攻击系统,去验证系统是否能够承受当前的压力,满足性能的需求指标

2、简述LR的工作原理

答:1、录制时,Loadrunner记录下客户端和服务器二者之间的对话,形成脚本

2、回放时,Loadrunner模拟真正的客户端,向服务器发出请求,并根据脚本来验证服务器的应答

3、简介LR的三大组件,写出其中英文名称

答:1、虚拟用户生成器-virtual user generator

      2、控制台-controller

      3、结果分析器-analysis

4、并发和在线的区别

答:1、并发:多个用户在某一时刻同时进行某个操作,对系统的瞬间压力考虑较大

2、在线:多个用户在某一时间段循环的进行某个操作

5、简述点击量和吞吐量的概念,并简述其区别

答:1、点击量:一段时间内用户向web服务器提交的HTTP请求数(问的总量)

      2、吞吐量:一段时间内客户端从服务器端获得的全部数据量,单位为字节(答的总量)

二、性能测试策略

1、在性能测试之前,功能测试要先通过

2、基准测试单用户测试,目的是为其他测试提供参考依据。

3、递增测试存在的意义:如果所有的虚拟用户同时加载,有可能造成被测系统AUT的资源突然增大,进而影响后续测试中关心的测试点的数据,所以前面可以稍稍放缓,递增加载虚拟用户

4、(在线)综合场景测试:(能够最真实的模拟系统实际的生产场景一般情况下,综合场景中要求脚本为3个以上,将虚拟用户分成不同的组,每组执行不同的脚本。注意:一般不要将login脚本加到综合场景中,因为综合场景一般持续时间很长(1hour左右),这段时间内,所有的用户在循环执行操作,而登录不适合做循环

注意:在设置综合场景中的用户操作比例时,大部分的用户应该做浏览或者查询,少部分做提交操作,如:

10%的用户执行浏览首页

50%的用户执行查询订单

40%的用户执行订购机票

5、并发测试多用户在同一时刻同时执行某个操作,称为并发测试。并发测试的目的是考察AUT的瞬间压力的承受能力。

6、疲劳强度测试:一般指的是长时间的在线综合场景测试,即在一定的压力强度下进行长时间测试,测试的时间经常为7*24小时,或者24小时等等

7、内存泄漏:系统运行时占用的内存没有得到及时的释放,随着运行时间的增加,被占用的内存越来越多,导致可用物理内存被用光,系统运行缓慢,甚至宕(down)机,这种现象称为内存泄漏。一般比较少见。

内存泄漏检测:使用相应的测试软件进行内存指定计数器的监控,观察是否符合内存泄漏的曲线走势,还可以使用专门的内存泄漏检测工具进行测试。

8、数据容量测试:考察AUT中数据库服务器中存储不同容量数据时AUT的性能反应。

      数据容量的单位:

      1)1024Byte=1K

      2)1024K=1M

      3)1024M=1G

      4)1024G=1T

      5)1024T=1P

9、极限测试:也称“摸高测试”,即 使用 性能测试,逐渐增加AUT的压力,测试出AUT的极限值,如最大的用户数量,最大的吞吐量等

三、Loadrunner的工作方式:

1、脚本生成器将用户的操作录制成脚本(相当于武器)

2、每个虚拟用户都执行这个脚本(相当于每个士兵都手持武器)

3、控制台统一管理所有的虚拟用户(相当于总司令部统一管理所有的士兵)

4、被攻击的城堡相当于AUT(被测系统,部署在服务器上)


 

四、事务

五、场景

      1、如何去设置场景的参数:把握一个原则——模拟实际的生产环境(根据经验、对项目的理解)

六、Loadrunner工具组成

除了三大组件以外还有:

1、压力(负载)生成器(Loadgenerator:通过运行虚拟用户产生实际的负载(Controller中那个灰黄图标

2、代理程序(Agent部署在各个客户端,协调得到步调一致的虚拟用户。

作用:当控制台统一对各个压力生成器(load generator)进行控制时,每台压力生成器需要启动agent,agent负责实时监听控制台的指令,以达到协调各个压力生成器中虚拟用户的作用。

注意在做联机测试时,联机的机器需满足2个条件:

         A、已安装压力生成器

      B、启动agent(所有程序——HP software——HP Loadrunner——Advanced settings——Agent process(其实它开机就自启动了,右下角雷达图标))

3、监控器(Monitor):监控主要的性能计数器。在性能测试过程中,要监控所有的服务器的重要资源。(Controller——Run——Windows Resources——右键单击——Addmeasurements…

监控的原理:LR连接到(本机)服务器上,将(本机)服务器的信息获取下来,展示出来即OK,后面所有的测试(基准测试、综合场景测试等)都要添加Windows资源,到时候还会讲解。

性能测试整个流程图:

七、Loadrunner的工作流程(根据上图):

1LR脚本生成器对被测系统AUT进行捕捉和录制(选择相应的网络协议,模拟Java客户端或者IE客户端),形成脚本。对于脚本,可以在Runtime settings中进行设置,进而形成场景。

2)控制台中,对vus(虚拟用户)进行部署,连同场景,形成各种测试场景(包括基准测试、并发测试、综合场景测试等)。场景可以启动或者停止,包括对于压力生成器的控制,还可以在测试过程中对AUT的服务器进行监控。

3)测试过程中形成的海量数据,在测试结束后,统一提交到结果分析器,形成各式图表。

注意:脚本生成器和控制台中都有runtimesettings,控制台的优先级更高

 

八、浏览器的原理

1)当用户访问某个HTML文件时,浏览器首先获得该HTML文件,然后进行语法分析

2)如果这个HTML文件包含图片、视频等信息,浏览器会再次访问Web服务器,依次获取这些图像、视频文件,然后把HTML和图像、视频文件组织起来,显示在屏幕上。

九、录制脚本的过程(以购票为例):

      1、new一个新脚本

      2、点击“init”    

3、填入登录信息(jojo/bean

      4、插入login事务起始点

      5、点击“login”按钮

      6、插入login事务结束点

      7、切换到“action”

      8、购票(到最后一个continue按钮截止)

      9、插入“buy”事务起始点

10、点击“continue”按钮

11、插入检查点

12、插入“buy”事务结束点

13、切换到“end”

14、退出系统——如果直接关闭页面,则没有真正退出系统,与服务器的连接还在

15、关闭系统

16、结束录制

上述步骤3和4可以调换位置,因为在输入信息时,对服务器没有提交请求,只有当点击“login”按钮的时候才将输入的信息提交给服务器。

注意:

1、       如果遇到查询的脚本,检查点为查询总条数的信息,但是如果系统中信息条数会变化,则需要避开总条数去验证。

2、       LR中LR函数都是以“web_”和“lr_”开头

3、       LR脚本使用类C语言作为脚本,支持LR函数和C语言函数

4、       思考时间:2个步骤之间的停顿时间,此期间对服务器没有任何请求,什么都没有(可以在脚本中手动修改,或者在Runtimesettings中设置)

5、       一般在测试过程中(控制台),需要设置思考时间(根据测试的需求);而在脚本生成器中,一般是忽略思考时间,越快越好。

十、并发测试

1、集合点:系统压力最大的情况——所有用户都集合到系统瓶颈的某个点上进行操作(从脚本的角度讲,这个点就是执行脚本的某一条或一段语句)。

何时使用集合点——并发测试时使用(在事务开始之前添加集合点,则所有虚拟用户执行到集合点时停止,等待并发)

注意:一个脚本中一般只加入一个集合点,如果一个脚本录制的是一个流程(包含多个操作),这样在每个事务前都添加一个集合点(则脚本中有多个集合点),该做法从语法角度没有问题,但是如果脚本运行结果有问题不好分析。

2、并发测试的个条件:

      1)脚本中加入集合点

      2)控制台中设置集合点策略一般设置第一种:全部用户的XX%)

      3)并发测试是考察系统的瞬间压力承受能力,是比较严格的测试,所以不需要等待时间(think time)——忽略thinktime

3、脚本中添加代码或者修改代码后一定要进行编译(相当于保存)

课后作业:

1、控制台中集合点策略选取,翻译

ARealeasewhen XX% of all Vusers arrive at the rendezvous:

      当全部虚拟用户的百分之XX到达集合点的时候,系统释放用户,继续向下执行

BRealeasewhen XX% of allrunningVusers arrive at the rendezvous:

      当全部的运行着的虚拟用户的百分之XX到达集合点的时候,系统释放用户,继续向下执行

CRealeasewhen XX Vusers arrive at the rendezvous:

当XX个虚拟用户到达集合点的时候,系统释放用户,继续向下执行

最后:Timeout between Vusers:XX sec:不能超时XX秒,超的话就不等了,系统释放用户,继续向下执行

注意:

A、LR结果报告中,显示了事务的响应时间的最小值、平均值、最大值,其中平均值比较重要;标准方差越小(趋近于0),表示事务的响应时间越接近,代表系统越稳定

B、90percent:表示执行该事务的90%的用户都可以在该时间内完成

例如:100个用户共同执行某事务,1个用户执行时间为1000s,99个用户执行时间为0.01s,则90 percent和平均值哪个真实?——90 percent比较真实,也要关注90 percent值。——所以,读报告时,不应只看平均值,也要关注90 percent值。

C、Analysis不能直接打开脚本生成器中的脚本结果,脚本生成器(VuGen)中的脚本只能调试后点击“run”来查看结果

D、当脚本调试通过后——>加到控制台,run后——>打开Analysis

2、熟悉Runtimesettings中的前四项

1)Runlogic:运行逻辑,设置迭代次数

2)Pacing:起搏

      A、Start new iteration as soon as the previous iteration ends

      前一个迭代结束后立刻开始新的迭代

      B、Start new iteration after the previous iteration ends,with Fixed/Random delay of XX seconds

      延迟固定的/随机的 XX秒后/XX秒到XX秒 开始新的迭代

      C、Start new iteration at fixed/Random intervals,every XX seconds

      在固定的/随机的 XX秒后/XX秒到XX秒 开始新的迭代

3)log

4)thinktime

A、Ignore thinke time:忽略思考时间

B、Replay think time as recorded :按照录制的思考时间回放

C、Multiply recorded think by X:录制时间的X倍

D、Use random percentage of recorded think time Minimum XX% MaximumXXX%:用录制时间的XX%到XXX%的一个随机时间

E、limit think time to XX seconds:限制XX秒

3、录制脚本:qtp自带系统,三个测试点:购买机票、搜索航班、查询订购线路

4、英文作业