回顾day1:web
一、什么是性能测试?数据库
模拟真实的生产环境,以各类不一样的压力(模拟大量用户)去测试被测系统,去”攻击“测试系统。同时服务器
记录下被测系统中各台服务器的各类重要资源状况,包括cpu、内存、磁盘和网络等资源。网络
二、简述LoadRunner的工做原理。并发
一、录制时,loadRunner记录下客户端和服务器两者之间的对话。函数
二、回放时,LoadRunner模拟真实的客户端向服务器发起请求,并按照脚本去验证服务器的应答。工具
三、简介LoadRunner的三大组件,写出其中英文名称。性能
1)虚拟用户脚本生成器(Virtual User Generator) VUG测试
功能:录制、编辑测试脚本spa
2)压力调度控制台(Controller)
功能:建立场景、运行场景、监控场景、收集测试数据
(场景:就是一个大型的配置文件)
3)压力结果分析器(Analysis)
功能:把收集到的测试数据以图表的形式展现出来,生成测试报告。
四、并发和在线的区别。
五、简述点击率和吞吐量的概念,并简述其区别。
点击率:每秒钟用户向Web服务器提交的HTTP请求数。
- 点击率越大,对服务器的压力也越大。
- 注意:点击不是鼠标的一次“单击”操做,由于在一次“单击”操做中,客户端可能向服务器发出多个HTTP请求。
吞吐量:用户在任意给定一秒从服务器端得到的所有数据量,单位是字节。吞吐量/传输时间就是吞吐率。
=========================================================================================
1、做业讲解
一、性能测试中,脚本不建议调试过于复杂,脚本中action过多。
------ 脚本过于复杂,则系统测试结果出现问题后不易查找性能瓶颈,定位较难,下降工做效率。
通常的状况,一个测试点(操做)对应一个脚本。
二、录制脚本不要过急,要待也没资源下载完毕后,再进行下一步,不然脚本没法录制完成,不能调试成功。
三、脚本中检查点不须要加过多,一两个便可,由于检查点也是函数,执行时也要耗费资源。----若是脚本添加函数过多,过于复杂,则须要耗费额外的资源,可是全部服务器的资源监控数据都会记录在被测系统的结果报告中,形成报告中数据不许确。
四、性能测试中的在线测试是以循环为主,如查询稿件,则脚本的运行方式:登陆--查询稿件 - 查询稿件-查询稿件 - 退出系统;即脚本中init --- action ---action---action ---end
五、LR脚本中的注释:
1)注释单行:// 2)注释多行:/* .....*/
六、LR和QTP的相同点和区别:
1)LR和QTP的相同点:工做方式都是录制-- 回放
2)区别:
a、LR关心的是客户端和服务器直接的对话(数据包),关心的是请求(客户端发出)和应答(服务器端发出),关心的是网络协议(网络上的语言:http)
b、qtp关心的是aut的界面,以及界面上的对象及对象的属性。
七、正常来讲,一台PC机能够支持上百个进程或者上千个线程,若是使用线程来运行虚拟用户,则一台PC机通常能够支持1000-2000用户,若是遇到5000用户在线,则须要联机测试(多台笔记本)。
2、性能测试策略:(基准测试、并发测试、综合场景测试、疲劳强度测试、内存泄漏测试、数据容量测试、极限测试、递增测试)
一、在进行性能测试以前,功能测试要先经过。
二、基准测试(Benchmark Testing):单用户测试,目的是为其余测试提供参考依据。
三、递增测试:每隔一段时间(如5秒、10秒)加载不一样数目的虚拟用户执行测试操做,对测试点进行递增用户压力加载测试。
递增测试存在的意义:若是全部的虚拟用户同时加载,可能形成AUT的资源忽然增大,进而影响后续测试中关心的测试点的数据,全部前面能够稍稍放缓,递增长载虚拟用户。
四、在线综合场景测试:号称能干最真实的模拟实际的生产场景,通常状况下综合场景中要求脚本为3个以上,将虚拟用户分红不一样的组,每组执行不一样的脚本。
注意:通常不要将Login脚本加到综合场景中,由于综合场景通常持续时间很长(1个小时左右),这段时间内,全部的用户在循环执行操做,登陆不适合作循环。
如:10%的用户执行浏览首页,50%的用户执行查询订单,40%的用户执行订购机票,最大限度的模拟系统的真实场景,使用户宇宙系统投入使用后的性能水平。
5、注意:在设置综合场景中用户执行操做比例时,大部分的用户应该作浏览或者查询,少部分作提交操做。
6、解决端口冲突的问题:
1)查明哪一个服务占用了1080端口:netstat -ano 查看1080端口对应的PID(cmd)。
2)再进入任务管理器中进程列表下所对应的PID(进程标识符),将其禁用就能够了(或者在服务中禁掉)。
七、并发测试:多用户在同一时刻同时执行某个操做。并发测试就是考察被测系统的瞬间压力的承受能力。
八、疲劳强度测试:通常指长时间的在线综合场景测试,即在必定的压力强度下,进行长时间的测试,测试的时间常常为7*24小时,或者24小时等等。
九、内存泄漏:指系统运行时,占用的内存没有获得及时的释放,随着运行时间的增长,被占用的内存愈来愈多,致使能够物理内存被用光,系统运行缓慢甚至宕机,这种现象称为内存泄漏。
十、内存泄漏检测:使用相应的测试软件进行内存指定计数器的监控,观察释放符合内存泄漏的曲线走势,还可使用专门的内存泄漏检测工具进行测试。
十一、数据容量测试:考察AUT(被测系统)中数据库服务器中存储不一样容量数据时,AUT的性能反应。
十二、数据容量的单位:
1)1024Byte=1K
2)1024K =1M
3)1024M =1G
4)1024G =1T
5)1024T=1P
1三、极限测试:也称“摸高测试”,即便用性能测试,逐渐增长被测系统的压力,测试出AUT的极限值,如最大用户数、最大的吞吐量等。
1四、LoadRunner的工做方式:
1)脚本生产器将用户的操做录制成脚本(至关于武器)。
2)每一个虚拟用户都执行这个脚本(至关于每一个士兵都手持武器)。
3)控制台同一管理全部的虚拟用户(至关于总司令部)。
4)被攻击的城堡至关于AUT(被测系统,部署在服务器上)。
1五、事务(Transaction):为度量服务器的性能,须要定义事务。事务表示要度量的最终用户业务流程或操做。
1六、场景(Scenario):场景是一种文件,用于根据性能要求定义在每个测试回话运行期间发生的时间。模拟真实环境中,用户运行情况。
1七、如何去设置场景的参数:把握一个原则 ---模拟时间的生产环境。
1八、Agent的做用:当控制台统一对各个压力生成器(load generator)进行控制,每台压力生成器须要启动agent, agent负责实时侦听来自控制台的指令,以达到协调各压力生成器中虚拟用户的做用。
1九、在作联机测试时,联机的机器须要知足两个条件:
1)安装压力生成器
2)启动agent
20、监控器:在性能测试过程当中,要监控全部的服务器的重要资源。
2一、LoadRunner的工做流程:
1)LR的脚本生成器对AUT进行捕捉和录制(选择正确的协议,模拟Java客户端或者IE客户端),造成脚本。对于脚本能够在run_time settings中进行设置,进而造成场景。
2)在控制台中,对VUS(虚拟用户)进行部署,连同场景,造成各类测试场景(包括基准测试,并发测试,综合场景测试等)。场景能够启动或者中止,包括对于压力生成器的控制,还能够在测试过程当中对AUT的服务器进行监控。
3)测试过程当中造成的海量数据,在测试结束后统一提交到结果分析器,造成各式图表。
2二、控制台和脚本生成器中都有Run_time settings,控制台的优先级更高。
2三、LoadRunner录制原理:
-- 自动监控指定的URL或应用程序所发出的请求及服务器返回的响应。
-- 它做为一个第三方监视客户端与服务器的全部对话,而后把这些对话记录下来,生成脚本。
-- 再次运行时模拟客户端发出的请求,捕获服务器的响应。
2四、若是遇到查询的脚本,通常状况下,检查点为查询总条数的信息,可是若是系统中信息条数会变化,则须要避开总条数去验证。
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)结束录制
2六、上述步骤3和4能够调换位置,由于在输入界面信息时,对服务器没有提交请求,只有当点击“login”按钮时,才将输入的信息提交给服务器。
2七、LR脚本中,LR函数都是以web_和lr_开头。
2八、Lr脚本中,使用类C语言做为脚本,支持lr函数和C语言函数。
2九、思考时间:两个步骤之间的停顿时间。
30、通常在测试过程当中(控制台),须要设置思考时间(根据测试的需求);而在脚本生成器中,通常忽略思考时间,越快越好。
3、LoadRunner工具组成(组件):
一、虚拟用户脚本生成器(Virtual User Gennerator) -- 捕获最终用户业务流程和建立自动性能测试脚本,即产生测试脚本。
二、控制台(Controller) -- 根据用户对场景的设置,设置不一样脚本的虚拟用户数量。
三、结果分析器(Analysis) -- 分析测试结果
四、负载生成器(Load Gennerator) -- 经过运行虚拟用户产生实际的负载。
代理程序(Agent) -- 部署在各个客户端,协调获得步调一致的虚拟用户。
监控系统(Monitor) -- 监控主要的性能计数器。