LoadRunner压力测试心得总结
一、虚拟用户迭代一次的时间对整个压力场景的影响。
1、虚拟用户迭代一次的时间大于等于压力场景的上行周期。

此种情况,在压力场景的上行周期中,所有虚拟用户根据压力场景设置的策略全部依次运行。压力场景的上行周期过后,进入虚拟用户运行的稳定期,因为此时第一个运行的虚拟用户尚未退出迭代。当第一个运行的虚拟用户退出迭代时,即进入运动期。在运动期中,会不断的有虚拟用户上线和下线,此起彼伏,但当前运行的总虚拟用户数与总虚拟用户数接近,实际中会有所偏差,偏差的数量与压力场景步长的设定以及脚本的睡眠时间有关。当场景设置的步长为0时,运动期的时间等于压力场景的上行周期,因为当步长设置为0时,意味着虚拟用户一上线便下线,这与他们上行的速率相等。运动期后,便又进入稳定期,因为运动其第一个运行的虚拟用户尚未退出迭代。如果结束时间点落在稳定期时,虚拟用户不会立即停止迭代,而是等到下一次的运动期时才会陆续退出运行。如果结束时间点落在运动期,当有虚拟用户退出迭代时,便将该用户下线,不会再进入下一次的迭代,因为运动期时刻都有用户上线下线,所以虚拟用户会按照压力场景设置的退出策略全部退出迭代。
2、虚拟用户迭代一次的时间小于压力场景的上行周期。

此种情况是没有稳定期的,虚拟用户的上线下线贯穿于整个压力测试始末。假设有100个虚拟用户,每秒钟上一个虚拟用户,如上图所示。在虚拟用户第一次迭代的时间里,前50个用户依次上线。在虚拟用户第二次迭代的时间里,第51个用户到第100个用户依次上线,同时,因为虚拟用户第一次迭代时间里的1到50个用户陆续下线和上线,所以当第51个用户上线时,第1个用户也上线,第2个用户下线;当第52个用户上线时,第2个用户上线,第3个用户下线。按照此种规律,在压力场景的上行周期中,后一次迭代时间里的虚拟用户上下线是前几次迭代时间里的虚拟用户的同步上下线。当进入压力场景的运行周期时,虚拟用户上下线是上行周期所有迭代时间里的虚拟用户的同步上下线,所以当进入运行周期时,第1个和第51个虚拟用户上线,同时因为第2个和第52个虚拟用户上一次迭代时间的结束,所以第2个和第52个虚拟用户下线。在下一秒时,第2个和第52个虚拟用户上线,第3个和第53个虚拟用户下线,以此类推。因为此种情况没有稳定期,时刻都有虚拟用户上线下线,所以当到达结束时间点时,虚拟用户会按照压力场景设置的退出策略全部退出迭代。值得注意的是,当进入压力场景的运行周期时,实际正在运行的虚拟用户总数接近与所有虚拟用户总数。他们的偏差与压力周期的上行周期与虚拟用户一次迭代的时间的商值有关,微观看来,在压力场景运行周期的某个时间点上,商值个数的虚拟用户正在上线,同时商值个数的虚拟用户正在下线,其余的虚拟用户正在执行迭代,当然这是理论状况,实际运行情况将会复杂得多,与脚本的逻辑和场景的设置有关系。
二、File参数化的设置。

上图中,将参数选择策略设定为Unique、Each iteration、Continue in a cyclic manner,意思是每次迭代时从File中选择参数(同一迭代内的相同参数取值一样),每次都取不一样的参数,如果备选的参数全部选完,以循环的方式从头继续选择参数。我们更深入的挖掘一下,LoadRunner是如何做到上述策略的呢?做法是这样的,假设有10个虚拟用户,备选的参数有1000个,为了保证10个虚拟用户每次的取值不一样,将备选的1000个参数平均分为10等份,每一份分给一个虚拟用户。每个虚拟用户来取值时,都顺序取自己分得的Block,当达到Block的末尾时,再重头取值。注意,上述策略只有在迭代有效的情况下有效,即必须要选择下图中的第二个选项,否则当1000个参数被全部取光时,LoadRunner将会报错。

有时我们需要将两个参数一一对应,例如每个用户都有自己的用户名,即UserID参数和TrueName参数是一一对应的,如何实现参数的一一对应呢?做法是这样的,将这两个参数的数据源记录到一个参数表中,并将选择参数的策略设置为一样。

注意,上图中的记事本的最后一行必须为空行,否则LoadRunner会报“Missing Line”的异常。
三、场景设置。
1、步长的设置:

步长的设置会影响虚拟用户一次迭代中的Action之间的等待时间和该虚拟用户上次迭代和下次迭代的等待时间,不同虚拟用户之间的迭代等待时间是不受影响的。
2、压力场景上行策略设置:

上图设置的策略是每隔3秒上10个用户,不是3秒内陆续上10个用户。
3、其他设置。
停用日志:

设置思考时间:

错误处理策略和虚拟用户的运行策略:

网络速度控制策略:

LoadRunner压力测试心得总结的更多相关文章
- SoupUI 结合loadrunner压力测试
SoupUI 结合loadrunner压力测试 上一篇介绍了SoupUI接口测试,因为工作需要,需要在loadrunner进行websocket的压力测试,当然,SoupUI本身也是可以做性能测试的 ...
- LoadRunner压力测试实例
1 LoadRunner 概要介绍... 2 .项目背景介绍... 5 .使用LoadRunner进行负载/ 实施测试... 16 6.1 Memory相关... 22 6.2 Processor相关 ...
- LoadRunner压力测试实际运用的使用方法
LoadRunner 是一种预测系统行为和性能的工业标准级负载测试工具.通过以模拟上 千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个 企业架构进行测试. 方 ...
- 韦大仙--LoadRunner压力测试:详细操作流程
一. 录制脚本 1.安装完毕后,创建脚本: 点击OK之后,会弹出网址,之后创建Action,每进一个页面添加一个Action,录制结束后,终止录制. 二. 修改脚本 1.脚本参数化 将登录的用户名密码 ...
- LoadRunner 压力测试使用基础步骤
一.新建脚本 二.新建脚本-选择协议,这里选择Web (HTTP/HTML) 三.开始录制(指定程序与URL) 四.场景设计(设计虚拟用户访问场景) 五.运行情况(可以看到运行结果) 六.分析报告(总 ...
- 【转】LoadRunner压力测试:测试报告结果分析
见:https://blog.csdn.net/haoui123/article/details/62036723
- Nginx使用webbench进行压力测试
在运维工作中,压力测试是一项非常重要的工作.比如在一个网站上线之前,能承受多大访问量.在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验. 但是,在压力测试中存在一个共性,那就是压力测试的 ...
- Nginx下用webbench进行压力测试
在运维工作中,压力测试是一项非常重要的工作.比如在一个网站上线之前,能承受多大访问量.在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验. 但是,在压力测试中存在一个共性,那就是压力测试的 ...
- Nginx使用webbench进行压力测试(转载)
在运维工作中,压力测试是一项非常重要的工作.比如在一个网站上线之前,能承受多大访问量.在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验. 但是,在压力测试中存在一个共性,那就是压力测试的 ...
随机推荐
- Java之字节码(2) - .class文件格式详解
转载来自 小介:去 年在读<深入解析JVM>的时候写的,记得当时还想着用自己的代码解析字节码的,最后只完成了一部分.现在都不知道还有没有保留着,貌似Apache有现 成的BCEL工程可以做 ...
- 我的项目7 js 实现歌词同步(额,小小的效果)
在项目中须要做一个播放器,还要实现歌词同步的效果,就跟如今搜狗音乐的歌词同步差点儿相同,在网上查了一些关于这方面的.整理了一下,在这里,其有用这种方法能够吗? <!DOCTYPE html> ...
- javascript 自定义动画函数
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...
- PHP - MAC下PhpStorm安装调试环境xdebug
今天下午一直在捣鼓如何用PhpStorm进行调试,查找了许多资料,零零碎碎的,所以自己弄篇文章记录一下步骤. 安装xdebug 使用brew安装xdebug,语法如下 brew install hom ...
- 最大似然估计(MLE)与最大后验概率(MAP)
何为:最大似然估计(MLE): 最大似然估计提供了一种给定观察数据来评估模型参数的方法,即:“模型已定,参数未知”.可以通过采样,获取部分数据,然后通过最大似然估计来获取已知模型的参数. 最大似然估计 ...
- [Windows驱动开发](三)基础知识——驱动例程
一.NT式驱动的基本例程 1. 驱动入口函数——DriverEntry // 驱动程序的一般性定义 NTSTATUS DriverEntry(IN PDRIVER_OBJECT pDriverObje ...
- python 多线程爬虫 实例
多进程 Multiprocessing 模块 Process 类用来描述一个进程对象.创建子进程的时候,只需要传入一个执行函数和函数的参数即可完成 Process 示例的创建. star() 方法启动 ...
- 解决Cocos2d-x3.0、3.1 "_opendir$INODE64"symbol(s) not found错误
升级系统和XCode后.在IOS8上编译之前的项目会报例如以下错误: Undefined symbols for architecture x86_64: "_opendir$INODE64 ...
- linux 下面压缩,解压.rar文件以及rar,unrar实例
http://www.rarlab.com/download.htm [root@bass src]# wget http://www.rarlab.com/rar/rarlinux-x64-5.4. ...
- Proguard语法及常用proguard.cfg代码段
本文主要ProGuard常用语法.标准proguard.cfg文件内容.常用proguard.cfg代码段及proguard与log level结合解决debug模式日志问题. 1.ProGuard的 ...