Loadrunner应用之Controller

  Loadrunner工具,通常看到的有三大核心组件,VuGen、Controller、Analysis,今天我们继续来聊一下,其中的一个核心组件:Controller。

  我们做性能测试的时候,对被测系统,特别是web系统,做完了性能测试脚本开发之后,同时也应该考虑对性能测试脚本进行一些优化,比如,执行一系列的关联、参数化、检查点、集合点、事务等等,使得我们在执行性能测试实施的时候,能够获取更加真实的性能数据。那么,脚本录制和优化完成之后,是不是性能测试就完成了呢?应该说,脚本开发完成了,咱们的性能测试呢,万里长征才刚刚开始。后面的知识呢,会越来越重要,越来越难,而且不在单纯的依赖于工具本身的功能了。很多东西,其实是工具没法控制的,需要我们具体的一个经验,或者说我们本身对性能测试的理解,才能把后面的一些工作做好。那么,性能测试脚本的开发完成之后,脚本能把我们的请求发出去,这是VuGen需要去解决的问题。那么Controller又来解决什么问题呢?我们来梳理一下。

  Controller,顾名思义,叫做控制器,所以它很多的功能都是控制部分的(见下图),比如说,它首先控制虚拟用户数量。我们要并发多少虚拟用户,需要在controller中设计。虽然我们前面说过,Loadrunner有三个核心组件,但是,还有另外一个,叫Load Generator--负载生成器, 一个更更重要的隐藏起来的一个核心组件,事实上,这个才是Loadrunner本身最核心的一部分。负载生成器用来模拟虚拟用户数的。如果说我们只有controller,而没有负载生成器,咱们使用Loadrunner也做不了性能测试。负载生成器这个专门的组件用来模拟虚拟用户,模拟多个线程,那么controller呢?它对负载生成器又有怎么样的一个控制呢,这个我们后面慢慢来说。

  第二点,controller除了控制虚拟用户数和负载生成器,它还需要控制咱们的性能测试场景。例如,我们现在假设要模拟500个用户,那么到底这个500个用户以什么样的场景来把请求发给服务器,是500个用户逐渐增加,500个用户执行多长时间,以什么样的方式来释放这些用户等等,这些呢,都是controller里面控制的。

  第三点,controller需要控制各种运行策略。例如,集合点功能,需要controller去控制。同样,比如咱们在执行性能测试的时候,考虑到,我们要去模拟用户的带宽。而通常情况下,我们都是在局域网内完成的性能测试的,带宽一般都是1000M,甚至更大的流量,都不是问题,但是真实用户在访问你的系统的时候,他的带宽能达到多少呢,现在主流的家庭主流带宽可能就是20m,50,100m,甚至有的还是5m,2m的,所以我们在做性能测试的时候,也需要去考虑用户的带宽问题,Loadrunner也支持这个功能(见下图),我们如果只用最大的带宽在局域网内部去测试,毫无疑问,带宽足够大,但实际上,就偏离了我们的另外一个对性能测试严格要求的这么一个条件,我们的要求相当于就放松了。而我们的loadrunner也可以控制这种各种各样的运行策略,从而达到模拟用户的真实行为。

  

  另外,在controller里面,还有一些附属的功能,附属的功能主要提供了,各种指标的监控。我们在去做性能测试的时候,Loadrunner本身模拟的只是一个客户端,或者说很多个客户端向服务器发送请求,因此呢,它也只能是从客户端的角度来看待和审视这个系统的性能,如果说我们能在性能测试执行的过程中,又能通过LR监控到服务器端的,更有针对性的一些性能指标,那么就可以一方面从客户端的角度对系统有一个整体的掌握,同时咱们也可以对服务器端的更真实的性能指标有一个完全的把握,这样我们把客户端的指标和服务器端的指标结合起来进行相应地分析,我们才能对这个被测系统有一个更完整的掌控,然后对这个被测系统的分析才能更加的准确,虽然controller附属这种指标的监控的功能,并非controller的核心功能,但是呢,他对我们的性能测试实施,提供了一种方便。

  上述只是对controller的功能做一个简单的概述,对它的总体功能有一个简单的了解,具体使用过程,待续...

性能测试-Loadrunner组件Controller一的更多相关文章

  1. 软件测试基础Ⅲ(osi7层协议,测试模型,LoadRunner组件,软件质量模型)

    osi7层开放式系统互连网络模型 1.物理层:主要定义物理设备标准,如网线的接口类型.光纤的接口类型.各种传输介质的传输速率等.它的主要作用是传输比特流(就是由1.0转化为电流强弱来进行传输,到达目的 ...

  2. 老李分享:Eclipse中开发性能测试loadrunner脚本

    老李分享:Eclipse中开发性能测试loadrunner脚本 前篇我分享了如何用loadrunner搭建javauser的性能测试脚本环境,本次我来告诉大家如何在eclipse开发loadrunne ...

  3. [性能测试] LoadRunner结果分析 – TPS(转)

    [性能测试] LoadRunner结果分析 – TPS 针对吞吐率和 TPS 的关系,这个在结果分析中如何使用,就个人经验和朋友讨论后,提出如下建议指导,欢迎同僚指正. 相关定义 响应时间 = 网络响 ...

  4. loadrunner性能测试巧匠训练营-controller

    1.设置集合点 现在脚本添加集合点的函数,集合点不能添加到事务里面,负责统计事务的时候会把时间计算进去 2.IP欺骗 前言 https://www.cnblogs.com/danbing/p/7459 ...

  5. Angular动态注册组件(controller,service...)

    使用angular的场景一般是应用类网站 这也意味着会有很多的controller,service,directive等等 正常情况下我们要把这些内容一次性下载并注册,由于文件较多,对首次加载的效率影 ...

  6. 2017年3月23日 坚果性能测试Loadrunner 免费公开课

    2017-03-23  坚果性能测试1群 607937164  我昨天看了一下飞扬老师的讲义PPT,真的很棒,BAT的专业性能老师果然是有好几把刷子,十分受教,相信周四的公开课一定会让大家收益颇丰的. ...

  7. LoadRunner性能测试-loadrunner工具破解

    Loadrunner11破解 破解工具下载:http://pan.baidu.com/disk/home?errno=0&errmsg=Auth%20Login%20Sucess&&a ...

  8. LoadRunner性能测试-LoadRunner工具安装

    Loadrunner11安装 1,在网上下载loadrunner11安装包 (百度可以下载安装包) 2,打开安装文件,点击setup.exe进行安装: 3,win10系统可能会出现如下问题: 提示管理 ...

  9. 性能测试Loadrunner与Mysql

    1.库文件下载地址:http://files.cnblogs.com/files/xiaoxitest/MySQL_LoadRunner_libraries.zip 分别库文件和代码添加到Loadru ...

随机推荐

  1. c++第二十六天

    p131~p135: 1.除非必要否则不使用后缀加加(减减),会有额外的性能开销. 2.混用解引用和递增运算符.*pointer++,后缀运算符优先于解引用运算符. 3.运算对象可按任意顺序求值,即使 ...

  2. 自动化运维工具SaltStack安装配置

    SaltStack是一种全新的基础设置管理方式,部署轻松,在几分钟内可运作起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯.通过部署SaltStack环境,我们可以在成千上万台服务 ...

  3. POJ 2253 Frogger(最短路&Floyd)题解

    题意:想给你公青蛙位置,再给你母青蛙位置,然后给你剩余位置,问你怎么走,公青蛙全力跳的的最远距离最小. 思路:这里不是求最短路径,而是要你找一条路,青蛙走这条路时,对他跳远要求最低.这个思想还是挺好迁 ...

  4. 使用Python登陆QQ邮箱发送垃圾邮件 简单实现

    参考:Python爱好者 知乎文章 需要做的是: 1.邮箱开启SMTP功能 2.获取授权码 上述两步百度都有. 源码: #!/usr/bin/env python from email.mime.te ...

  5. Gym 101334E Exploring Pyramids(dp+乘法原理)

    http://codeforces.com/gym/101334 题意: 给出一棵多叉树,每个结点的任意两个子节点都有左右之分.从根结点开始,每次尽量往左走,走不通了就回溯,把遇到的字母顺次记录下来, ...

  6. POJ 1047 Round and Round We Go

    https://vjudge.net/problem/POJ-1047 题意: 给一个整数,它的长度为n,从1开始一直到n和该整数相乘,判断每次结果是否和原来的整数是循环的. 思路: 大整数的乘法. ...

  7. append 注意事项

    >>> t1 = [, ] >>> t2 = t1.append() >>> t1 [, , ] >>> t2 None

  8. 递归--练习4--noi666放苹果

    递归--练习4--noi666放苹果 一.心得 写出状态后勇敢假设 二.题目 666:放苹果 总时间限制:  1000ms 内存限制:  65536kB 描述 把M个同样的苹果放在N个同样的盘子里,允 ...

  9. Jbuilder(3300✨)

    https://github.com/rails/jbuilder Jbuilder(3300✨) Jbuilder gives you a simple DSL for declaring JSON ...

  10. bzoj2049: [Sdoi2008]Cave 洞穴勘测 lct裸题

    题意:三种操作一种摧毁一条边,一种链接一条边,一种查询两个点是否联通 题解:lct的link和cut即可 /********************************************** ...