《性能测试诊断分析与优化》学习总结(二)

LR场景设计

在Controller中新建场景,可以选择手工场景(Manual Scenario)和 面向目标场景(Goal-Oriented
Scenario)两种方式创建场景。

其实,在我们真实的项目中,选择手工场景比较多,所以下面是通过学习这本书的一些心得:

1、创建手工场景

当录制完脚本并完善好脚本后,下一个步骤就是设计运行场景,而整个的场景调度设计是非常关键的,创建可精确模拟用户压力行为的手工场景的关键点在于指定压力和时间。如指定场景运行的时间长度,多少虚拟用户(并发)参与这次测试执行,这些虚拟用户是如何启动与停止运行的,整个场景的设计是否合理,将会影响测试结果分析。

另外,在指定这些虚拟用户执行多长时间时,需要注意的是,如果在指定的时间内,某个虚拟用户完成了脚本的迭代执行之后,仍然有剩余时间,则该虚拟用户会继续执行脚本,直到场景设置的运行时间结束为止,即场景运行的持续时间会覆盖脚本的迭代时间。如果希望虚拟用户在执行完脚本后就退出,则应该选择第一项“Run
until competion”按钮,但一般在项目中会选择第二项,让执行场景持续执行一段时间(30分钟或1个小时),如图

2、创建面向目标场景

选择面向目标场景,场景目标的类型有虚拟用户(Virtual Users)、每分钟页数/每秒点击次数/每秒事务数(Pages per Minute/Hits
per Second/Transactions per
Second),这些都是用来度量服务器的能力,例如,定义一个场景目标为“每秒点击次数”为50,虚拟用户数50到100之间,,对于每秒事务数这个目标,还需要定义事务名(Transaction
Name)如图:

压力加载的方式与“Virtual
Users”场景的定义方式类型,LR会自动加载,也可以指定必须在某一段时间内达到目标,或者按一定的时间间隔递增加压。分阶段添加目标、尝试递增达到最终目标。

注意:如果选择自动加压,LR会在第一批次加载50个虚拟用户,如果指定的最大虚拟用户数小于50的话,LR就同时加载所有定义的虚拟用户。LR默认是每隔2分钟加载一批虚拟用户。

3、Load Generator实现自动均衡

在手工测试场景的百分比模式下,或者在面向目标的场景设计下,LoadRunner可以自动调整压力负载机,并做到负载的自动均衡。

当压力负载机的CPU使用过载时,Controller会停止从该压力负载机加载虚拟用户,会自动地把压力负载产生的任务分配给其他负载机器,这就实现了自动均衡,在场景执行过程中,打开Load
Generator
监控界面添加负载机器,并对其状态进行监控。当压力负载机器的CPU使用率比较高时,压力负载机器的状态图标会变为黄色,当出现过载情况时则为红色,正常状态是绿色。

4、  服务水平协议(SLA)

服务水平协议是在一定开销下为保障服务的性能和可靠性,服务提供商与用户间定义的一种双方认可的协定。通常这个开销是驱动提供服务质量的主要因素。

LR的SLA运行我们定义指定的目标,执行完场景后,Analysis会自动比较目标与收集的性能数据,从而判断SLA是否通过。

如图,在Controller界面的右边显示SLA,单击“新建”创建SLA定义性能目标,

设置过程由“启动à度量à事务à加载条件à阙值à完成”。

设置完成后,当场景执行完后,打开Analysis,可以SLA报告或者事务分析图等地方查看SLA目标与实际性能数据之间的对比情况。

注意:SLA可以在场景运行前定义,也可以在场景运行后定义,打开Analysis的概要报告(Summary Report)中进行设置或查看。

5、  Controller中运行界面Stopped 和 Passed的区别

在场景组(Scenario
Groups)中会显示虚拟用户的执行状态,如果场景执行没有出错的话,执行场景后虚拟用户有些是Stopped状态,有些是Passed状态,但是如何区别Stopped和Passed呢?

如果在压力测试时有出错的情况,或者人为去终止压力测试时,一般会停在Stopped状态,但是主要的原因是因为场景的设置问题。

如果场景设置是类似于:并发执行半个小时,观察循环多少次,这样,在全部通过的情况下,所有虚拟用户都会出现在Stopped状态。

相反,如果设置场景类似于:并发执行N个虚拟用户,每个虚拟用户脚本迭代执行10次,观察需要花多少时间,这样,如果所有事务都成功了,没有人为地去停止场景的执行情况下,所有的虚拟用户都会在Passed状态。

6、  场景运行错误分析:120秒超时问题的定位分析

当执行场景时,出现错误,而导致出现失败事务,此时需要对其进行设置,并定位分析原因

解决方法:在Run-Time Settings,选择PreferencesàOptions 修改Step download timeout(sec)/
HTTP-reguest connect timeout(sec)/HTTP-reguest receive timeout(sec)的值。

或者在脚本中加入web_set_timeout(“CONECT”,“60”);

分析出现错误的原因:

1、  看是否数据库性能问题。如是否出现死锁、等待现象,数据库资源使用率情况(CPU、内存、磁盘等)。

2、  看应用问题,是否是参数设置大小导致的,或页面图片大小,程序是否有死循环,字段是否过大,是否有内存溢出现象。

3、  网络问题,网络延迟,不过通常测试都在局域网中,所以这种问题比较少见。

4、  中间件的参数调整问题。线程数、数据库连接池等太大或太小都可能会引起这个问题。

时间: 2024-08-06 02:48:34

《性能测试诊断分析与优化》学习总结(二)的相关文章

《性能测试诊断分析与优化》学习总结(一)

我始终坚信,一本好书,可以改变人的一生,成功一定有方法,失败一定有原因,而我个人认为,失败的最大原因是学习不够.不断学习,活到老,学到老. 作为软件测试人员来说,或多或少都会对性能测试有点感兴趣,我个人认为,软件性能与软件功能的最大兴趣在于从用户体检的角度,感受软件的质量度量,如响应时间.准确性.成功率等. 性能测试的目标是通过制定性能测试策略.性能测试计划.执行性能测试,并对性能问题进行定位分析和优化.影响软件系统的性能主要因素包括:硬件设施.网络.操作系统.并发用户数.数据库数据量.中间件等

某系统单点登录性能测试诊断分析优化过程

某系统单点登录性能测试诊断分析优化过程 原因说明 下面描述的是前段时间协助本地一家上市IT公司做产品技术选型时对他们的技术框架进行性能测试与优化过程记录,因测试过程中涉及数据库选型和各类问题的监控分析优化,篇幅比较大,本次主要是描述在同样基础软硬件下.同样应用工程包和框架.同样数据量下,针对MYSQL环境下进行单点登录压力测试的结果过程记录. 初始环境配置 测试内容 1.            用户登录,首页查看,退出 2.  某业务交易新增.查询.删除.上传文件 3.  业务审批流程创建.提交

APP性能测试诊断与优化--通过现象猜本质

这段时间忙着帮北京某城商行做移动端性能测试,因移动端IPD.手机等都是无线设备,而且该客户是面临全国各地用户提供移动端APP支持,为了更真实的模拟测试,我跟该项目的项目经理沟通直接在厦门本地通过无线网借用LR工具模拟并发压力测试.很感谢移动架构组的技术专家肖工的帮忙,让我顺利的在本地搭建了模拟机,并跟该项目经理要了生产环境的APK工程包部署后,并根据项目组提供的业务操作手册学习业务知识,后使用LR开发脚本进行压力测试.       因地域距离关系,而且是直接在生产环境压力测试,生产环境在北京,压

重新学习MySQL数据库5:根据MySQL索引原理进行分析与优化

重新学习MySQL数据库5:根据MySQL索引原理进行分析与优化 一:Mysql原理与慢查询 MySQL凭借着出色的性能.低廉的成本.丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库.虽然性能出色,但所谓"好马配好鞍",如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如"精通MySQL"."SQL语句优化"."了解数据库原理"等要求.我们知道一般的应用系统,读写比例在10:1左右,而且插入

EasyUI学习总结(二)——easyloader分析与使用

EasyUI学习总结(二)--easyloader分析与使用 使用脚本库总要加载一大堆的样式表和脚本文件,在easyui 中,除了可以使用通常的方式加载之外,还提供了使用 easyloader 加载的方式.这个组件主要是为了按需加载组件而诞生.什么情况下使用它呢? 你觉得一次性导入 easyui 的核心 min js 和 css 太大 你只用到 easyui 的其中几个组件 你想使用其中的一个组件,但是你又不知道这个组件依赖了那些组件. 如果你有以上三中情况,那么推荐你使用easyLoader.

springMVC3学习(十二)--文件上传优化CommonsMultipartResolver

基于上一篇文件上传发现效率很慢,我们应该对它进行优化  使用springMVC对文件上传的解析器 来处理文件上传的时候需要在spring的applicationContext里面加上springMVC提供的MultipartResolver的申明 这样客户端请求的时候 springMVC会检查request里面是否包含多媒体信息 如果包含了就会使用MultipartResolver进行解析, springMVC会使用一个支持文件  处理的MultipartHttpServletRequest来包

性能测试结果分析

转自网络 性能测试工程师基本上都能够掌握利用测试工具来作负载.压力测试,但多数人对怎样去分析工具收集到的测试结果感到无从下手,下面我就把个人工作中的体会和收集到的有关资料整理出来,希望能对大家分析测试结果有所帮助. 分析原则: 1. 具体问题具体分析(这是由于不同的应用系统,不同的测试目的,不同的性能关注点) 2. 查找瓶颈时按以下顺序,由易到难. 服务器硬件瓶颈-〉网络瓶颈(对局域网,可以不考虑)-〉服务器操作系统瓶颈(参数配置)-〉中间件瓶颈(参数配置,数据库,web服务器等)-〉应用瓶颈(

柯南君:教你如何对待大型网站平台的性能优化? 之 二--- 应用程序调优 (长篇总结)

柯南君:教你如何对待大型网站平台的性能优化? 之 "二"--- 应用程序调优(长篇总结) 柯南君 上一章 <柯南君:教你如何对待大型电商平台的性能优化?之 一 (方法.指标.工具.定位)>讲到了一些测试方法.测试指标.以及测试工具.稍微讲了一些如何定位的方法?这一章主要讲一下"如何优化应用程序,将其性能提升". 一.基本知识  1.下面讲一些JAVA 程序性能方面的一些看法,首先给大家讲一下应用程序调优,需要调优哪些项? ① 运算的性能 : 看哪一个算法

Greenplum 简单性能测试与分析

如今,多样的交易模式以及大众消费观念的改变使得数据库应用领域不断扩大,现代的大型分布式应用系统的数据膨胀也对数据库的海量数据处理能力和并行处理能力提出了更高的要求,如何在数据呈现海量扩张的同时提高处理速度和应用系统的可用性,使客户能同时得到更高的处理速度.更高的数据可用性和更大的数据集,是数据库系统面临的一个挑战. 通过TPC-H基准测试,可获得数据库单位时间内的性能处理能力,为评估数据库系统的现有性能服务水平提供有效依据,通过横向对比促进数据库系统的整体质量提升,能更好地在重大信息化工程中实现