测试步骤之场景设计(Controller)

进入手工场景

准备好脚本后就可以进行场景设计和执行场景了,从VuGen中进入,见下图:

进入后第一个为目标场景,选择第二个更灵活的手工场景,我的目标人数200,第三个为结果保存地址,最好放到空间比较大的盘中,其他默认即可。

确认后进入场景设计页,也可以在【HP LoadRunner】—【Applications】—【Controller】单独进入。选择第一个手工场景,选择左边你需要运行的脚本,点击【Add】添加至场景脚本中,点击确定就ok了,后面再设置虚拟用户即可。

成功进入后的场景如下,左上是脚本组,也就是虚拟用户需要运行的脚本,可以设置多个脚本;右上是服务水平协议,暂时不用管;左下是场景计划,用于设置场景运行时间和用户加载退出方式等,右下是交互计划图,看起来很直观,跟你的设置有关。

进入目标场景

一般手工场景能灵活地按照需求来设计场景模型,目标场景是测试性能是否能达到预期的目标。场景的设计大同小异,这里以手工场景为例。

可以看出,两种场景很相同,只是Schedule配置略有差别。

目标场景的五种目标:用户数(Virtual Users)、点击率(Hits per Second)、每秒事物数(Transaction per Second)、事物响应时间(Transaction Response Time)和每分钟处理的页面数(Pages per Minute)。

点击右下方的【Edit Schedule Goal】,进入设置界面。

知道怎么创建场景了吧,好的,稍等下,我们先做点准备工作。

IP欺骗技术

本地设置静态IP

由于是并发用户测试,我了解到LR中,在场景运行时,每台负载发生器计算机上的Vuser都使用其计算机固定的IP地址,这样不能模拟用户使用不同计算机的真实情况。

于是,我们得启用它自带的IP欺骗功能,需要注意IP Spoofer要在连接Load Generator之前启用,并且各负载发生器需要是固定IP,不要使用动态IP(DHCP)。如下图:

设置静态IP的流程我就不多说了,网上一大把,Dos命令下,ipconfig  /all可以查看当前的IP,网关和DNS服务器。照着手动修改,不然会断网的。当然前提是你之前也连网了的。

IP Wizard设置

设置好静态IP后,接着再设置IP Spoofer,选择【开始】—【所以程序】—【HP LoadRunner】—【Tools】—【IP Wizard

】,如下图所示

第一个是创建新的设置,以前创建过的选择第二个导入,第三个是释放IP,一般测试完后,需要释放你添加的IP,不然占用多了IP,有时会与别人冲突的。

点击【下一步】,如果计算机有多个网卡,要选择用于这些地址的网卡,再点击【下一步】,在弹出的对话框中设置服务器的IP地址,也就是脚本中请求的地址。

注:服务器与负载机在同一网段的不用设置。

点击【下一步】后,如下图,再点击图中的【Add按钮】,添加IP。

于是到了地址添加界面,下图A,B,C类地址是根据你虚拟用户数来选择的,C类地址只能容纳255个主机,超过这个数就选择其他的两类地址。

注:B类地址范围:172.16.0.0—172.31.255.255 ;A类地址范围:10.0.0.0-10.255.255.255

From ip是起始IP,number to add是增加多少,网关不用管,设置好后,点击【OK】

这就是刚生成的地址,错了就选中点击【Remove】,再重新生成。

如果生成过程中有下面提示,是指下面地址已经有人使用了,确定后,再重复添加其他地址,这时的From ip就是你最后的那个地址,缺少多少个就添加多少个。

最后我生成了200个IP,点击【完成】

出现最后确定页,点击【OK】

下面就Dos黑窗口,呼呼的往下拉,重启计算机,网络协议才生效,使用ipconfig命令就可以查看是否添加成功了。如下图

启用IP欺骗

添加成功后,如下步骤

一,打开conreoller,点击【Scenario】—选【Enable ip spoofer】(允许使用ip欺骗)。

二,然后在conreoller中,点击【tools】—选【expert mode】。

三,最后再点击【tools】—【options】—【General】中关于线程还是进程的设置,这个选项一定要与当前场景的模式相匹配,也就是说使用本地虚拟IP测试时需要选择线程方式,使用负载生成器使用虚拟Ip测试时需要选中进程方式。我的是本地,选的Process。

查看Vusers IP

怎么查看这些IP呢,Controller的运行页,运行场景(Run),在Vusers中,状态列中右键可以查看Vuser日志,弹出的提示框头几行就有显示当前使用的IP.

注:不得不说我搞了很久还是没实现这个,原因可能是服务器和客户机不在同一个网段,输入了服务器IP,但是LR的IP向导却没在windows的Temp目录下生成脚本(bat文件),导致不能更新服务器路由表,然后查看Vuser日志也就没显示IP……多次查询资料后又发现win7不支持ip欺骗,即使启用成功,日志显示的就算是不同IP,但抓包会发现请求依旧为同一个固定IP。

添加Load Generators

说到这里,我再提一下,怎么自行添加负载发生器(Load Generators),如下图所示

一般安装好loadrunner后,都会有localhost这个负载机,点击【Load Generators】后如下

点击【Add】如下,输入Name,选择系统,点击【Ok】即可,注:Name不要随便输入,一般是localhost或者负载机IP地址;Platform指的是负载机的系统。

新增负载器后,测试链接,点击【Connect】,如下

成功后就会显示状态为Ready,我这是本地使用了IP欺骗的情况,如下图

远程使用其他负载机时,就输入其他负载机的IP即可,记住远程连接之前要在其他负载机【开始】—【所以程序】—【HP LoadRunner】—【Advanced Setting】—【Loadrunner Agaent Process】启动LR agaent代理。

场景的集合点设置

登录模块需要测试并发用户,于是前面我在脚本中插入了集合点,需要在运行场景前进行设置,当用户输入验证码后,全部用户到达集合点时,释放用户并进行登录请求,就模拟了用户同时登录的情况。

如下图

依次点击【Scenario】—【Rendezvous…】

点击【Policy】进行设置,第一个指所有的用户达到集合点才释放,第二个指所有运行的用户达到集合点就释放,第三个指有X个用户数量达到集合点就释放,最后一个是设置等待时间的,如30秒,30秒内用户达到指定的数量,就开始执行场景,30秒内为达到用户指定的数量,也开始执行场景,不再等待。一般选择第二个就行,点击【ok】

运行场景时,可以在上个图片中,启用或关闭集合点,根据情况也可以手动点击【Release】按钮释放集合点。

场景Schdule配置

Schedule基础配置

手动场景Schedule配置,位置如下,左上的场景组可根据需求自行设置

Schedule name 场景名称,1场景,2组场景(多个脚本可选择此模式),3真实环境模式(较灵活,很常用)4基本模式,上面的四个按钮暂时不用管,如图默认即可

Schedule目标配置

下面接着是目标设置,双击【Initialize】行,进入初始化用户设置,一般选择第三个脚本运行前初始化所有用户,点击【ok】

接着双击【Start vusers】行,进入开始用户设置,设置用户数200,每15秒10用户,点击【ok】

接着双击【Durations】行,进入运行时间设置,单交易场景一般运行10-15分钟即可,点击【ok】

注:场景运行时,设置了运行时间,就会忽略脚本迭代的次数,简单点说就是时间没到,脚本就一直重复运行。
最后双击【Stop Vuser】行,进入用户停止设置,设置和Start Vusers一样即可,点击【ok】

以上运行的场景大概设置完了,可以根据自身需求进行更改。

场景图简介

下面说说右边的场景图,横轴纵轴的意义就不说了吧,左斜线代表用户开始运行,中间就是正在运行的用户,右边当然就是退出的用户了,上面的几个按钮自行研究。

注:使用笔那个按钮可以自行拖动设置,+号-号按钮就是放大缩小,很好玩的,场景运行时,该页的用户图也会动态改变的。

场景运行页

设置好了,开始跑吧,点击【Run】按钮,进入运行场景页。

点击后下图所示,左上是用户状态表,状态:关闭(Down),挂起(Pending),初始化(Init),就绪(Ready),正在运行(Run),集合点(Rendezvous),完成并通过(Pass),完成但失败(Failed),错误(Error),逐步退出(GradualExiting),退出(Exiting),停止(Stopped)。

右上可查看事务,用户通过或失败信息。

中间是各种场景监视图表,双击可切换,单击放大。

最下方显示的是图表各参数的数据,可查看最大、最小,、平均值。

Windows资源监视器设置

默认情况下,windows监视器是没有数据的,需要我们自行添加。

右键windows资源图—【Add
Measurements】—点击【Add】—输入Name—点击【OK】

Platform选择对应的负载机系统。(注:如果需要监视其他负载机或服务器,Name输入对应IP即可,监视本地时,输入localhost即可。)

下图是添加机器后的设置,下面的资源度量指标,可以根据需要自行设置,点击【OK】

稍等片刻后,下方就是运行时的windows资源度量指标,用来辅助分析数据和性能瓶颈,服务器资源的监控类似,但Linux类的一般都使用第三方监控工具。

运行场景Start Scenario

所有的设置到这里基本完成,点击【Start
Scenario】,开始Run吧。

耐心等待时,也可以查看运行时的各种图表,Vuser按钮中可查看单个用户的日志(show user log)很有用,前提是在RuntimeSetting中开启扩展日志功能。。

添加用户

在负载过程中如果发现系统压力比较小的话,可以自行增加用户数,点击【Vusers】—【Add Vusers】—输入add数—确认脚本—点击【OK】。

见下图说明,注:新增加的用户处于“Down”状态,需要点击Vuser图中的“Run”按钮,才能让用户运行。

场景运行的结果会自动保存,退出的时候注意存储位置,以免下次运行时把本次的结果覆盖了。

loadrunner11的移动端性能测试之场景设计的更多相关文章

  1. loadrunner11的移动端性能测试之脚本优化

    测试步骤之脚本优化(Script) 看到这里,是不是疑惑录制好的脚本还需要优化吗,答案是肯定的. 优化概要 脚本优化包括插入注释(Comment),插入事务(Transaction),插入检查点(Ch ...

  2. loadrunner11的移动端性能测试之脚本录制

    以前使用LR11录制过一个app的登录操作,这里记录一下 测试准备 硬件要求 1,  负载测试机一台(内存8G以上,cpu 1.5GHZ以上,存储空间20G以上)或两台以上(控制机和多个负载机). 2 ...

  3. loadrunner11的移动端性能测试之结果分析

    测试步骤之结果分析器(Analysis) 进入Analysis 当场景停止运行后,可从Controller中进入.点击[Results]—[Analysis Results]见下图: 若想打开一个已保 ...

  4. vue移动端金融UI组件库滴滴MandMobile面向金融场景设计附功能思维导图

    vue移动端金融UI组件库滴滴MandMobile面向金融场景设计附功能思维导图 Mand Mobile是面向金融场景设计的移动端组件库,基于Vue.js实现.目前已实际应用于滴滴四大金融业务板块的1 ...

  5. loadrunner 场景设计-学习笔记之性能误区

    场景设计-学习笔记之性能误区 by:授客 QQ:1033553122 场景假设: 每个事务仅包含一次请求,执行10000个并发用户数 性能误区: 每秒并发用户数=每秒向服务器提交请求数 详细解答: 每 ...

  6. 性能测试之Jmeter中场景设置与启动方式

    Jmeter场景设置与启动方式 性能测试场景是用来模拟模拟真实用户操作的工作单元,所以场景设计一定要切合用户的操作逻辑,jmeter主要是通过线程组配合其他组件来一起完成场景的设置. 线程组设置 Jm ...

  7. 微信小程序性能测试之jmeter踩坑秘籍(前言)

    最近要做个微信小程序的性能压测,虽然之前只做过web端的,但想一想都是压后端的接口,所以果断答应了下来,之前对jmeter都是小打小闹,所以趁着这次机会好好摆弄摆弄. ---------------- ...

  8. Web服务端性能提升实践

    随着互联网的不断发展,日常生活中越来越多的需求通过网络来实现,从衣食住行到金融教育,从口袋到身份,人们无时无刻不依赖着网络,而且越来越多的人通过网络来完成自己的需求. 作为直接面对来自客户请求的Web ...

  9. 性能测试之JMeter远程模式

    性能测试之JMeter远程模式 事实上,你的JMeter客户端机器是不能表现出完美的压力请求,来模拟足够多的用户或由于网络限制去向服务施加压力,一种解决方法是通过一个JMeter去控制多个/远程JMe ...

随机推荐

  1. 详解MathType中如何批量修改公式字体和大小

    MathType应用在论文中时,有时会因为排版问题批量修改公式字体和大小,一个一个的修改不仅费时费力,还容易出现错误,本教程将详解如何在MathType公式编辑器中批量修改公式字体和大小. MathT ...

  2. JQuery上传插件Uploadify使用详解 asp.net版

    先来一个实例 Uploadify插件是JQuery的一个文件支持多文件上传的上传插件,ajax异步上传,实现的效果非常不错,带进度显示.不过官方提供的实例时php版本的,本文将详细介绍Uploadif ...

  3. OpenCV学习:图像的载入和显示

    一.使用IplImage结构读取并显示图像文件: 运行结果: 二.使用Mat类读取并显示图像文件: 使用 Mat 类,内存管理变得简单,不再像使用 IplImage 那样需要自己申请和释放内存,而且一 ...

  4. 【SJSB】 android-javascript开发框架

    这是一个本人开发的android壳,作用就是为html5开发提供各种接口以调用native. 只是第一个版本,随笔以纪念.详细的说明和api都在 项目的readme中. 项目地址: https://g ...

  5. Linux 同步方法剖析--内核原子,自旋锁和相互排斥锁

    在学习 Linux® 的过程中,您或许接触过并发(concurrency).临界段(critical section)和锁定,可是怎样在内核中使用这些概念呢?本文讨论了 2.6 版内核中可用的锁定机制 ...

  6. shell基础(八)-循环语句

    国庆过后:感觉有点慵懒些了:接着上篇:我们继续来学习循环语句. 一. for循环 与其他编程语言类似,Shell支持for循环. for循环一般格式为: for 变量 in 列表 do command ...

  7. eclipse不能自动编译XX.java为XX.classs

    问题描述:eclipse不能自动编译XX.java为XX.classs 原因:今天下午写代码,因为需要引入jstl包,引入后发现原来项目中已经引入了,然后我又把包删除了,忘记删除java build ...

  8. Qt选择文件对话框-中文路径-转std::string

    #include <QFileDialog>#pragma execution_character_set("utf-8") QString path = QFileD ...

  9. ajax返回值传给js全局变量

    1. $.ajaxSetup({ async : false //设置ajax为同步方式,异步方式的话在赋值时数据还未提取出来 });var t = ""; var enginee ...

  10. 如何提高AJAX客户端响应速度

    AJAX的出现极大的改变了Web应用客户端的操作模式,它使的用户可以在全心工作时不必频繁的忍受那令人厌恶的页面刷新.理论上AJAX技术在很大的程度上可以减少用户操作的等待时间,同时节约网络上的数据流量 ...