loadrunner测试客户端用户代理什么意思

今天和兄弟们晒晒loadrunner测试客户端测試场景中的虚拟用户状态及其含义

  使用的Virtual User Generator您能很简便地创立起系统负载。该引擎能够生成虚拟用户以虚拟用户的方式模拟真实用户的业务操作行为。它先记录下业务流程(如下订单或机票预定)然後将其转化为脚本。利用虚拟用户您可以在Windows ,UNIX 或Linux 机器上同时产生成千上万个用户访问所以loadrunner测试客户端能极大的减少负载测试所需的硬件和人力资源。

   用Virtual User Generator 建立测试脚本后您可以对其进行参数化操作,这一操作能让您利用几套不同的实际发生数据来测试您的应用程序从而反映出本系统的负载能力。以一个订单输入过程为例参数化操作可将记录中的固定数据,如订单号和客户名称由可变值来代替。在这些变量内随意输入可能的订单号和客户名来匹配多个实际用户的操作行为。

   为了进一步确定您的Virtual user 能够模拟真实用户您可利鼡loadrunner测试客户端控制某些行为特性。例如只需要点击一下鼠标,您就能轻易控制交易的数量交易频率,用户的思考时间和连接速度等 

  Virtual users 建立起后,您需要设定您的负载方案业务流程组合和虚拟用户数量。用loadrunner测试客户端的Controller您能很快组织起多用户的测试方案。Controller 的Rendezvous 功能提供一个互动的环境在其中您既能建立起持续且循环的负载,又能管理和驱动负载测试方案

   而且,您可以利用它的日程计划服务來定义用户在什么时候访问系统以产生负载这样,您就能将测试过程自动化同样您还可以用Controller 来限定您的负载方案,在这个方案中所有嘚用户同时执行一个动作---如登陆到一个库存应用程序----来模拟峰值负载的情况另外,您还能监测系统架构中各个组件的性能---- 包括服务器,网络设备等----来帮助客户决定系统的配置 

  loadrunner测试客户端内含集成的实时监测器,在负载测试过程的任何时候您都可以观察到应用系統的运行性能。这些性能监测器为您实时显示交易性能数据(如响应时间)和其它系统组件包括application server, web server网路设备和数据库等的实时性能。这样您就可以在测试过程中从客户和服务器的双方面评估这些系统组件的运行性能,从而更快地发现问题

分析结果以精确定位问题所在

  一旦测试完毕后,loadrunner测试客户端收集汇总所有的测试数据并提供高级的分析和报告工具,以便迅速查找到性能问题并追溯原由使用loadrunner测試客户端的Web 交易细节监测器,您可以了解到将所有的图象、框架和文本下载到每一网页上所需的时间例如,这个交易细节分析机制能   够分析是否因为一个大尺寸的图形文件或是第三方的数据组件造成应用系统运行速度减慢另外,Web 交易细节监测器分解用于客户端、网絡和服务器上端到端的反应时间便于确认问题,定位查找真正出错的组件例如,您可以将网络延时进行分解以判断DNS 解析时间,连接垺务器或SSL 认证所花费的时间通过使用loadrunner测试客户端的分析工具,您能很快地查找到出错的位置和原因并作出相应的调整 

重复测试保证系統发布的高性能

  负载测试是一个重复过程。每次处理完一个出错情况您都需要对您的应用程序在相同的方案下,再进行一次负载测試以此检验您所做的修正是否改善了运行性能。

   loadrunner测试客户端完全支持EJB 的负载测试这些基于Java 的组件运行在应用服务器上,提供广泛嘚应用服务通过测试这些组件,您可以在应用程序开发的早期就确认并解决可能产生的问题

   利用loadrunner测试客户端, 您可以很方便地了解系统的性能。它的Controller 允许您重复执行与出错修改前相同的测试方案它的基于HTML 的报告为您提供一个比较性能结果所需的基准,以此衡量在一段时间内有多大程度的改进并确保应用成功。由于这些报告是基于HTML 的文本您可以将其公布于您公司的内部网上,便于随时查阅

   接下来的编者就将辑录一篇网上的使用loadrunner测试客户端?来测试BEA中间件产品文章来与大家分享如何使用loadrunner测试客户端进行实际的。

首先要感谢群友的无私分享才能得到这篇好的学习资料,整理得太好了所以收藏保存,方便以后学习





1A:注册表不能访问或写导致的,可以恢复注册表或卸载(清除注冊表可以使用工具)重新安装程序。

要启支LR自带的实例的服务时出错了,提示:端口已经被另一个服务占用请问一下能不能自己修妀这个程序原来设定的端口啊?

二:loadrunner测试客户端面试(笔试)问题整理

     负载测试是通过逐步增加系统负载测试系统性能的变化,并最终確定在满足性能指标的情况下系统所能承受的最大负载量的测试,例如访问一个页面的响应时间规定不超过1秒,负载测试就是测试在響应时间为1秒时系统所能承受的最大并发访问用户的数量。

压力测试通常是在高负载情况下来对系统的稳定性进行测试更有效地发现系统稳定性的隐患和系统在负载峰值的条件下功能隐患等。

性能测试:指在一定的约束条件下(指定的软件、硬件、网络环境等)确定系统所能承受的最大负载压力。

 性能测试包含负载测试、压力测试、大数据量测试、疲劳强度测试等

 第一,分析产品结构明确性能測试的需求,包括并发、极限、配置和指标等方面的性能要求必要时基于LOAD测试的相同测略需同时考虑稳定性测试的需求。
  第二分析应用场景和用户数据,细分用户行为和相关的数据流确定测试点或测试接口,列示系统接口的可能瓶颈一般是先主干接口再支线接ロ,并完成初步的测试用例设计
  第三,依据性能测试需求和确定的测试点进行测试组网设计并明确不同组网方案的重要程度或优先级作为取舍评估的依据,必要时在前期产品设计中提出支持性能测试的可测试性设计方案和对测试工具的需求
  第四,完成性能测試用例设计、分类选择和依据用户行为分析设计测试规程并准备好测试用例将用到的测试数据。
 第五确定采用的测试工具。
 第六进荇初验测试,以主干接口的可用性为主根据测试结果分析性能瓶颈,通过迭代保证基本的指标等测试的环境
 第七,迭代进行全面的性能测试完成计划中的性能测试用例的执行。
 第八完成性能测试评估报告。
  在进行性能测试的时候我们需要知道一些有效的性能指标,下面我们来列出一些主要的性能指标:
  一是通用指标(指Web应用服务器、数据库服务器必需测试项):
 *ProcessorTime:指服务器CPU占用率,一般平均达到70%时服务就接近饱和;
 *Memory Available Mbyte:可用内存数,如果测试时发现内存有变化情况也要注意如果是内存泄露则比较严重;
 二是,Web服务器指标:
 *Avg Rps:平均每秒钟响应次数=总请求时间/秒数;
 三是数据库服务器指标:

  A4:制定性能测试计划—>开发测试脚本—>设计测试场景—>執行测试场景—>监控测试场景—>分析测试结果

  通过;一般需要进行性能测试的系统,都是用户量比较大、业务使用比较频繁、比较重偠的功能模块

  A6:主要有三部分组成:

     在性能测试过程中,需要模拟大量用户在同一时刻访问系统并同时操作某一任务,可以通过配置集合点来实现多个用户同时进行某操作;

    集合点可以在服务器上创建密集的用户负载,使loadrunner测试客户端能够测试服务器在负載状态下的性能

   场景用于模拟用户实际业务操作;

设置场景:选择场景类型、设置运行时设置、模拟用户数、加减压方式、持续时間,配置负载生成

LR通过转发请求来捕获数据包,来形成脚本

解释:1.基于浏览器的应用程序推荐使用HTML-based Script, 脚本中采用
HTML页面的形式来表示这种方式的Script脚本容易维护,容易理解使用该选项中的advance中的第一个选项,如果单纯的HTML方式是不允许使用关联的。
2.不是基于浏览器的应用程序推荐使用URL-based Script脚本中的表示采用基于URL 的方式,不是很好阅读
解释:1.是否记录录制过程中的ThinkTime,如果记录还可以设置最大值,一般我不记錄这个值
3.完整记录录制过程的log,
4.保存一个本地的snapshot可以加速显示
 
解释:这个就是我前面提到的关联,系统已经预先设置好了一些常見的关联rules我们录制脚本之前,可以把系统的

  参数:在环境变化时必须时脚本具有环境变化的能力就需要参数化(客户端发送到服务器端)

关联:很多构架用sessionid等方法标识不同任务和数据,应用在每次运行时方式发送数据不完全相同需要利用的机制对录制的脚本进行处理,这种机制叫做关联(服务端发送到客户端)

客户端发送请求后服务端验证正确性后,发送给客户端sessionid是某种规则产生。

1.设置允许录制時进行自动关联可以自定义规则

web_reg_save_param()函数主要根据需要做关联的动态数据前面和后面的固定字符串来识别、提取动态数据,所以在做关联时需要找出动态数据的左、右边界字符串。

当调试脚本时可以只输出错误日志,当在场景找你管加载脚本时日志自动变为不可用。
Standard Log Option:選择标准日志时就会在脚本执行过程中,生成函数的标准日志并且输出信息供调试用。大型负载测试场景不用启用这个选项
扩展日誌包括警告和其他信息。大型负载测试不要启用该选项用扩展日志选项,可以指定哪些附加信息需要加到扩展日志中

Ramp up这个选项用于逐渐增加服务器的虚拟用户数或负载量设置一个初始值而且可以在两个迭代之间设置一个值等待。设置Ramp up请到‘Scenario Scheduling Options’。

VuGen提供了用多线程的便利这使得在每个生成器上可以跑更多的虚拟用户。如果是以进程的方式跑虚拟用户为每个用户加载相同的驱动程序到内存中,因此占用叻大量的内存这就限制了在单个生成器上能跑的虚拟用户数。如果按线程运行给定的所有虚拟用户数(比如100)只是加载一个驱动程序實例到内存里。每个线程共用父驱动程序的内存因此在每个生成器上可以跑更多的虚拟用户。

lr_abort函数放弃虚拟用户脚本的执行说明虚拟鼡户停止Action的执行,直接执行vuser_end然后结束执行在出现错误情况下想手工放弃脚本的执行,这个函数是有用的用这个函数停止脚本时,Vuser被指萣为“Stopped”状态为了这个函数起作用,开始时候就不能选择Run-Time Settings中的Continue on error选项

吞吐量图显示的是虚拟用户每秒钟从服务器接收到的字节数。当和響应时间比较时可以发现随着吞吐量的降低,响应时间也降低同样的,吞吐量的峰值和最大响应时间差不多在同时出现

通过Web资源监視器,利用这些监控器可以分析web服务器的吞吐量、点击率、每秒http响应数以及每秒下载的页面数

思考时间是真实用户在action之间等待的时间。唎如:当一个用户从服务器接收到数据时用户可能需要在响应之前等待几分钟回顾数据,这种推迟被称为思考时间

Standard Log Option:选择标准日志时,就会在脚本执行过程中生成函数的标准日志并且输出信息,供调试用大型负载测试场景不用启用这个选项。
扩展日志包括警告和其怹信息大型负载测试不要启用该选项。用扩展日志选项可以指定哪些附加信息需要加到扩展日志中

在init、end中不能使用集合点、事务等, init、end呮执行一次。

ContentCheck的设置是为了让VuGen检测何种页面为错误页面如果被测的Web 应用没有使用自定义的错误页面,那么这里不用作更改;如果被测的Web應用使用了自定义的错误页面那么这里需要定义,以便让VuGen 在运行过程中检测服务器返回的页面是否包含预定义的字符串,进而判断该頁面是否为错误页

面如果是,VuGen就停止运行指示运行失败。

使用方法:点击在runtime settings中点击“contentcheck”然后新建立一个符合要求的应用程序和规则,设定需要查找的文本和前缀后缀即可使用

模拟用户访问速度的带宽。

可以很直观的看到在负载下系统的运行情况以及各种资源的使鼡情况,可以对系统的性能瓶颈定位、性能调优等起到想要的辅助作用

线程有自己的全局数据。线程存在于进程中,因此一个进程的全局變量由所有的线程共享由于线程共享同样的系统区域,操作系统分配给一个进程的资源对该进程的所有线程都是可用的,正如全局数据可供所有线程使用一样。在Controller中将使用驱动程序(如mdrv.exe、r3vuser.exe)运行vuser如果按进程运行每个vuser,则对于每个vuser实例都将反复启动同一驱动程序并将其加载箌内存中。将同一驱动程序加载到内存中会占用大量的RAM(随机存储器)及其他系统资源这就限制了可以在任一负载生成器上运行的vuser数量。如果按线程运行每个vuserController为每50个vuser(默认情况下)仅启动驱动程序(如mdrv.exe)的一个实例。该驱动程序将启动几个vuser每个vuser都按线程运行。这些线程vuser将共享父驱动进程的内存段这就消除了多次重新加载驱动程序/进程的需要,节省了大量内存空间从而可以在一个负载生成器上运行哽多的Vuser.

   对集合点策略进行相应的设置即可。即在controller中点击Scenario-Rendezvous-policy进行相应的设置即可,由于题目中“一半的用户”没有说明白具体指什么样的鼡户现在不好确定具体对里面的哪个选项进行设置。

A:通用的API:就是跟具体的协议无关,在任何协议的脚本里都能用的;

C:自定义的:这个范围就比较广了;比如至少有Java Vuser API、lrapi、XML API还可以添加WindowsAPI和自定义函数库。

);中文解释:lr_debug_message函数在指定的消息级别处于活动状态时发送一条调试信息如果指定的消息级别未出于活动状态,则不发送消息您可以从用户界面或者使用lr_set_debug_message,将处于活动状态的消息级别设置为MSG_CLASS_BRIEF_LOG戓MSG_CLASSS_EXTENDED_LOG要确定当前级别,

【lrd_fetch】:提取结果集中得下一条记录

1.小用户量的情况下测试
2.大用户量情况下的测试
整个系统架构分析系统响应时间消耗,利用图表分析
查看事务响应时间通过事务摘要图分析事务响应时间,那个消耗最大(通过小用户量和大用户量的响应时间分析查看那个事务响应时间最高),确定哪部分功能是性能的瓶颈分析window resource图表,查看cpu
使用下列计数器标识cpu瓶颈
通过它来确定是否硬件本身出现瓶頸或者进一步确定应该怎么去判断性能产生瓶颈的地方!
下一步去判断进程,那个进程消耗cpu最高
下边就有很多种情况需要你自己去判断有可能是进程调用了的函数消耗了系统资源形成上边的问题,也有可能是后台数据库出现的问题(这个就要看你的系统配置是什么样的比如你的db服务器和应用服务器都配置在一台机器上)
性能产生瓶颈有很多地方,所以需要进一判断是否是后台数据库的问题还有待分析,是那条语句导致的问题需要进一步分析判断
? 具体问题具体分析(这是由于不同的应用系统,不同的测试目的不同的性能关注点)
? 查找瓶颈时按以下顺序,由易到难
服务器硬件瓶颈-〉网络瓶颈(对局域网,可以不考虑)-〉服务器操作系统瓶颈(参数配置)-〉中間件瓶颈(参数配置数据库,web服务器等)-〉应用瓶颈(SQL语句、数据库设计、业务逻辑、算法等)
注:以上过程并不是每个分析中都需要嘚要根据测试目的和要求来确定分析的深度。对一些要求低的我们分析到应用系统在将来大的负载压力(并发用户数、数据量)下,系统的硬件瓶颈在哪儿就够了
? 分段排除法很有效
?1 根据场景运行过程中的错误提示信息
?2 根据测试结果收集到的监控指标数据
(小用戶时:程序上的问题。程序上处理数据库的问题)
(应用服务参数设置问题)
例:在许多客户端连接Weblogic应用服务器被拒绝而在服务器端没囿错误显示,则有可能是Weblogic中的server元素的 AcceptBacklog属性值设得过低如果连接时收到connection refused消息,说明应提高该值每次增加25%
(1、在应用服务的性能参数可能呔小了 2、数据库启动的最大连接数(跟硬件的内存有关))
分析:可能是以下原因造成
?A、应用服务参数设置太大导致服务器的瓶颈
?C、在程序处理表的时候检查字段太大多
应用系统在当前环境(硬件环境、网络环境、软件环境(参数配置))下能承受的最大并发用户数。
在方案运行中如果出现了大于3个用户的业务操作失败,或出现了服务器shutdown的情况则说明在当前环境下,系统承受不了当前并发用户的负载壓力那么最大并发用户数就是前一个没有出现这种现象的并发用户数。
如果测得的最大并发用户数到达了性能要求且各服务器资源情況良好,业务操作响应时间也达到了用户要求那么OK。否则再根据各服务器的资源情况和业务操作响应时间进一步分析原因所在。
2.业務操作响应时间:
? 分析方案运行情况应从平均事务响应时间图和事务性能摘要图开始使用“事务性能摘要”图,可以确定在方案执行期间响应时间过长的事务
? 细分事务并分析每个页面组件的性能。查看过长的事务响应时间是由哪些页面组件引起的问题是否与网络戓服务器有关?
? 如果服务器耗时过长请使用相应的服务器图确定有问题的服务器度量并查明服务器性能下降的原因。如果网络耗时过長请使用“网络监视器”图确定导致性能瓶颈的网络问题
3.服务器资源监控指标:
1 UNIX资源监控中指标内存页交换速率(Paging rate),如果该值偶尔赱高表明当时有线程竞争内存。如果持续很高则内存可能是瓶颈。也可能是内存访问命中率低
内存资源成为系统性能的瓶颈的征兆:
茭换区所有磁盘的活动次数可高;
可高的全局系统CPU利用率;
1 UNIX资源监控(Windows操作系统同理)中指标CPU占用率(CPU utilization),如果该值持续超过95%表明瓶颈是CPU。鈳以考虑增加一个处理器或换一个更快的处理器如果服务器专用于SQL Server,可接受的最大上限是80-85%
合理使用的范围在60%至70%。
CPU资源成为系统性能的瓶颈嘚征兆:
1 UNIX资源监控(Windows操作系统同理)中指标磁盘交换率(Disk rate)如果该参数值一直很高,表明I/O有问题可考虑更换更快的硬盘系统。
I/O资源成为系统性能的瓶颈的征兆 :
1 SQLServer资源监控中指标缓存点击率(Cache Hit Ratio)该值越高越好。如果持续低于80%应考虑增加内存。
2 如果Full Scans/sec(全表扫描/秒)计数器显礻的值比1或2高则应分析你的查询以确定是否确实需要全表扫描,以及SQL查询是否可以被优化
3 Number of Deadlocks/sec(死锁的数量/秒):死锁对应用程序的可伸缩性非常有害,并且会导致恶劣的用户体验该计数器的值必须为0。
4 Lock Requests/sec(锁请求/秒)通过优化查询来减少读取次数,可以减少该计数器的值

我要回帖

更多关于 loadrunner 的文章

 

随机推荐