赞
踩
当虚拟用户脚本开发完成后,使用Controller将这个执行脚本的用户从单用户转化为多用户,从而模拟大量用户操作,进而形成负载。(多用户单循环,多用户多循环)我们需要对负载模拟的方式和特征进行配置从而形成场景。
是一种用来模拟大量用户操作的技术手段,通过配置和执行场景向服务器产生负载验证各系统各项性能指标是否达到用户要求,而Controller可以帮助我们对场景的设计执行及监控进行管理。
使用Controller管理场景主要分为:场景设计、场景监控。最后通过运行场景完成性能测试的执行。
自行设置虚拟用户的变化,通过设计用户的添加和减少的过程,来模拟真实的用户请求模型,完成负载的生成。手工场景是‘定量型’性能测试,掌握负载的变化过程中系统各个组件的变化情况,定位性能瓶颈并了解系统的处理能力,一般在负载测试和压力测试中应用。手册场景的核心就是设置‘用户负载方式’。
设置一个运行目标,通过Controller的自动加载功能进行自动化负载,如果测试的结果达到目标 ,说明系统的性能符合测试目标,否则就是提示无法达到目标。
对场景进行设计后,需要对负载生成器进行管理和配置。Load Generators是运行脚本的负载引擎,(相当于加压机)主要功能是生成虚拟用户进行负载,在默认情况下使用本地的负载生成器来运行脚本。
但是每生成一个虚拟用户,需要花费负载生成器大约2M-3M的内存空间。通常运行Controller的主机很少用作负载生成器。负载生成器的工作多由其他装有LR Agent的PC机来担任。如果负载生成器内存的使用率大于了70%,负载生成器就会变成系统的瓶颈,导致性能测试成绩下降。这种问题需要添加负载生成器来解决。所以在一台电脑上无法模拟大量的虚拟用户,这个时候需要调用多个Load Generators来完成大规模的性能负载。
设置脚本的运行,以及action的运行顺序
两种运行模式
配置脚本运行中每次iteration之间的等待时间,需要在重复做某件事之前插入一个等待时间,就可以通过这个功能来实现。每当出现一次starting iteration或者是ending iteration就会检查一次pacing的设置。
设置模拟用户等待操作的时间,由于LoadRunner回放脚本时全速进行的,而真正的用户的操作并不会如此迅速,所以要通过添加等待时间的方式,在脚本的运行过程中模拟用户的等待操作,实现这个操作的函数是:lr_think_time();
Error Handing错误处理
脚本中某个函数出错会导致整个脚本的停止运行,但在场景中会继续运行
Multithreading进程与线程
进程是指一个虚拟用户用一个mmdrv.exe,线程是指多个用户一起使用一个mmdrv.exe
Automatic Transactions自动化事务
事务是用来获得某一行为所消耗时间的函数,默认情况下我们自己定义事务
提供了宽带模拟的选项,默认情况下,脚本是以最大宽带的情况来进行访问的
这个功能模拟了整个http头中user-agent信息,从而让服务器错误的认为是一个个真实的客户端对服务器发出了请求,通过设置可以将脚本模拟成各种浏览器,用来做浏览器兼容性测试。
打开Controller,点击左下角的Run,右击Windows Resources - Last 60 sec视图,点击Add Measurements…,然后添加被测试的服务器,最后进行添加参数指标
该计数值用于体现服务器整体的处理利用率,对多处理器系统而言,该计数值体现的是所有CPU的平均利用率。如果该值得数值持续超过90%,则可以说明整个系统面临处理器方面的瓶颈,需要通过增加处理器来提高性能。
计算机对文件系统进行读取和写入操作的频率,但是不包括文件控制操作。
线程在等待分配CPU资源所排队列的长度,此长度不包括正在占有CPU资源的线程。如果该队列的长度大于处理器个数+1,就表示处理器有可能处于阻塞状态(参考值:<=处理器个数+1)
CPU利用率,该计数器最为常用,可以查看处理器是否处于饱和状态,如果该值持续超过95%,就表会视当前系统的瓶颈为CPU,可以考虑增加一个处理器或更换一个更好的处理器。(参考值:<80%)
CPU在特权模式下处理线程所花的时间百分比。一般的系统服务,进程管理,内存管理等一些由OS(操作系统Operating System)自行启动的进程属于这类。
与%Privileged Time 计数器正好相反,指的是在用户状态模式下(即非特权模式)的操作所花的时间百分比。
处理器在网络处理上消耗的时间,该值越低越好。
*DPC:数据处理中心(Data Processing Center)
进程无法与其他进程共享的字节数量,该计数器的值较大时,有可能是内存泄漏的信号。
最近处理线程使用的内存页。
表示每秒钟处理的错误页数;当处理器在内存中读取某一页出现错误时,就会产生缺页中断,也就是page Fault。如果这个页位于内存的其他位置,这种错误称为软错误,如果这个页位位于硬盘上,必须从硬盘重新读取,这个错误称为硬错误。硬错误会使系统的运行效率很快降下来。
表示为了解决硬错误而写入硬盘的页数(参考值:>=Page Reads/sec)
表示为了解决硬错误而从硬盘上读取的页数。
表示为了解决硬错误而从硬盘上读取或写入硬盘的页数(参考值:0~20)
剩余的可用物理内存,单位是兆字节(参考值:>=10%)
文件系统的缓存(默认为50%的可用物理内存)
表示磁盘驱动器为读取或写入请求提供服务所用的时间百分比,如果只有%Disk Time比较大,硬盘有可能是瓶颈。
表示磁盘读取和写入请求提供服务所有的时间百分比,可以通过增加磁盘构造磁盘阵列来提高性能(<=磁盘数的2倍)
表示磁盘写入请求的平均数
磁盘中读取数据的平均时间,单位是s
磁盘中写入数据的平均时间,单位是s
表示网络中接受和发送字节的速度,可以用该计数器来判断网络是否存在瓶颈(参考值:该计数器和网络带宽相除,<50%)
当通过controller虚拟多个用户执行脚本时。用户的启动或运行步骤不一定都是同步的。集合点是在脚本的某处设置一个标记。当有虚拟用户运行到这个标记处时,停下等待,直到所有的用户都到达这个标记处时,再一同进行下面的步骤,这样能够用最大的用户并发去做下面的操作,就像集合后再前进一样。集合点主要用于对关键步骤的加压。
集合点用处对于LoadRunner来说意义非常大,它可以设置多个虚拟用户等待到一个点同时触发一个事务,以达到模拟真实环境下同时多个用户操作,同时模拟负载,实现性能测试的最终目的。插入集合点主要是为了衡量在加重负载的情况下服务器的性能情况,从而找到性能瓶颈。可以把集合点理解成是一种特殊情况下的并发。
在Virtual User Generator中,使用函数lr_rendezvous();来设置集合点,在Controller中,通过工具栏中的Scenario点击Rendezvous来设置集合点
IP地址欺骗是指用户产生的IP数据包为伪造的源IP地址,以便冒充其他系统或发件人的身份。是一种黑客的攻击形式,黑客使用一台计算机上网,而借用另外一台机器的IP地址,从而冒充另外一台机器于服务器打交道。
1、当某个IP的访问过于频繁,或者访问量过大时,服务器会拒绝访问请求,这时或通过IP欺骗可以增加访问频率和访问量,以达到压力测试的效果。
2、某些服务器配置了负载均衡,使用同一个IP不能测出系统实际的性能。LoadRunner中的IP欺骗通过调用不同的IP,可很大程度上的模拟实际使用中多IP访问和并测试服务器均衡处理的能力。
3、有一些网站会限制用一个用户同一个IP的登录。为了更加真实的模拟实际情况,LoadRunner允许运行的虚拟用户使用不同的IP访问用一个网站。
如下提示为:Ip欺骗表示要设置静态IP
1、控制面板\网络和 Internet\网络和共享中心,点击所连接的网络,设置属性,找到IPv4,进行设置,手动输入IP地址,在命令窗口,输入ipconfig /all,找到相应的ip进行填写即可。
2、在HP Software中找到并打开IP Wizard
3、然后直接下一步,到这个界面,可以进行添加IP地址,点击add,选择C类网址,
4、对于生成的IP地址可以进行保存,以便以后进行导入
一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”,地址范围从1.0.0.0到126.0.0.0.可用的A类网络有126个,每个网络能容纳1亿多个主机。
一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围从128.0.0.0到191.255.255.255.可用的B类网络有16382个,每个网络容纳6万多个主机。
一个C类地址是由3字节的网络地址和1字节的主机地址组成,网路地址的最高位必须是“110”。范围从192.0.0.0-233.255.255.255C类网络达209万余个,每个网络能容纳254个主机。
1、虚拟IP是同一个Generator上党的多个IP,这种分配过程由Controller自动来进行。
2、对于同一个Generator,你模拟的用户数量多于IP数量时,将会发生IP重复的现象,否则将随机分配不同的IP。
3、对于同一个Generator,以其某一个IP添加到Generator中即可,不需要用不同的IP添加多次。
4、IP欺骗设置前主机IP为固定的IP,测试完成之后要释放掉IP。
1、修改URL中的IP地址为本机IP
2、最少添加一个事务
3、设置日志及线程
Replay–>Runtime Settings–>Log中勾选扩展日志(Extended log)(三个都勾上)
Replay–>Runtime Settings–>Miscellaneous中选择Thread运行模式
1、启用IP欺骗
Scenario–>Enable Spoofer
2、启用专家模式(开发调试模式)
Tools–>Expert Mode
3、修改General为线程模式
Tools–>Options–>General–>IP address allocation per thread
SLA是为负载测试场景定义的具体目标。例如,评测脚本中任意数量事务的平均响应时间,可以定义具体的目标或阈值。测试运行结束之后,LoadRunner将你定义的目标与实际录制的平均事务响应时间进行比较。如果实际的平均事务响应时间未超过你定义的阈值,SLA状态将为通过,否则不通过。
作为目标定义的一部分,可以指示SLA将负载条件考虑在内。这意味着可以接受的阈值将根据负载级别而有所更改(例如,运行的Vuser数,吞吐量等)。。随着负载的增加,你可以允许更大的阈值。
SLA与面向目标场景的主要区别是前者有一定的调整幅度,而面向目标场景是很具体的目标设定。
1、在Service Level Agreement中点击New,来创建一个新的服务水平协议
2、选择测量值
3、选择事务
在这里插入图片描述
4、添加负载条件
5、设置完成
lr_rendezous();
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。