LoadRunner——参数化测试(七)

{参数化测试}

又名数据驱动测试:使用不同的数据来执行相同的业务

【工作原理】

对脚本中的常量(数据)分别使用变量来替换,变量的取值又来自某个文件中,设置取值方式以及迭代方式即可实现参数化测试。比如准备大量的合法数据进行注册或者登录等,尽量达到模拟用户真实使用系统的情况

【工作组件】在虚拟用户生成器(Vugen)中设置。

【实现步骤】

1)首先确定哪些数据要做参数化,并分别使用参数变量来替换常

量数据,格式:{变量名}

2)然后准备参数池:大量数据 +  文件类型

3)设置参数策略以及迭代次数

4)检查点也要做参数化

【步骤详解】

1) 双击脚本中要做参数化的数据:

jojo ->右击-> Replace with a Parameter 使用一个参数代替

弹出窗口:如下

image.png

Parameter Name: username   参数名  - 变量名

Parameter Type: File          参数类型 - 文件

Original value: jojo            初始值  - jojo

点击“ok”后会自动生成LR变量{username}

其他数据同上,但参数化的数据一定要做到全面:做参数化的数据在其他地

方出现过,也要做参数化。不然会报错,有一个小技巧可以检验:

使用Ctrl+F在脚本中查找指定数据并按F3继续查找。

2) 打开参数池配置窗口

image.png

在VuGen中倒数第2个按钮:Open Parameter List(快捷方式:Ctrl+L)

点击username->Edit with Notepad 使用记事本编辑测试数据

将光标放置在最后一行数据的下一行开头

使用ctrl+a 全选 检查光标是否符合格式要求:

保存ctrl+s  及时关闭记事本,避免版本问题

其他文件的数据同上操作(比如password)

3) 设置参数策略

image.png

1、parameter type参数类型

File文件(常用)  Date/time日期/时间   Group name组名

Iteration number重复编号   Table表

Unique number唯一编号   Random number随机编号

Load generator name下载生成名称

User defined function使用规定的功能

Vuser id虚拟用户ID    XML XML

2、File文件存储位置

点击browse

3、按钮:

Add column添加列

Add row添加行

Delete column删除列

Delete row删除行

Edit with notepad使用文本编辑

Data wizard通过数据库从ODBC导入

Simulate parameter模拟参数

4、select column选择列

By number 通过编号选择列,第1列就是从1开始

By name通过名称,列名

5、file format文件格式

Column列分隔符

取值:comma逗号分隔符

tab制表分隔符

space空格分隔符

First data第一个行数据

6、select next row选择下一行的设置

取值:Sequential按顺序取值,从第一行开始依次向变量分配参数值

Random随机取值

Unique唯一取值,每个用户只取一个值

Same line as XX  取和xxx参数在同一行的值

7、update value on更新数据的时机

取值:Each iteration每次迭代更新;脚本迭代时使用新数据

在同一次迭代中所有参数的取值是不变的,下一次迭代就更新。

Each occurrence每次取值更新;参数每次出现时使用新数据

即使在同一个迭代中,参数的值也更新。

Once一次;每个用户只取一次值,不再改变(从一而终)

8、when out of value超出值后的设置,迭代次数大于参数个数时的设置

取值:Abort vuser  放弃用户,终止脚本

Continue in a cyclic manner  循环取值继续

Continue with last value   使用最后一个值继续

9、allocate vuser values in the controller控制器里分配虚拟用户数值

Automatically allocate block size自动分配程序块大小

Allocate XXX values for each vuser为每个虚拟用户分配XXX值

说明:一般案例中采用的是默认的SE组合:顺序 + 每次迭代

Sequential + Each Iteration

4) 设置action脚本的迭代次数

点击edit runtime-settings-》run logic-》number of iterations

迭代次数和参数个数之间关系:

取决于第8个选项的设置,和unique相结合使用:

Abort vuser当值超出时终止脚本:

当参数个数大于迭代次数时,超出的参数不会被执行,脚本终止啦。

Continue in a cyclic manner当值超出时循环取值继续:

当参数个数小于迭代次数时,参数会循环使用,直到迭代次数结束位置

Continue with last value当值超出时使用最后一个值继续

当参数个数小于迭代次数时,使用最后一个参数值继续完成剩余的迭代。

{参数化方式}

方式1: 设计多个参数并使用多个独立的文件保存各自数据:

->将脚本中数据设计为多个参数:{变量名}

->准备数据 :一个参数单独有一个文件

使用excel表格准备大量数据并拷贝各自文件中

->设置参数策略 :

在Select Column中:可以指定选择哪一列

1)根据列号选择:1 2 3 …

第一个列就是1,依次类推

2)根据列名选择:username  password  见名知意

First data:  从第几行开始读取数据

->编辑运行时设置:

迭代次数:

此方法适合参数之间没有关系时

方式2: 设计多个参数共享一个数据文件,前提:参数之间有关联

->将脚本中数据设计为多个参数:{变量名}

->准备多个数据 :一个参数在共享文件中就是一列

使用excel表格准备大量数据并拷贝共享文件中

编辑文件:多列共享一个文件,使用comma逗号分隔

->设置参数策略 :

将每个参数的File都改为共享文件名

在Select Column中:可以指定选择哪一列

1)根据列号选择:1 2 3 …

第一个列就是1,依次类推

2)根据列名选择:username  password  见名知意

在File format中:指定格式

默认使用逗号分隔每一列  Comma

First data:  从第几行开始读取数据

->编辑运行时设置:

迭代次数:

此方法适合参数之间有关系时

3、用参数化方式1的策略来注册前15个新用户:a1~a15,密码:123

步骤:

A》首先录制用户aaa的注册脚本到Action中,添加事务,检查点

B》然后按照参数化的步骤1、2设计参数以及准备数据(实际数据有30个)

a1~a30

C》其次设置参数化策略:

First data: 1

SE组合  顺序+每次迭代

设置迭代次数:15次

4、用参数化方式1的策略来注册前15个新用户:a1~a15,密码:123

步骤:

A》首先录制用户aaa的注册脚本到Action中,添加事务,检查点

B》然后按照参数化的步骤1、2设计参数以及准备数据(实际数据有30个)

a1~a30

C》其次设置参数化策略:

First data: 1

SE组合  顺序+每次迭代

设置迭代次数:15次

参数化策略 详解

最常用的策略组合:                      应用场合

1)SE组合: 顺序+每次迭代             最常用

2)UEA组合:唯一+每次迭代+放弃用户   数据唯一时使用

Unique策略时,数据必须要充足,避免报错

版本1:File类型

版本2:Unique Number类型

3)RE组合:随机+每次迭代              用户随机性访问

用户取值从三方面考虑:

A )数据的行数

B )用户的个数

C )迭代的次数

举例1:假设有2行数据:a1 a2,1个用户,迭代2次。

{每个用户迭代2次,合计跑4次}

按照SE组合:顺序+每次迭代

用户取值:(a1, a2)

按照UE组合:唯一+每次迭代

用户取值:(a1, a2)

假设迭代三次,则需要考虑第八项的设置。

举例2:假设有4行数据:a1 a2 a3 a4,2个用户,迭代2次。

{每个用户迭代2次,合计跑4次}

按照SE组合:顺序+每次迭代

第一个用户取值:(a1, a2)

第二个用户取值:(a1, a2)

按照UE组合:唯一+每次迭代

第一个用户取值:(a1, a2)

第二个用户取值:(a3, a4)

举例3:某参数有数据a1 a2 a3 … a10,3个用户,迭代3次。

{每个用户迭代3次,合计跑9次}

按照SE组合:顺序+每次迭代

第一个用户取值:(a1, a2,a3)

第二个用户取值:(a1, a2,a3)

第二个用户取值:(a1, a2,a3)

按照UE组合:唯一+每次迭代

第一个用户取值:(a1, a2,a3)

第二个用户取值:(a4, a5,a6)

第三个用户取值:(a7, a8,a9)

举例4:某参数有数据a1 a2 a3 … a30,只有1用户,脚本迭代3次,

一次迭代中参数只出现一次,完成以下策略组合的结果:

1)顺序 + 每次迭代:a1 a2 a3

2)唯一 + 每次迭代:a1 a2 a3

3)随机 + 每次迭代:a17 a9 a28

4)顺序 + 每次遇到:a1 a2 a3

5)唯一 + 每次遇到:a1 a2 a3

6)随机 + 每次遇到:a2 a30 a18

7)顺序 + 一次:a1 a1 a1

8)唯一 + 一次:a1 a1 a1

9)随机 + 一次:a15 a15 a15

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
测试实践丛书:性能测试进阶指南·LoadRunner 11实战》结合了很多工作中的实际案例,图文并茂,既适合渴望了解性能测试的新人,也适合对性能测试有一定认识和经验的中、高级测试工程师。同时,《测试实践丛书:性能测试进阶指南·LoadRunner 11实战》也可以作为高校开展性能测试课程的参考教材,让在校学生能对性能测试的本质和价值有一定的认识。 《测试实践丛书:性能测试进阶指南·LoadRunner 11实战》是一本基于HP LoadRunner 11工具的指导用书,从性能测试原理到工具使用再到项目实施,全面介绍了性能测试的各个方面,其内容基本主线说明如下。 第一步(了解理论):磨刀不误砍柴工,打下基础;第二步(掌握工具):深入介绍LoadRunner 11工具三大部分(Virtual User Generator、Controller、Analysis)如何实现用户行为的模拟、性能指标的监控、负载的生成及后期的数据分析;第三步(项目实施):理论联系实际,介绍性能测试项目实施的流程和性能测试部门的组织管理;第四步(进阶提升):对一些当下流行的或比较特殊的协议和开发技巧通过真实案例进行介绍。 基础篇 第1章 性能测试基础 1.1 性能测试工程师的标准及挑战 1.1.1 性能测试工程师的考评指标 1.1.2 性能测试工程师的挑战 1.2 性能测试基础 1.2.1 性能定义 1.2.2 性能指标 1.2.3 单机与网络性能测试 1.2.4 性能测试的流程 1.2.5 性能测试招聘要求 1.2.6 性能测试学习阶段 1.3 性能分析与调优 1.3.1 性能分析及调优原理 1.3.2 常见系统性能瓶颈 1.3.3 性能测试的注意要点 1.4 小结 工具篇 第2章 LoadRunner综述 2.1 LoadRunner简介 2.2 LoadRunner工具组成 2.3 性能测试原理 2.4 自动化测试工具和性能测试工具的区别 2.5 协议分析 2.5.1 HTTP详细介绍 2.5.2 HTTP报文结构 2.5.3 HTTP请求 2.5.4 HTTP应答 2.5.5 HTTP捕获 2.5.6 HTTP回放 2.6 安装 2.6.1 在Windows下安装LoadRunner 2.6.2 安装Load Generator 2.6.3 附加组件 2.6.4 LoadRunner License 2.7 LoadRunner性能测试操作流程预览 2.8 小结 第3章 用户行为模拟 3.1 VuGen界面介绍 3.1.1 Tree图形化模式 3.1.2 脚本模式 3.1.3 Output Window 3.2 录制用户行为 3.2.1 录制流程 3.2.2 协议选择 3.2.3 录制选项 3.2.4 开始录制 3.2.5 插入命令 3.2.6 结束录制 3.2.7 回放验证 3.2.8 录制回放常见问题 3.3 脚本开发 3.3.1 Action简介 3.3.2 脚本如何注释 3.3.3 语言规则 3.3.4 如何使用模板 3.3.5 脚本的导入导出 3.3.6 脚本调试 3.4 通用选项(General Options) 3.4.1 Parameterization标签 3.4.2 Replay标签 3.4.3 Environment标签 3.4.4 Display标签 3.4.5 Correlation标签 3.5 运行设置(Run-Time Setting) 3.5.1 Run Logic 3.5.2 Pacing 3.5.3 Log 3.5.4 Think Time 3.5.5 Additional attributes 3.5.6 Miscellaneous 3.5.7 Speed Simulation 3.5.8 Browser Emulation 3.5.9 Preferences 3.5.10 Download Filters 3.5.11 Data Format Extensions 3.6 参数化 3.6.1 参数化的操作 3.6.2 Parameter List界面介绍 3.6.3 VuGen中的参数 3.6.4 Controller中的参数 3.6.5 同行取值(Same line as) 3.6.6 参数类型 3.6.7 数据向导(Data Wizard) 3.6.8 参数和变量 3.7 关联 3.7.1 关联原理 3.7.2 自动关联 3.7.3 手动关联 3.7.4 一边录制一边关联 3.7.5 关联函数web_reg_save_param_ex详解 3.7.6 关联函数web_reg_save_param_regexp详解 3.7.7 关联函数web_reg_save_param_xpath详解 3.7.8 关联函数的高级使用 3.8 检查点 3.8.1 文本检查点 3.8.2 自动检查点 3.8.3 图片检查点 3.9 事务 3.9.1 响应时间 3.9.2 添加事务 3.9.3 事务时间 3.9.4 手工事务 3.10 集合点 3.11 小结 第4章 负载生成及监控Controller 4.1 设计场景 4.1.1 新建场景 4.1.2 负载生成器管理 4.1.3 用户管理 4.1.4 运行设置 4.1.5 IP虚拟 4.1.6 场景运行原理 4.1.7 Service Level Agreement(服务品质保障) 4.2 系统监控 4.2.1 Scenario Groups(场景用户状态) 4.2.2 Scenario Status(场景运行状态) 4.2.3 计数器原理 4.2.4 计数器管理 4.2.5 SiteScope 4.3 场景运行 4.4 QTP脚本在场景中的运行 4.5 场景数据 4.6 小结 第5章 数据收集分析Analysis 5.1 新建Analysis分析 5.2 Analysis Summary 5.2.1 Analysis Summary(场景的摘要) 5.2.2 Statistics Summary(场景状态的统计说明) 5.2.3 5 Worst Transaction(SLA失败事务) 5.2.4 Scenario Behavior Over Time(场景行为综述) 5.2.5 Transaction Summary(事务摘要) 5.2.6 HTTP Responses Summary(HTTP响应摘要) 5.3 Graphs(数据图) 5.3.1 Vusers(虚拟用户状态) 5.3.2 Errors(错误统计) 5.3.3 Transactions(事务) 5.3.4 Web Resources(网页资源信息) 5.3.5 Web Page Diagnostics(网页分析) 5.3.6 Network Monitor(网络监控) 5.3.7 Resources(资源监控) 5.4 图设置与操作 5.4.1 Merge Graphs(合并图) 5.4.2 Auto Correlate(自动定位瓶颈) 5.5 Transaction Report(事务报告) 5.6 SLA Report(系统阈值监控报告) 5.7 External Monitor(外部监控数据导入) 5.8 Cross with result(跨脚本横向比较) 5.9 生成测试报告 5.9.1 New Report(新建报告) 5.9.2 Reprt Templates(报告模板) 5.9.3 HTML报告 5.10 小结 实战篇 第6章 性能测试实战 6.1 计划测试 6.1.1 分析系统阶段 6.1.2 定义测试目标 6.1.3 明确定义概念 6.1.4 编写性能测试计划 6.1.5 编写性能测试方案 6.1.6 编写性能测试用例 6.2 搭建测试环境 6.2.1 测试平台评估 6.2.2 数据生成 6.2.3 测试环境搭建手册 6.3 创建脚本 6.3.1 用户注册 6.3.2 用户查询 6.3.3 用户看帖 6.3.4 用户回帖 6.4 创建场景 6.4.1 场景设计 6.4.2 负载监控 6.5 运行场景 6.5.1 场景运行Checklist 6.5.2 场景运行记录 6.6 分析性能数据 6.6.1 性能调优原理 6.6.2 前端性能分析 6.6.3 后端性能分析 6.7 性能测试报告 6.7.1 平台对比性能测试报告 6.7.2 Phpwind85性能分析报告 6.7.3 DiscuzX2 VS Phpwind85性能对比报告 6.7.4 Phpwind85验收指标性能测试报告 6.7.5 Phpwind85压力测试报告 6.8 小结 第7章 性能测试组织 7.1 性能测试团队 7.2 性能测试流程分工 7.3 配置管理 7.4 性能测试自动化 7.5 小结 第8章 高级脚本开发 8.1 AJAX

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值