回顾day1:

1、什么是性能测试?

       模拟真实的生产环境,以各种不同的压力(模拟大量用户)去测试被测系统,去”攻击“测试系统。同时

记录下被测系统中各台服务器的各种重要资源情况,包括cpu、内存、磁盘和网络等资源。

 

2、简述LoadRunner的工作原理。

1、录制时,loadRunner记录下客户端和服务器二者之间的对话。

2、回放时,LoadRunner模拟真实的客户端向服务器发起请求,并按照脚本去验证服务器的应答。

 

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

1)虚拟用户脚本生成器(Virtual User Generator) VUG

功能:录制、编辑测试脚本

2)压力调度控制台(Controller)

功能:创建场景、运行场景、监控场景、收集测试数据

(场景:就是一个大型的配置文件)

3)压力结果分析器(Analysis)

功能:把收集到的测试数据以图表的形式展示出来,生成测试报告。

 

4、并发和在线的区别。

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

点击率:每秒钟用户向Web服务器提交的HTTP请求数。

  - 点击率越大,对服务器的压力也越大。

  - 注意:点击不是鼠标的一次“单击”操作,因为在一次“单击”操作中,客户端可能向服务器发出多个HTTP请求。

 

吞吐量:用户在任意给定一秒从服务器端获得的全部数据量,单位是字节。吞吐量/传输时间就是吞吐率。

 

=========================================================================================

一、作业讲解

1、性能测试中,脚本不建议调试过于复杂,脚本中action过多。

     ------ 脚本过于复杂,则系统测试结果出现问题后不易查找性能瓶颈,定位较难,降低工作效率。

一般的情况,一个测试点(操作)对应一个脚本。

2、录制脚本不要过急,要待也没资源下载完毕后,再进行下一步,否则脚本无法录制完成,不能调试成功。

3、脚本中检查点不需要加过多,一两个即可,因为检查点也是函数,执行时也要耗费资源。----如果脚本添加函数过多,过于复杂,则需要耗费额外的资源,但是所有服务器的资源监控数据都会记录在被测系统的结果报告中,造成报告中数据不准确。

4、性能测试中的在线测试是以循环为主,如查询稿件,则脚本的运行方式:登录--查询稿件 - 查询稿件-查询稿件 - 退出系统;即脚本中init --- action ---action---action ---end

5、LR脚本中的注释:

1)注释单行://               2)注释多行:/* .....*/

6、LR和QTP的相同点和区别:

1)LR和QTP的相同点:工作方式都是录制-- 回放

2)区别:

a、LR关心的是客户端和服务器直接的对话(数据包),关心的是请求(客户端发出)和应答(服务器端发出),关心的是网络协议(网络上的语言:http)

b、qtp关心的是aut的界面,以及界面上的对象及对象的属性。

 

7、正常来说,一台PC机可以支持上百个进程或者上千个线程,如果使用线程来运行虚拟用户,则一台PC机一般可以支持1000-2000用户,如果遇到5000用户在线,则需要联机测试(多台笔记本)。

 

二、性能测试策略:(基准测试、并发测试、综合场景测试、疲劳强度测试、内存泄漏测试、数据容量测试、极限测试、递增测试

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

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

3、递增测试:每隔一段时间(如5秒、10秒)加载不同数目的虚拟用户执行测试操作,对测试点进行递增用户压力加载测试。

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

4、在线综合场景测试:号称能干最真实的模拟实际的生产场景,一般情况下综合场景中要求脚本为3个以上,将虚拟用户分成不同的组,每组执行不同的脚本。

注意:一般不要将Login脚本加到综合场景中,因为综合场景一般持续时间很长(1个小时左右),这段时间内,所有的用户在循环执行操作,登录不适合做循环。

如:10%的用户执行浏览首页,50%的用户执行查询订单,40%的用户执行订购机票,最大限度的模拟系统的真实场景,使用户宇宙系统投入使用后的性能水平。

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

6、解决端口冲突的问题:

1)查明哪个服务占用了1080端口:netstat -ano 查看1080端口对应的PID(cmd)。

2)再进入任务管理器中进程列表下所对应的PID(进程标识符),将其禁用就可以了(或者在服务中禁掉)。

7、并发测试:多用户在同一时刻同时执行某个操作。并发测试就是考察被测系统的瞬间压力的承受能力。

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

9、内存泄漏:指系统运行时,占用的内存没有得到及时的释放,随着运行时间的增加,被占用的内存越来越多,导致可以物理内存被用光,系统运行缓慢甚至宕机,这种现象称为内存泄漏。

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

11、数据容量测试:考察AUT(被测系统)中数据库服务器中存储不同容量数据时,AUT的性能反应。

12、数据容量的单位:

  1)1024Byte=1K

  2)1024K =1M

  3)1024M =1G

  4)1024G =1T

  5)1024T=1P

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

14、LoadRunner的工作方式:

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

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

   3)控制台同一管理所有的虚拟用户(相当于总司令部)。

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

15、事务(Transaction):为度量服务器的性能,需要定义事务。事务表示要度量的最终用户业务流程或操作。

16、场景(Scenario):场景是一种文件,用于根据性能要求定义在每一个测试回话运行期间发生的时间。模拟真实环境中,用户运行状况。

17、如何去设置场景的参数:把握一个原则 ---模拟时间的生产环境。

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

19、在做联机测试时,联机的机器需要满足两个条件:

1)安装压力生成器

2)启动agent

20、监控器:在性能测试过程中,要监控所有的服务器的重要资源。

21、LoadRunner的工作流程:

1)LR的脚本生成器对AUT进行捕捉和录制(选择正确的协议,模拟Java客户端或者IE客户端),形成脚本。对于脚本可以在run_time settings中进行设置,进而形成场景。

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

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

22、控制台和脚本生成器中都有Run_time settings,控制台的优先级更高。

23、LoadRunner录制原理:

 -- 自动监控指定的URL或应用程序所发出的请求及服务器返回的响应。

 -- 它作为一个第三方监视客户端与服务器的所有对话,然后把这些对话记录下来,生成脚本。

 -- 再次运行时模拟客户端发出的请求,捕获服务器的响应。

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

25:、录制脚本的过程(以bug为例)

1)new一个新脚本

2)点击“init”

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

4)插入login事务起始点

5)点击login按钮

6)点击“login”事务结束点

7)切换到“action”

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

9)插入bug事务起始点

10)点击“continue”按钮

11)插入检查点

12)插入bug事务结束点

13)切换到“end”

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

15)关闭页面

16)结束录制

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

27、LR脚本中,LR函数都是以web_lr_开头。

28、Lr脚本中,使用类C语言作为脚本,支持lr函数和C语言函数。

29、思考时间:两个步骤之间的停顿时间。

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

 

三、LoadRunner工具组成(组件):

1、虚拟用户脚本生成器(Virtual User Gennerator) -- 捕获最终用户业务流程和创建自动性能测试脚本,即产生测试脚本。

2、控制台(Controller) --  根据用户对场景的设置,设置不同脚本的虚拟用户数量。

3、结果分析器(Analysis) -- 分析测试结果

4、负载生成器(Load Gennerator) -- 通过运行虚拟用户产生实际的负载。

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

    监控系统(Monitor) -- 监控主要的性能计数器。