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命令对发出负载的计算机要求很低,既不会占用很 ...
随机推荐
- IPSecVPN介绍 & (Cisco Packet Tracer)IPSecVPN实验演示
一.基础知识 VPN(Virtual Private Network)虚拟专有网络,即虚拟专网.VPN可以实现在不安全的网络上,安全的传输数据,好像专网!VPN只是一个技术,使用PKI技术,来保证数据 ...
- MySQL手注之联合查询注入
了解联合查询注入之前,先要了解一下什么是union? union是用于合并两个sql查询结果的语句. 要使用union 必须有相同的列数 必须有两条以上的select语句组成 列的数据类型必须兼容 ...
- 新手C++ 练习项目--计算器
本篇博客用于记录我自己用C++实现的一个计算器,目标是完成加减乘除带括号的四则运算,并在后期用工厂设计模式加以优化. Part 1:calculate 1+1=2 实现这样的一个式子的计算,只需要用到 ...
- Java基础——克隆
1.克隆 假设有一个对象object1,在某处又需要一个跟object1一样的实例object2,这两个对象是绝对独立的,不会因为某一个修改另一个随之改变,这样,我们不能直接将对象objec1t的引用 ...
- Spring学习(八)--Spring的AOP
自工作以后身不由己,加班无数,996.995不可控制,高高立起的flag无法完成,无奈,随波逐流,尽力而已! 1.advice通知 advice主要描述Spring AOP 围绕奥方法调用而注入的切面 ...
- 【原创】经验分享:一个小小emoji尽然牵扯出来这么多东西?
前言 之前也分享过很多工作中踩坑的经验: 一个线上问题的思考:Eureka注册中心集群如何实现客户端请求负载及故障转移? [原创]经验分享:一个Content-Length引发的血案(almost.. ...
- 【记】《.net之美》之读书笔记(二) C#中的泛型
前言 上一篇读书笔记,很多小伙伴说这本书很不错,所以趁着国庆假期,继续我的读书之旅,来跟随书中作者一起温习并掌握第二章的内容吧. 一.理解泛型 1.为什么要使用泛型?-----通过使用泛型,可以极大地 ...
- Linux配置Docker
Centos6.8 1.查看自己的内核 [1].uname [root@host79 ~]# uname -r 2.6.32-642.el6.x86_64 [2].查看CentOS版本信息 CentO ...
- 初探电波钟(A Brief Introduction Of Radio Controlled Clock AND Its Appliciations)
文档标识符:Radio_Controlled_Clock_T-D-P11 作者:DLHC 最后修改日期:2020.10.12 本文链接:https://www.cnblogs.com/DLHC-TEC ...
- crontab极简教程
目录 crontab简介 crontab常用命令 示例 crontab简介 Linux crontab是用来定期执行程序的命令. 当安装完成操作系统之后,默认便会启动此任务调度命令. crontab常 ...