性能测试LR学习笔录2am pm -3
回顾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) -- 监控主要的性能计数器。
性能测试LR学习笔录2am pm -3的更多相关文章
- 性能测试LR学习笔录 -2
LoadRunner基本测试流程: 制定性能测试计划(部分) -> 创建测试脚本 -> 编译.运行测试脚本 -> 创建场景 - > 运行.监控场景.收集数据 -> 生 ...
- 性能测试day05_Jmeter学习
今天来学习下jmeter这个性能测试工具,虽然说性能测试最主要的是整个性能的思路,但是也少不了工具的帮忙,从以前主流的LR到jmeter的兴起,不过对于性能测试来说,个人感觉jmeter比较适合接口性 ...
- [性能测试] locust学习-基础篇
在本文中,我将介绍一个名为Locust的性能测试工具.我将从Locust的功能特性出发,结合实例对Locust的使用方法进行介绍. 概述 Locust主要有以下的功能特性: 在Locust测试框架中, ...
- LR学习笔记---参数设置 (转 温故而知新)
LR在录制程序运行的过程中,VuGen(脚本生成器) 自动生成了包含录制过程中实际用到的数值的脚本,如果你企图在录制的脚本中使用不同的数值执行脚本的活动(如查询.提交等等),那么你必须用参数值取代录制 ...
- ADO.NET Entity Framework学习笔录(一)
今天开始学习了EF的相关内容,以前只知道ADO.NET,今天学习后觉得有必要写个相关的学习心得,今天就先写第一篇. 我们的再学习的过程中所用到的环境是Windows7+SQLServer2008+VS ...
- JMeter性能测试介绍学习一
上一节中,我们了解了jmeter的一此主要元件,那么这些元件如何使用到性能测试中呢.这一节创建一个简单的测试计划来使用这些元件.该计划对应的测试需求. 1)测试目标网站是fnng.cnblogs.co ...
- SVG学习笔录(一)
SVG可缩放矢量图形(Scalable Vector Graphics)这项技术,现在越来越让大家熟知,在h5的移动端应用使用也越来越广泛了, 下面让我分享给大家svg学习的经验. HTML体系中,最 ...
- LR学习笔记之—参数和变量
一.LR中参数的使用 LR中参数默认使用“{}”来表示,如果想要修改,可以再General Options/Parameterization设置参数的边界字符 经常用到的函数: lr_save_str ...
- DDD学习笔录——提炼问题域之知识提炼与协作的基本原则
1.通过通用语言达成共识 通用语言,已经强调过好多遍了,在DDD再怎么重视都不为过,后面可能还会讲. 知识提炼的输出以及共识的构建就是常见的通用语言(UL). 当与业务相关人员和主题专家进行建模时,每 ...
随机推荐
- webpack学习笔记 (三) webpack-dev-server插件和HotModuleReplacementPlugin插件使用
webpack-dev-server插件 webpack-dev-server是webpack官方提供的一个小型Express服务器.使用它可以为webpack打包生成的资源文件提供web服务. we ...
- 2018-2019-2 20175317 实验二《Java面向对象程序设计》实验报告
2018-2019-2 20175317 实验二<Java面向对象程序设计>实验报告 一.实验步骤及内容 面向对象程序设计-1 参考 http://www.cnblogs.com/roce ...
- webpack的安装及使用
webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler).当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency g ...
- 另类AOP设计
常见的AOP设计都基于Remoting的RealProxy,或者基于Emit实现的动态代理,或者基于反射的Attribute扫描拦截.但是我们还有另类的拦截方案DynamicObject,只要我们继承 ...
- linux文件名乱码解决
问题描述:公司的FTP服务器早就搭建好,windows客户端可以上传文件到FTP服务器,但是上传去的文件在LINUX目录下文件是乱码. 解决方法:首先编辑/etc/sysconfig/i18n这个文件 ...
- Linux之redis-cluster(集群配置)
redis-cluster配置 为什么要用redis-cluster 1.并发问题 redis官方声称可以达到 10万/每秒,每秒执行10万条命令假如业务需要每秒100万的命令执行呢? 2.数据量 ...
- IntelliJ IDEA 2017.3.1安装步骤
https://www.jetbrains.com/idea/download/#section=windows 下载旗舰版 1.下载完成后,运行安装: 2.next: 3.选择你要安装的目录,nex ...
- 初步接触gulp
首先是安装nodejs,通过nodejs的npm全局安装和项目安装gulp,其次在项目里安装所需要的gulp插件,然后新建gulp的配置文件gulpfile.js并写好配置信息(定义gulp任务),最 ...
- mysql 没有全外连接
真实测试过,没有测试过的别再坑人了.别随便乱写了.
- .net core 发送邮件
var message = new MimeMessage(); //发送方 message.From.Add(new MailboxAddress(&qu ...