·场景设置。
性能测试场景依托于性能测试脚本,但是又独立于脚本。
所谓场景(scenario),就是用来模拟多用户运行性能测试脚本的情形,是来源于我们对于业务场景的分析的。

性能测试对于业务场景的分析,一般来说我们采取的策略是悲观的策略,多考虑一些相对极端的情况。
然后对于业务场景的模拟,一般我们都会采用等价、幂等的思想。

一般来说,性能测试场景分为两类:单一场景和混合场景。
·单一场景:在一个场景中,只跑一个脚本(一类业务)。
多用于负载测试、压力测试、容量测试、并发测试、基准测试等。

·混合场景:在一个场景中,运行多个脚本(多类业务)。
多用于负载测试、压力测试(主要)、容量测试、配置测试、并发测试(主要)等。

·在LR中,是通过Controller组件来实现场景的设计、运行等功能的。
LR的Controller组件提供了两种类型的场景创建方式:
·目标场景:goal scenario:以特定的性能测试目标为驱动来实现的场景,该类场景中,我们只能设置性能目标,不能控制每一个虚拟用户的具体的行为(启动、持续和结束)。
该类场景中,只提供了以下五种性能测试目标的驱动:
·Vusers:虚拟用户数。
·Transactions per second:简称TPS,每秒事务数。
·Hits per second:简称HPS,每秒点击数,在很多互联网公司,有一个指标叫QPS,其实本质上就是HPS。所谓的query和hit一般都是指协议级别的请求(包含资源请求)。
·Transaction response time:事务响应时间。
·Pages per Minute:每分钟的页面数。仅在HTML模式下才会生效。

PS:一般来说,目标场景在实际工作中多用于验收测试。

·手工场景:mannual scenario、是以虚拟用户为驱动来实现的一种场景。也就意味着,我们可以控制每一个虚拟用户的数量、启动、持续和结束等行为。
一般来说,因为性能测试需求本身的多样化,我们在实际工作中会更多的使用手工场景。
手工场景,又分为用户组模式(Group mode)和百分比模式(PercentAge mode)。对于场景的实现的影响并不大。

·场景相关设置:
·Details:详情中主要有一个功能要关注,就是刷新功能。
两种情况下,要通过刷新来实现脚本的刷新。
·script:即脚本本身的内容发生变更,在Vugen中保存之后,要在当前场景中起效,则要刷新脚本。
·运行时设置:如果Vugen中的运行时设置发生变更,希望在当前场景中保持一致,则需要刷新运行时设置。

·Service Level Agreement:简称SLA,服务级别评价。该功能最重要的是其所用到的分析思想。
SLA选项可以在场景执行之前添加(Controller),也可以在场景运行之后添加(Analysis)。
SLA是采取的分析思想是:因素+目标。

·Start Time:调度器。调度器一定是在点击启动场景之后才会生效。

·Schedule by:场景计划的模式,有两种:
·Scenario:场景计划,即全局计划,即场景中只有一个计划,所有虚拟用户都遵从一个计划。
·Group:组计划,即场景中的每一个用户组都有独立的计划,相互之间不影响。通过该模式可以实现更复杂的一些场景。

PS:在Jmeter中,只有组计划模式。

·Run Mode:运行模式,有两种:
·real world:真实世界计划、允许我们模拟用户数的多个峰值变化情况。
·basic:基础计划、只允许我们模拟用户数的一个峰值变化情况。

实际工作中,就算使用真实世界计划模式,我们也只会模拟用户数的一个峰值变化情况。
通常采取的是悲观策略:即选择用户数的最大值,选择用户增长速度的最大值去设计一个场景。

·Schedule的构成:
场景计划通常是由四个基本action构成:
·Initialize:初始化模块。
·Start Vusers:启动虚拟用户。
·Duration:持续时间。
·Stop Vusers:停止虚拟用户。

LR是通过控制、调整虚拟用户的状态来实现控制虚拟用户。

虚拟用户的状态有:
·Down:未启动
·Pending:准备中,是指LR开始向负载生成器发送脚本。
·Init:初始化,是指LR开始初始化虚拟用户、初始化脚本、并且运行脚本的运行时设置-Run
Logic中的Init部分的脚本。
·Ready:就绪,即虚拟用户的初始化完成,即Init部分的脚本执行完毕。
·Run:运行,又叫迭代状态,表示虚拟用户在迭代执行Run Logic中的Run部分的脚本。
·Rendez:Rendezous,集合状态,表示虚拟用户正在集合点等待其它虚拟用户。
PS:该状态和Run状态会自动切换,也属于运行状态。
·Passed:表示虚拟用户运行脚本完毕,并且最终的状态是成功的。
·Failed:表示虚拟用户运行脚本完毕,并且最终的状态是失败的。
·Error:表示虚拟用户的生命周期中,发生了错误。
PS:绝大多数情况下都是成功或者错误。

·Gradual Exiting:准备退出,是指虚拟用户接收到停止信号之后,还没有开始执行End部分的脚本。
这是因为在LR中,提供了三种退出机制:
·A:立即退出:虚拟用户接收到停止信号之后,马上停止当前工作,直接跳转执行end部分的脚本。

·B:当前action:虚拟用户接收到停止信号,会将当前正在运行的action(脚本中)执行完毕,再跳转执行End部分。

·C:当前迭代:是默认方式。虚拟用户接收到停止信号,会将当前正在运行的迭代执行完毕,再跳转执行End部分。

·Exiting:退出中,是指虚拟用户正在执行End部分的脚本。

·Stopped:停止,表示虚拟用户运行脚本完毕,并且最终的状态是成功的。
和Passed状态是等价的。

·Schedule和Vuser status的对应关系如下:
·Initialize:初始化模块。
Down-Pending-Init-Ready

·Start Vusers:启动虚拟用户。
Ready-Run(Rendezvous)

·Duration:持续时间。
根据选项的不同,走向不一样。
·Run until completion:表示虚拟用户按照运行时设置中的迭代次数进行迭代,迭代完毕之后自动结束。
Run-exiting-Passed

·Run for:该选项是用来设置持续时间的。表示虚拟用户按照持续时间执行迭代,时间到达之后,退出。
Run-Gradual Exiting-Exiting-Stopped

PS:持续时间or迭代次数的设置,最终的目的都是为了得到一个稳定的测试数据(无关好坏)。

·Stop Vusers:停止虚拟用户。

性能测试基础---LR场景设置的更多相关文章

  1. 性能测试基础---LR运行设置

    ·LR的运行时设置(Runtime settings): ·Run Logic:该选项是用来控制脚本的真正的运行逻辑. ·该选项会把脚本中的函数分别放入三个运行模块中:Init.Run.End ·默认 ...

  2. LR 场景设置

    LR 场景设置group:多个脚本按照独立设置模式跑,各个脚本可以单独设置虚拟用户.运行时间scenario:多个脚本之间按照相同模式跑,将总的虚拟用户数按照一定比例分配给各个脚本 schedule ...

  3. LR场景设置里的各参数解释

    1.Start Vuser ep1: Strat 100 Vusers :2 every 00:00:15(HH:MM:SS) 解释: 场景总共要跑100个虚拟用户,每15秒启动2个虚拟用户Vuser ...

  4. 性能测试基础---LR参数化相关

    性能测试脚本的增强:·参数化·关联·事务·检查点·思考时间·集合点 ·参数化:模拟不同用户的不同请求. ·为什么要做参数化? ·功能:通常来说,系统的某些业务数据具有唯一性的要求. ·性能:一般来说, ...

  5. 性能测试基础---LR关联2

    ·LR中的关联函数详解.在LR中,用于关联的函数一般有以下四个:web_reg_save_param 是通过字符串查找的方式来查找获取数据.web_reg_save_param_ex 是通过字符串查找 ...

  6. 性能测试基础---LR关联

    ·什么时候需要做关联?一般来说,在脚本运行出错的时候,我们就可能需要进行关联处理. ·脚本出错分为两种情况: ·直接回放出错(失败).通常来说,如果录制成功,回放失败,排除数据的唯一性约束之后,那就必 ...

  7. LR工具使用之场景设置

    LR工具使用之场景设置 一.操作步骤 1.运行loadrunner,进入运行负载测试控件:

  8. LoadRunner性能测试基础知识问答

    Q1:什么是负载测试?什么是性能测试? A1:负载测试是通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试,例如,访问一个页面的响应时间规定不超 ...

  9. 面向目标的场景设置--Goal-Oriented Scenario

    在场景设置的时候会有两种场景设置方式: 1,手动模式(Manual Scenario) 2.面向目标的场景设置模式(Goal Oriented scenario) 其中手动模式使用较多,而且灵活应用, ...

随机推荐

  1. Computer-Hunters——项目系统设计与数据库设计

    Computer-Hunters--项目系统设计与数据库设计 前言 本次作业属于2019秋福大软件工程实践Z班 本次作业要求 团队名称: Computer-Hunters 本次作业目标:撰写一份针对团 ...

  2. express框架,使用 static 访问 public 内静态文件

    使用 express 生成 node 服务器后,我们需要访问放在public文件夹内的静态文件,如上传的图片 我们需要在app.js中添加配置项: app.use('/public',express. ...

  3. CUDA学习笔记1

    最近要做三维重建就学习一下cuda的一些使用. CUDA并行变成的基本四路是把一个很大的任务划分成N个简单重复的操作,创建N个线程分别执行. CPU和GPU,有各自的存储空间: Host, CPU a ...

  4. C++ getline()的两种用法

    getline():用于读入一整行的数据.在C++中,有两种getline函数.第一种定义在头文件<istream>中,是istream类的成员函数:第二种定义在头文件<string ...

  5. Spring JPA事务

    目录 1. 概述 促进阅读: 2. 配置不带XML的事务 3. 使用XML配置事务 4. @Transactional 注解 5. 潜在的陷阱 5.1. 事务和代理 5.2. 更改隔离级别 5.3. ...

  6. 责任链(ChainOfResponsibility)模式

    在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链.请求在这个链上传递,直到链上的某一个对象决定处理此请求.发出请求的客户端并不知道链上的哪一个对象,这使得系统可以在不影响客户端的 ...

  7. 用LabVIEW实现《家国梦》游戏中自动收货收金币

    前几周,很流行一个手机游戏,叫<家国梦>.我在手机上玩了一两天后,发现了两个问题: 1. 收货收金币太没意思,只需要手指滑在固定的路线,一会儿就烦了 2. 怎么追赶也追不上手快的人(当然也 ...

  8. CentOS7安装Kubernetes1.16.3

    一.概述 手工搭建 Kubernetes 集群是一件很繁琐的事情,为了简化这些操作,就产生了很多安装配置工具,如 Kubeadm ,Kubespray,RKE 等组件,我最终选择了官方的 Kubead ...

  9. lightGBM gpu环境配置

    推荐先看一手官方的Installation Guide.我用的是ubuntu 16.04,一些要求如下图: 主要是OpenCL以及libboost两个环境的要求. (1) OpenCL的安装.我这里之 ...

  10. .net core mvc启动顺序以及主要部件3-Startup

    前面分享了.net core Program类的启动过程已经源代码介绍,这里将继续讲Startup类中的两个约定方法,一个是ConfigureServices,这个方法是用来写我们应用程序所依赖的组件 ...