热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

软件测试轻松玩转LoadRunner性能测试(四)Controller控制器(干货干货绝对干货!)

我们在VuGen里编辑并编译好脚本,就可以加载到Controller里进行运行场景设计,设计完,就可以执行场景了。两种方式可以启动Controller:“开始”-“所有程序”-

我们在 VuGen 里编辑并编译好脚本,就可以加载到 Controller 里进行运行场景设计,设计完,就可以执行场景了。两种方式可以启动 Controller:

“开始” -> “所有程序” -> “HP LoadRunner” -> “Applications” -> “Controller”;

VuGen -> Tools -> Create Controller Scenario;

4.1 场景类型介绍

    4.1.1 手动测试场景:我们最常用的就是这种,更灵活,更容易接近用户真实的使用场景。其中又包括两种模式:用户组模式与百分比模式,在于计算虚拟用户的方式不同

    4.1.2 面向目标测试场景:相当于一个闭环回馈关系。首先定义要达到的目标,接着 LoadRunner 会自动基于该目标创建场景,在运行过程中, LoadRunner 会不断地比较结果和目标,以决定下一步如何执行。

4.2 场景设计

手动和面向目标两种场景设计的区别主要在 Schedule 参数设置。该设置主要用来设置用户的行为方式,包括按场景计划和按用户组计划两种。

4.2.1 手动场景 Schedule 配置

(海量免费测试资料加1140267353,群内还会有同行一起交流哦~)

1. 场景名称(Schedule Name);

2. 按场景计划(Schedule by Scenario)

    (1)Initialize 设置。
设置脚本运行前如何初始化每个虚拟用户。
默认选项也就是最常用的选项,在脚本运行前初始化所有虚拟用户。
(2)Start Vuser 设置。
设置虚拟用户加载的过程。
默认设置也就是最常用的设置,每隔一定的时间加载一定数目的虚拟用户。
(3)Duration 设置。
设置场景执行的时间。
一般情况下,在进行压力测试时,只需要测试15~30 min即可,但如果需要测可靠性和稳定性时,则需要持续运行 24h或 3*24h。
(4)Stop Vusers 设置。
设置场景执行完后虚拟用户释放的策略,前提是上一步设置了执行时间。
一般我们跟加载用户一样去逐步释放。

3. 按用户组计划(Schedule by Group)

比按场景计划设计场景的设置项中多出了 Start Group 选项卡,以组为单位进行计划,每个组都要设置自己的 Start Vusers、Duration 和 Stop Vusers。这种方式理论上看更加灵活,能够创建更符合实际应用中脚本与脚本之间的约束关系。比如一组用户执行后产生的数据记录为另一组用户的输入。但实际应用中还未使用该模式,后续会深入了解实践。

4. 场景开始时间(Scenario Start Time)

Without delay:场景立即开始,没有延迟时间

With a delay of HH:MM:SS:延迟指定的时间后才开始运行

At HH:MM:SS on:在指定的时间开始运行

5. 百分比模式:

百分比模式是先设定好虚拟用户总数,然后按百分比的形式对所有的虚拟用户进行分配。一般在运行综合业务时常用,所以需要在设计阶段确定业务的百分比模型:

(1)分析历史数据。

(2)参考其他同类产品。

(3)试上线运行。

4.2.2 面向目标场景 Schedule 配置

该配置在我目前的实际应用中,还未被使用过,所以后续实践过了再来阐述。

4.2.3 配置 View Script

这里需要注意的是,如果对脚本修改了,需要在 Controller 中重新加载,才能确保场景执行的是修改后的脚本。

4.2.4 配置 Load Generator

Load Generator 称为负载发生器,负责分发 Controller 发出的执行命令给其他的负载机器,建立起联系并强制执行。所以我们在实际应用中,可以通过 Controller 机器同时控制多个负载机器去模拟多用户场景。

添加负载机

在 Name 里输入目标负载机的 IP 地址,点击 OK。然后在 Load Generators 窗口选中对应的负载机,点击 Connect 按钮,测试是否能连接成功。Status 为 Ready,表示连接成功。

在使用负载机模拟多用户测试时,需要注意几个问题:

(1)计算需要负载机的台数;

(2)在 Controller 和 Load Generator 机器上都要启动 LoadRunner Agent Process;
原理:Controller 通过 LoadRunner Agent Process 去控制负载机运行;

4.3 场景执行

(海量免费测试资料加1140267353,群内还会有同行一起交流哦~)

4.3.1 场景控制

主要监控场景、Vuser 组和 Vuser 三个对象。

 

Vuser

运行中,你可以点击 Vusers... 按钮打开 Vuser 窗口,针对 Vuser 做一些操作。比如添加、查看日志等。

(1)右键菜单里的 Show Vuser Log, 可以查看指定 Vuser 的运行日志,方便检查出错日志。这里其实有一个建议,就是在脚本目录里有个 \res\log 目录,里面的日志就是对应的 Vuser 运行日志,可以直接用 Notepad++ 或 UltraEdit 打开,较为方便查错。

(2)Add Vuser:我们再场景运行过程中,会经常遇到,事先设定的 Vuser 数不够,需要增加的情况,这时候可以在 Vusers 窗口里点击“Add Vuser(s)...”按钮打开下面的对话框,设置 Quantity to add 和 Select Script,点击 OK button 返回到 Vusers 窗口,默认你新增的 Vuser都是 Down Status,所以你可以在筛选菜单里选择 Down Status 查看,选中适当数量的 Vusers,再点击 Run button,这些 Vusers 就会被启动并加入场景运行。

Add Vusers

4.3.2 场景执行期间查看场景

我们在场景运行过程,可以查看 Vuser 执行的情况,主要包括:

Vuser 运行状态:

 

Scenario Groups

状态含义表

事务详细信息:

(海量免费测试资料加1140267353,群内还会有同行一起交流哦~)

 

Scenario Status

 

场景状态含义表

点击 Passed Transactions or Failed Transaction 的数字或后面的“显示快照”按钮,会弹出下面的对话框:

TPS:表示每秒的事务数

Passed:表示运行已通过的事务数

Failed:表示运行已失败的事务数

Stopped:表示运行已停止的事务数

 

Transactions

查看“输出”窗口

点击 Errors 的数字或后面的“显示快照”按钮,会弹出下面的窗口,默认显示的是错误信息。

Output

在实际执行过程中,经常会使用到这个功能,用于分析出错原因:

(1)判断是由于脚本编写引起的错误还是性能测试本身引起的错误;

(2)可以根据具体的Error Code去查找为什么会抛出这个错误;

4.4 场景监视

该部分并入软件测试轻松玩转-LoadRunner性能测试(九)的学习中。


推荐阅读
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • iOS Swift中如何实现自动登录?
    本文介绍了在iOS Swift中如何实现自动登录的方法,包括使用故事板、SWRevealViewController等技术,以及解决用户注销后重新登录自动跳转到主页的问题。 ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
  • ①页面初始化----------收到客户端的请求,产生相应页面的Page对象,通过Page_Init事件进行page对象及其控件的初始化.②加载视图状态-------ViewSta ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • 如何搭建Java开发环境并开发WinCE项目
    本文介绍了如何搭建Java开发环境并开发WinCE项目,包括搭建开发环境的步骤和获取SDK的几种方式。同时还解答了一些关于WinCE开发的常见问题。通过阅读本文,您将了解如何使用Java进行嵌入式开发,并能够顺利开发WinCE应用程序。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • vb.net不用多线程如何同时运行两个过程?不用多线程?即使用多线程,也不会是“同时”执行,题主只要略懂一些计算机编译原理就能明白了。不用多线程更不可能让两个过程同步执行了。不过可 ... [详细]
  • TiDB | TiDB在5A级物流企业核心系统的应用与实践
    TiDB在5A级物流企业核心系统的应用与实践前言一、业务背景科捷物流概况神州金库简介二、现状与挑战神州金库现有技术体系业务挑战应对方案三、TiDB解决方案测试迁移收益问题四、说在最 ... [详细]
author-avatar
手机用户2502858405
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有