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. SQL学习笔记四(补充-2)之MySQL多表查询

    阅读目录 一 介绍 二 多表连接查询 三 符合条件连接查询 四 子查询 五 综合练习 一 介绍 本节主题 多表连接查询 复合条件连接查询 子查询 准备表 #建表 create table depart ...

  2. 关于Redis命令keys在性能方面的说明

    redis的keys命令类似于Mysql的like命令,无非就是模糊匹配相近的字符数据. KEYS 的速度非常快,但在一个大的数据库中使用它仍然可能造成性能问题,如果你需要从一个数据集中查找特定的 k ...

  3. mysql日期和JDBC查询出来的结果相差8小时

    数据库时间:2017-11-08 16:30:00 查询出来: 2017-11-09 00:30:00 问题:数据库时区,和JDBC连接时区设置问题. set global time_zone = ' ...

  4. 20145221 《Java程序设计》第九周学习总结

    20145221 <Java程序设计>第九周学习总结 教材学习内容总结 整合数据库 JDBC入门 JDBC是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商则对接口进行 ...

  5. 【转】Linux系统平均负载3个数字的含义

    文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作. 越来越多人开始接触Linux操作系统,从VPS到无线路由的刷机系统(如OpenWR ...

  6. 一种不太合规的PreparedStatement使用方式

    这是一种不太合规的PreparedStatement调用使用方式 , 没有让Dao单独执行它单纯的任务. AccountDao.java package heartl_jdbc; /** * 银行操作 ...

  7. Gym 101334F Feel Good

    http://codeforces.com/gym/101334 题意:给定一串数,求一个区间,使得该区间的所有数之和乘以该区间内最小的数的乘积最大. 思路:先预处理一下,计算出前缀和. 我们可以把每 ...

  8. python swap

    swap里面的a,b 不会影响函数作用域外面的变量 java也不可以的吧:python里面没有指针,你可以认为所有的东西都是指向的内容,但是不要试图去改变指针的值 其实我觉得所有的对象都是不可变对象, ...

  9. PHPUnit简介及使用(thinkphp5的单元测试安装及使用)

    PHPUnit简介及使用(thinkphp5的单元测试安装及使用) 一.总结 一句话总结:直接google这个phpunit(how to use phpunit),然后去官网看使用样例和手册,那些英 ...

  10. 6-9 😢 5小时的debug: 从rails 命令运行超慢开始->删除rails->删除ruby->删除rvm->安装上rvm->安装上ruby

    上午,莫名其妙的rails app不能用了,rails -v一查发现不存在.ruby -v发现是2.0的版本.很着急上火,因为很少使用过rvm这个ruby版本控制器.所以照官网文档.从新安装ruby, ...