1. 引言

1.1. 简介

loadrunner是一种预测系统行为和性能的负载测试工具,它可以轻松创建虚拟用户、创建真实的负载、定位性能问题、重复测试保证系统的高性能

  globa-100的注册码:AEAMAUIK-YAFEKEKJJKEEA-BCJGI

  web-10000的注册码:AEABEXFR-YTIEKEKJJMFKEKEKWBRAUNQJU-KBYGB

  对于mms协议:
  mms-1000:AEACFSJI-YASEKJJKEAHJD-BCLBR
  mms-6.5w的注册码AEACFSJI-YJKJKJJKEJIJD-BCLBR

1.2. 组成

1.1.1. Vuser Generator

c语言脚本开发的

1.1.2. Controller

指挥官的作用,控制执行场景

1.1.3. Analysis

收集测试数据,进行结果分析的

1.3. 文档说明

本博客是结合我所在公司性能测试过程中使用loadrunner工具,总结出的经验文档,包括了安装、编写脚本、运行场景3个过程中的注意事项

2. 注意事项

2.1. 安装过程总结

2.1.1. 安装成功loadrunner后启动录制脚本,浏览器总是出不来

这个问题为什么我放到文档第一个,因为这个问题是几乎所有的使用loadrunner的新人都是会碰到的,这个也是一个老生长谈的问题了,所以我把它放到了第一位

出现这个问题的原因,无非就是你的浏览器启动了第三方插件或者PC机有些杀毒软件没有关闭,比如360。所以为了避免出现这个问题,我推荐安装一个VMware Workstation虚拟机中安装XP系统,然后在XP中安装loadrunner,这个可以保证每次使用loadrunner的时候避免因为环境问题,导致碰到困难

2.1.2. 安装出现Microsoft Visual c++2005 sp1安装失败?

1、进入loadrunner-11\Additional Components\IDE Add-Ins\MS Visual Studio .NET

2、安装:LRVS2005IDEAddInSetup.exe

3、再安装loadrunner

2.1.3. 安装出现“计算机缺少vc2005_sp1_with_atl_fix_redist”

在lr安装包里面下“loadrunner-11\lrunner\En\prerequisites\vc2005_sp1_redist”有 vcredist_x86.exe 安装下就可以了

2.2. 编写脚本过程总结

2.2.1. 如何使用录制

1. 在本机的所有程序中打开Vuser Generator,如下图

2. 如下图,在弹出的窗口中,点击New Script按钮

3. 如下图,在弹出的窗口中,选择HTTP/HTML协议后点击Create按钮

4. 如下图,在弹出的窗口选择浏览器和url地址后,点击OK按钮,然后等待弹出浏览器并打开url地址后,就可以进行脚本的录制了

5. 如下图,在进行操作完毕后,点击停止按钮,即可完成录制,loadrunner会自动生成c语言脚本

6. 如下图,即为loadrunner录制的脚本截图,录制的脚本自动在Action()中显示,我们可以参考录制脚本中客户端和服务器之间的数据交互,自己重新编写测试脚本

2.2.2. 事物

为什么用事物

事物Transaction,一般我们用来衡量一个action所消耗的时间,通过它,可以知道一个操作的消耗相应时间,它是作为度量系统性能的唯一指标

如何使用事物

在需要插入事物的请求前面使用快捷键Ctrl+T,然后填写事物名称,点击确定即可完成事物的插入

使用的注意点

1.为事物取名要有意义,比如登入事物,我们一般就用login

2.建议是一个请求设定为一个事物,这样我们分析结果的时候可以更好定位哪个环节的事物耗时多,需要性能调优

3.设置事物后,一定要判断事物成功和失败的条件,既获取请求的返回值是否是预期的结果。是,则事物PASS,否则,事物FAIL

2.2.3. 脚本参数化

为什么要参数化

为了让脚本有更好的适应环境的变化,比如userName、password的变化,于是我们就把userName、password设定为“参数”,然后“参数”通过读取txt等方式获取预制数据,提高脚本适应能力

如何参数化

使用鼠标选择需要作为“参数”的字符串,鼠标右键“Replace with a parameter”,然后在弹出窗口填写参数名、选择类型,再点击【Properties】按钮,在弹出框中设置参数内容和取值方式,即可完成参数化

参数化注意点

1.完成某个字符串参数化后,在调试脚本的过程中,建议直接用快捷键Ctrl+L,打开参数列表

2.在为运行场景的时候,我们一般希望每个用户都是用不同的参数数据,所以在参数列表中我们会预制足够多的数据,并且一般我们会设定读取参数的方式为

Ps:这个可以根据具体情况,自定义

3.loadrunner对于参数的引用是用“{}”作为表示的,所以引用参数的话,不要忘记“{}”

2.2.4. 关联

为什么要关联

对于脚本,很多时候,我们处理数据的时候,是需要对服务端返回的数据进行解析,而服务端返回的数据如果每次都是变化的话,每次我们都是需要动态获取,这个时候就需要关联。简单来说,就是处理服务端返回的动态数据

如何关联

1.录制2次脚本

2.通过loadrunner自带的工具WinDiff对比2次脚本的不同,如下图

3.因为2次脚本操作步骤一样,不同的内容可以根据录制业务分析出得出需要关联地方,如下图1,黄色高亮的地方就是2个相同操作步骤,但是录制脚本对比不同的地方,这个时候我们只要在操作网页中找到出现不同点的html源码处,如下图2;或者也是可以启用Run-time Settrings中所有log设置,然后在进行录制过程中output window找到不同点出现的地方

图1

图2

4.使用函数web_reg_save_param关联动态数据,保存参数,供其他地方使用,这个时候注意使用函数的过程左右边界范围,通过web_reg_save_param关联代码如下,这样就完成了手动关联

web_reg_save_param("iisCore",
"LB/IC=/(S(",
"RB/IC=))/",
"Ord=1",
"Search=All",
LAST);

关联注意点

1.关联函数是在请求函数之前定义的

2.关联数据的时候注意关联函数的左右边界不要写错了

2.2.5. 集合点注意点

集合点就是为了让Vuser集合,然后同时做某个操作,只要在相应的请求前设定有意义的集合点lr_rendezvous即可

2.2.6. 如何使用集合点

1.如图1,在需要集合点的脚本出前点击菜单栏的Insert-Rendezvous,然后在弹出的窗口中,如图2,填写自定义的集合点名称即可完成集合点设置
图1
图2

2.如下图3,将步骤1中的脚本在Controller中打开,在Controller界面,点击菜单栏Scenario-Rendezvous,然后在弹出的窗口中自定义设置集合点的使用方式,即可完成集合点的简单使用

2.2.6. 脚本调试注意点

1.如下图,在运行时设置窗口,开启日志,这样有利于我们调试脚本

2.如下图,设置回放的时候,打开浏览器快照,在调试脚本的时候,我们可以知道对应脚本相应的界面,图形界面有利于我们调试

2.3. 执行场景过程总结

2.3.1. 执行场景前需要注意点

1.如下图,进入脚本的运行时设置窗口,设置日志为标准。解释:当运行场景时候,假如大量用户碰到异常,如果此时选择输出日志信息,这个输出操作会消耗负载机的资源,使得定位系统性能瓶颈,不能准确判断是负载机问题还是被测系统的问题

2.如下图,在运行时设置中,选择“每次迭代清除高速缓存”。解释:因为压力测试的时候,是模拟不同用户访问服务器,此时不同用户访问肯定会从服务器中下载资源,此时我们就要保证每个用户访问浏览器都是不存在缓存的

3.如下图,在运行设置中,设定脚本的思考时间为“按照录制时记录时间”,因为我们是模拟用户操作,所以操作过程中是需要思考时间

4.如下图,这个也是比较重要的在场景窗口,设置大于负载机实际运行的Vuser数

Ps:假如忘记设置,loadrunner默认一个负载机最大运行Vuser为5000人,当你设置Vuser超过5000人后,运行场景后,超过5000的Vuser会自动失败

2.3.2. 如何使用场景

1. 如下图,在本机的所有程序中打开Controller

2. 如下图,在弹出的窗口中点击Browser按钮,在弹出窗口选择脚本后点击OK

3. 如下图,新增负载机

4. 如下图,在弹出窗口执行下图操作

5. 如下图,验证负载机连接状态

6. 如下图,选择百分比模式,为了可以方便均衡分配负载机人数

7. 如下图,选择负载机和负载机人数

8. 如下图,设置5w人执行脚本,1s/20人的速度开始执行场景

9. 如下图,设置场景执行:一直运行,直到所有人脚本执行完毕

10. 如下图,点击按钮,弹出框点击确定,即可开始执行场景

11. 如下图1,在切换至Run,可以查看运行过程中,所有Vuser运行情况,如图2;日志查看如图3

图1

图2

图3

性能测试工具Loadrunner使用经验小结(原创更新版)的更多相关文章

  1. 【测试】性能测试及性能测试工具Loadrunner

    性能测试简介 软件系统的性能包括很多方面,有执行效率,资源占用,系统稳定性,安全性,兼容性,可靠性,可扩展性等.这些都是可以衡量一个软件系统性能好坏的指标.而性能测试是指通过自动化测试工具去模拟多种正 ...

  2. 性能测试工具——Jmeter使用小结(一)

    Apache Jmeter是针对Java的一款性能测试工具,利用该工具可以实现自动化的批量测试和结果聚合,适合做接口压测.今天就来捋一捋软件安装的一些小细节和使用. 一.安装 Jmeter基于JDK, ...

  3. 性能测试工具---loadrunner

    1.什么是参数化参数化:把固定的一个值,变成动态.可变的数组,把数组的值进行值传递.数组大小可控制.2.为什么要使用参数化,2个原因.1.数据库校验字段值的唯一性.(数据库修改字段的唯一性,可避免参数 ...

  4. 性能测试工具——LoadRunner篇(一)

    一.LoadRunner组件 1.Virtual User Generato——r录制最终用户业务流程并创建性能 2.Controller——组织.驱动.管理并发监控负载测试 3.Analysis—— ...

  5. 性能测试工具LoadRunner中进程运行和线程运行区别

    loadrunner controller将使用驱动程序mmdrv运行Vuser.用户可以在controller的run-time setting中选择Vuser的运行方式, 是多进程方式or多线程方 ...

  6. 《软件性能测试与LoadRunner实战教程》新书上市

    作者前三本书<软件性能测试与LoadRunner实战>.<精通软件性能测试与LoadRunner实战>和<精通软件性能测试与LoadRunner最佳实战>面市后,受 ...

  7. 性能测试工具Jmeter你所不知道的内幕

    谈到性能测试,大家一定会联想到Jmeter和LoadRunner,这两款工具目前在国内使用的相当广泛,主要原因是Jmeter是开源免费,LoadRunner 11在现网中存在破解版本.商用型性能测试工 ...

  8. 【腾讯开源】Android性能测试工具APT使用指南

    [腾讯开源]Android性能测试工具APT使用指南 2014-04-23 09:58 CSDN CODE 作者 CSDN CODE 17 7833 腾讯 apt 安卓 性能测试 开源 我们近日对腾讯 ...

  9. 性能测试工具LoadRuner你所不知道的内幕

    谈到性能测试,大家一定会联想到Jmeter和LoadRunner,这两款工具目前在国内使用的相当广泛,主要原因是Jmeter是开源免费,LoadRunner 11在现网中存在破解版本.商用型性能测试工 ...

随机推荐

  1. LIFO栈 ADT接口 实现十进制转其他进制

    LIFO 接口 Stack.h //LIFO 链栈初始化 void InitStack(Stack top){ //LIFO 链栈判断栈空 boolean StackKEmpty(Stack top) ...

  2. tensorflow 模型权重导出

    tensorflow在保存权重模型时多使用tf.train.Saver().save 函数进行权重保存,保存的ckpt文件无法直接打开,不利于将模型权重导入到其他框架使用(如Caffe.Keras等) ...

  3. 开篇~试试word写博客

    word发布博客设置,mark一下 原帖地址:http://www.cnblogs.com/liuxianan/archive/2013/04/13/3018732.html word代码高亮插件:h ...

  4. 20155203 2016-2017-2《Java程序设计》课程总结

    目录 一.每周作业链接汇总 自认为写得最好一篇博客是?为什么? 作业中阅读量最高的一篇博客是?谈谈经验 作业中与师生交互最多的一篇博客是?谈谈收获 二.实验报告链接汇总 三.代码托管链接 四.课堂项目 ...

  5. 20155206 《JAVA程序设计》实验二(JAVA面向对象程序设计)实验报告

    20155206 <JAVA程序设计>实验二(JAVA面向对象程序设计)实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S ...

  6. JavaScript之数组的常用操作函数

    js对数组的操作非常频繁,但是每次用到的时候都会被搞混,都需要去查相关API,感觉这样很浪费时间.为了加深印象,所以整理一下对数组的相关操作. 常用的函数 concat() 连接两个或更多的数组,并返 ...

  7. 【LG4103】[HEOI2014]大工程

    [LG4103][HEOI2014]大工程 题面 洛谷 题解 先建虚树,下面所有讨论均是在虚树上的. 对于第一问:直接统计所有树边对答案的贡献即可. 对于第\(2,3\)问:记\(f[x]\)表示在\ ...

  8. 解读python手册的例子a, b = b, a+b

    Python手册上有个例子,用于输出10以内的斐波那契序列.代码如下: a, b = 0, 1 while b < 10: print(b) a, b = b, a+b 用到了一些Python的 ...

  9. EF中一对多的自反关系设置

            对于一般的目录树,通常就是一对多的自反关系,一般会有一个PID,引用于这个ID,实体类代码类似于下: public partial class Catalog { public Cat ...

  10. C# 合并多个结构相同的DataTable

    public DataTable GetAllDataTable(DataSet ds) { DataTable newDataTable = ds.Tables[0].Clone(); //创建新表 ...