一、虚拟用户迭代一次的时间对整个压力场景的影响。

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压力测试心得总结的更多相关文章

  1. SoupUI 结合loadrunner压力测试

    SoupUI 结合loadrunner压力测试 上一篇介绍了SoupUI接口测试,因为工作需要,需要在loadrunner进行websocket的压力测试,当然,SoupUI本身也是可以做性能测试的 ...

  2. LoadRunner压力测试实例

    1 LoadRunner 概要介绍... 2 .项目背景介绍... 5 .使用LoadRunner进行负载/ 实施测试... 16 6.1 Memory相关... 22 6.2 Processor相关 ...

  3. LoadRunner压力测试实际运用的使用方法

    LoadRunner 是一种预测系统行为和性能的工业标准级负载测试工具.通过以模拟上 千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个 企业架构进行测试. 方 ...

  4. 韦大仙--LoadRunner压力测试:详细操作流程

    一. 录制脚本 1.安装完毕后,创建脚本: 点击OK之后,会弹出网址,之后创建Action,每进一个页面添加一个Action,录制结束后,终止录制. 二. 修改脚本 1.脚本参数化 将登录的用户名密码 ...

  5. LoadRunner 压力测试使用基础步骤

    一.新建脚本 二.新建脚本-选择协议,这里选择Web (HTTP/HTML) 三.开始录制(指定程序与URL) 四.场景设计(设计虚拟用户访问场景) 五.运行情况(可以看到运行结果) 六.分析报告(总 ...

  6. 【转】LoadRunner压力测试:测试报告结果分析

    见:https://blog.csdn.net/haoui123/article/details/62036723

  7. Nginx使用webbench进行压力测试

    在运维工作中,压力测试是一项非常重要的工作.比如在一个网站上线之前,能承受多大访问量.在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验. 但是,在压力测试中存在一个共性,那就是压力测试的 ...

  8. Nginx下用webbench进行压力测试

    在运维工作中,压力测试是一项非常重要的工作.比如在一个网站上线之前,能承受多大访问量.在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验. 但是,在压力测试中存在一个共性,那就是压力测试的 ...

  9. Nginx使用webbench进行压力测试(转载)

    在运维工作中,压力测试是一项非常重要的工作.比如在一个网站上线之前,能承受多大访问量.在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验. 但是,在压力测试中存在一个共性,那就是压力测试的 ...

随机推荐

  1. LOL电影天堂下载攻略

      LOL电影天堂&&飘花电影网下载攻略 CreateTime--2017年7月27日08:52:29Author:Marydon 以进击的巨人为例 下载地址:http://www.l ...

  2. Tomcat 关闭时报错

    最近tomcat走普通的关闭方式无法正常关闭,会报一些Error,用的是Tomcat7,据说是Tomcat7在关闭的时候加了一些检查线程泄漏内存泄露的东西 总结起来,在我项目中有这么几个原因会导致关闭 ...

  3. Linux 网桥配置命令:brctl

    Linux网关模式下将有线LAN和无线LAN共享网段实现局域网内互联: 思路其实很简单:就是将虚拟出一个bridge口,将对应的有线LAN和无线LAN都绑定在这个虚拟bridge口上,并给这个brid ...

  4. 系统学习NIO

    概述 适用于有一定编程基础的朋友,想系统学习NIO这块知识的朋友.知识点大体分3块:1:>概念了解(各类IO) 2>NIO的核心(缓存区,通道等) 3>网络IO 详细 代码下载:ht ...

  5. 【APP接口开发】php获取body数据

    PHP获取接口数据: $postStr = file_get_contents("php://input");//因为很多都设置了register_globals禁止,不能用$GL ...

  6. myeclipse2014安装jad反编译插件

    myeclipse上默认不能查看class文件,需要查看的话安装反编译插件 安装步骤: 准备图中框里的两个文件 1. [net.sf.jadclipse_3.3.0.jar]文件拷贝到如下路径([D: ...

  7. Android--从路径中提取文件名

    方法一:利用String类 public String getFileName(String pathandname){ int start=pathandname.lastIndexOf(" ...

  8. Android程序完全退出

    有几个activity,有一需求是在一个activityA点击back键退出系统而不是跳到之前的activity       首先想到的是清空activityA的堆栈,使用intent.setFlag ...

  9. Jquery.Treeview+Jquery UI制作Web文件预览

    效果图: 前台Html: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="D ...

  10. Java运行Python脚本的几种方式

    由于在项目需要执行Python,找寻相关资料,总结出以下几种方式: 直接执行Python脚本代码 引用 org.python包 PythonInterpreter interpreter = new ...