LoadRunner11web压力测试录制、回放、负载前的准备
以前都是利用LoadRunner进行接口测试、自动化测试、压力测试。最近要对web系统做录制压测,因此花费了很长时间来研究这方面的工作。以下是我web端录制、压测过程的流程以及遇到的坑。
一、启动Virtual User Generator 进行系统的录制,在这里会遇到录制时间为0和打不开浏览器的问题。我用的是LoadRunner11,网上的办法都试了,勉强开机第一次能录制,要想再次录制只能开机重启,这个问题搞了三天没有解决,目前尝试其他解决办法,如正在下载LoadRunner12或直接写脚本测某一功能。在这里还是把网上说的解决录制时间为0和打不开浏览器的办法贴出来吧!录制时间为0解决办法:“我的电脑”右键"属性"--点击"高级系统设置"--高级--设置--数据执行保护 -- 点击"数据执行保护",通过绝对路径将VGen和IE执行程序都添加进去,然后重启电脑;录制打不开浏览器解决办法:1、打开IE浏览器,点击"设置"选择"Internet"选项,点击"程序",将IE设置为默认浏览器。点击“高级”,取消"其余启用第三方浏览器扩展*",然后应用、确定,重启浏览器。2、打开VGen点击"Start Record" -- Recoding Options -- Network -- Port Mapping -- Capture level 选择 “Socket level and WinlNet level data”。3、在某次录制前打开VGen点击"Vuser"--"Run-time Settings"--Browser -- Brower Emulation -- Browser properties--点击"Change"--选择"Use browser"-- Browser version选择"8.0",Platform选择“Windows7”(注:我用的电脑系统为win7所以选择win7)4、退出杀毒软件。5、关闭防火墙。6、打开VGenn点击"Tools"--Recording Options -- General -- Script -- Scripting Options -- 将"Track processes created as COM local servers"勾选。7、打开VGen,点击"Tools"--Recording Options -- HTTP Properties -- Correlation -- 将Enable correlation during recording下的选项都取消,有需要再勾选。
二、系统录制完后进行回放,VGen中点击Tasks--选择左边目录下的2.Replay--Verify Replay--点击Start Replay进行回放。
在这里如果回放不成功,点击"Show/Hide Output window",下面会跳出控制台选项,点击"Correlation Results"进行手工关联。关联后再次回放如果报"35061:超出最 大字节",可以在关联函数中添加“NotFound = warning”.
回放时如果想看图片的展示,可以在VGen中点击"Tools"--General Options -- Display -- 勾选上"Show run-time viewer during rej"和"Auto arrange windo"。这样在回放脚本时,也能看到之前录制的页面快照了。
三、回放脚本没问题的话可以进行内容检查的设置、错误处理函数的设置
先说内容检查,VGen中点击“Vuser”-- Run-time Settings -- Internet Protocol -- Preferences -- Checks --勾选“Enable Image and text check”。然后点击“Tasks”--Enhancements--Content Checks进行页面内容的检查设置。
接着说错误处理函数的设置,在脚本中某些函数报错不影响大体流程,而有的函数不允许报错。在这里可以引用错误处理函数LR_ON_ERROR_NO_OPTIONS(0)和LR_ON_ERROR_CONTINUE(1)。先在VGen中点击Vuser-- Run-time Setting -- General -- Miscellaneous -- Error Handing -- 勾选Continue on error。解释下LR_ON_ERROR_NO_OPTIONS(0)和LR_ON_ERROR_CONTINUE(1),LR_ON_ERROR_NO_OPTIONS(0)是取消出错继续执行设置,LR_ON_ERROR_CON TINUE(1)是发生错误继续运行脚本。因此在VGen中设置之后,可以在不重要函数前添加LR_ON_ERROR_NO_OPTIONS(0),在重要的函数前添加LR_ON_ERROR_CONTINUE(1)。该场景适用于时间较长的稳定性压力测试。
四、脚本调试的差不多了,就可以进行负载前的准备了。要考虑到集合点的设置、网络欺骗。
先说集合点,在某一函数前添加集合点,设置数量。在负载运行后,到达设置的数量后, 一同运行函数。 集合点相当于特殊情况的并发测试。Controllers中设置集合点:Scenario -- Rendezvous(如果按钮是灰色的,说明在VGen中设置的代码没有保存) -- Policy(集合点策略),在集合点策略中进行设置。
五、说完了集合点,咱们再说网络欺骗。因为有的服务器只允许一个IP登录一个用户、 某些服务使用了负载均衡,使用同一个IP不能测出系统的实际性能、一个IP登录多个用户或一个IP频繁操作导致服务器拒绝服务,因此这里用到了网络欺骗。通过虚拟大量的IP地址进行并发测试。怎样配置网络欺骗呢?1、客户端进行cmd -- ipconfig /all ,获取IP地址、网关、子网掩码、DNS服务器;2、本地电脑配置为静态获取IP;3、点击电脑"win"键,选择HP LoadRunner -- Tools -- IP Wizard -- 'IP Wizard - Step 1 of 4 ' -- Create new setting -- 网络类型选择本机的网络连接方式 -- 点击add..........关于A、B、C类IP地址区别见下:
A类IP地址 ,
一个A类IP地址由1个字节的网络地址和3个字节主机地址组成,网络地址的最高位必须是”0”,地址范围从1.0.0.0到126.0.0.0。可用的A类网络有126个,每个网络能容納1一亿多个主机
B类IP地址
一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是”10”,地址范围从128.0.0.0到191.255.255.255.可用的B类网络有16,382个,每个网络能容纳6万多个主机。
C类IP地址
一个C类地址是由3个字节的网络地址和1个字节的主机地址组成,网络地址的最高位必须是”110”.范围从192.0.0.0--223.255.255.255 C类网络达209万余个,每个网络能容纳254个主机
IP欺骗功能上应该注意事项:
1、虚拟IP是同一个Generator上的多个IP,这种分配过程由controller自行来进行
2、对于同一个Generator,你模拟的用户数量多于IP数量时,将会发生IP重复
3、对于同一个Generator,以其某一个IP添加到Generator中即可,不需要用不同的IP添加多次
4、IP欺骗设置前主机IP为固定的IP,测试完成之后要释放掉IP
IP欺骗验证
1、Vgen脚本里的IP地址必须是服务器的ip地址
2、Vgen脚本里被测的函数里需要加上事务
3、Vgen脚本中 选择Vuser--'Run-time Settings'-- General -- Miscellaneous -- Multihreading -- 勾选'Run Vuser as a thread'
4、Cotroller中,Scenario -- 确保选上"Enable IP Spoofer"
5、Cotroller中,Tools -- Options -- General -- Multiple IP address mode -- IP address allocation per thread(因为在Vgen中选择了thread,因此在Cotroller中也要选择thread)
至此,负载前的准备工作差不多了。下一篇文章将以目标场景、手工场景的区别来阐述相关知识点。
LoadRunner11web压力测试录制、回放、负载前的准备的更多相关文章
- loadrunner笔记(一):下载、安装loadrunner和负载压力测试概念说明
(一) 下载和安装 下载:(没账号的话得先注册一个账号) https://software.microfocus.com/en-us/products/loadrunner-load-testin ...
- LoadRunner压力测试实例
1 LoadRunner 概要介绍... 2 .项目背景介绍... 5 .使用LoadRunner进行负载/ 实施测试... 16 6.1 Memory相关... 22 6.2 Processor相关 ...
- jmeter 压力测试
转自: https://blog.csdn.net/cbzcbzcbzcbz/article/details/78023327 Jmeter压力测试简单教程(包括服务器状态监控) 2017年09月18 ...
- Jmeter压力测试简单教程(包括服务器状态监控)
前段时间公司需要对服务器进行压力测试,包括登录前的页面和登录后的页面,主要目的是测试负载均衡的实现效果.不知道是不是因为Jmeter不如loadRunner火爆还是什么,网上关于Jmeter的资料有很 ...
- JMeter压力测试及服务器状态监控教程
转载自:https://blog.csdn.net/cbzcbzcbzcbz/article/details/78023327 前段时间公司需要对服务器进行压力测试,包括登录前的页面和登录后的页面,主 ...
- 2. Jmeter压力测试简单教程(包括服务器状态监控) (转)
转自:https://blog.csdn.net/cbzcbzcbzcbz/article/details/78023327 前段时间公司需要对服务器进行压力测试,包括登录前的页面和登录后的页面,主要 ...
- jmeter压力测试的简单实例+badboy脚本录制(一个简单的网页用户登录测试的结果)
JMeter的安装:在网上下载,在下载后的zip解压后,在bin目录下找到JMeter.bat文件,双击就可以运行JMeter. http://jmeter.apache.org/ 在使用jmeter ...
- jmeter压力测试的简单实例+badboy脚本录制
JMeter的安装:在网上下载,在下载后的zip解压后,在bin目录下找到JMeter.bat文件,双击就可以运行JMeter. http://jmeter.apache.org/ 在使用jmeter ...
- apache-ab并发负载压力测试(转)
ab命令原理 Apache的ab命令模拟多线程并发请求,测试服务器负载压力,也可以测试nginx.lighthttp.IIS等其它Web服务器的压力. ab命令对发出负载的计算机要求很低,既不会占用很 ...
随机推荐
- DC4靶机
DC-4靶机渗透 扫描内网机器,看到143是开启的,那么ok了,确定了目标主机的地址. 对其进行进一步的端口扫描,80,22端口都是开放的. 访问具体网页,进行爆破,分别为admin,happy. 里 ...
- spark源码分析, 任务提交及序列化
简易基本流程图如下 1. org.apache.spark.scheduler.DAGScheduler#submitMissingTasks 2. => org.apache.spark.sc ...
- Redis小记(一)
1.redis的数据结构 (1)动态字符串(SDS) redis自身构建了一个简单动态字符串的抽象类型,SDS,在redis里,包含字符串的键值对在底层都是由SDS来实现的. 除了用来保存数据库的字符 ...
- ApiView 的使用
1.APIview使用. https://www.cnblogs.com/xiaonq/p/10124104.html ModelVIewSet 是对 APIView 封装 ModelSerial ...
- Python练习题 010:分解质因数
[Python练习题 010]将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. -------------------------------------------------- ...
- 【Linux】一些文件限制配置
linux资源限制配置文件是/etc/security/limits.conf:限制用户进程的数量对于linux系统的稳定性非常重要. limits.conf文件限制着用户可以使用的最大文件数,最大线 ...
- 实验 4:Open vSwitch 实验——Mininet 中使用 OVS 命令
一.安装目的 Mininet 安装之后,会连带安装 Open vSwitch,可以直接通过 Python 脚本调用Open vSwitch 命令,从而直接控制 Open vSwitch,通过实验了解调 ...
- vue项目的elementui的form表单label的对齐方式和 el-date-picker 的长度设置
1.先按照官网的 :label-position 属性玩了一下毫无效果:发现单独使用这个属性是无效的,必须和 label-width 属性一起使用才生效: 如: <el-form :mod ...
- 带UI 的小初高数学学习系统 —结对编程项目总结
一. 项目综述 本系统是基于QT Creator 4.3.0开发环境,开发语言C++,能够实现用户注册,发送短信验证码,用户登陆,用户选择题目类型和数量,显示用户本次答题基本功能.支持对用户账号查重, ...
- 如何部署MongoDB并开启远程访问Docker版
Docker安装 安装方法 pull最新版本mongo docker pull mongo 运行 --name设置名称 -v挂载数据 -p端口映射 -d后台运行 mkdir ~/mongo #随便啦自 ...