数据驱动-参数化(Parameters)
在录制程序运行的过程中,Vugen(脚本生成器)自动生成了脚本以及录制过程中实际用到的数据。在这个时候,脚本和数据是混在一起的。
在登录操作中,很明显xpj与123123是填入的数据,如果Controller里以多用户方式运行这个脚本的时候,每个虚拟用户都会以同样的用户名"robin"、密码"123123"去登录系统。这样做性能测试,不太眼睛,服务器大多会采用缓存功能提高系统性能,以同样的用户名/密码登录系统的缓存命中率会很高,也要快得多。
因此,LoadRunner支持参数变量。
参数化后,用户名xpj被一个参数{username}替换,密码被另外一个参数{password}替换。其中{username}和{password}分别和参数文件关联,在脚本运行时,用户名和密码的值从参数{username}和{password}中获得。
参数化是我们学习LoadRunner中经常用到的功能。除了实现数据驱动之外,参数化脚本还有以下两个优点:
- 可以使脚本的长度变短;
- 可以增强脚本的可读性和可维护性;
实际上,参数化的过程如下:
- 在脚本中用参数取代常量值;
- 设置参数的属性以及数据源;
LoadRunner对脚本中参数个数没有限制,我们可以在一个脚本中创建任意多个参数,脚本中-选择数据-右键-replace with parameter
选择参数类型:
- Parameter name:输入参数名称;
- Parameter type:选择参数类型;
参数类型说明
- Data Files:这是我们最长使用的一种参数类型,它的数据存在于文件中。该文件的内容可以手工添加,也可以利用LoadRunner的Data Wizard从数据库中导出。
- User-Defined Functions:调用外部DLL函数生成的数据
- Internal Data:虚拟用户内部产生的数据。Internal Data包括以下几种类型:
- Date/Time:用当前的日期/事件替换参数。要指定一个Date/Time的格式,菜单中可以选择格式。格式要与脚本中录制的格式保持一致。
- Group Name:用虚拟用户组名称替换参数。在创建scenario的时候,你可以指定虚拟用户组的名称。
- Load Generator Name:用脚本负载生成器的名称替换参数。负载生成器是虚拟用户在运行的计算机。
- Iteration Number:用当前的迭代数目替换参数。
- Random Number:用一个随机数替换参数。通过指定最大值和最小值来设置随机数的范围。
- Unique Number:用一个唯一的数字来替换参数。你可以指定一个起始数字和一个块的大小。
- VuserID:用分配给虚拟用户的ID替换参数,ID是由LoadRunner的控制器在scenario运行时生成的。如果从脚本生成器运行脚本的话,虚拟用户的ID总是-1.
如果想用以前定义过的参数来代替常量字符串的话,选中该字符串,单击右键,然后选择“Use existing parameters”,从弹出的子菜单中选择参数,或者用"Select from Parameter List"来打开参数列表对话框。
数据文件:
数据文件中的数据是以表的形式存储的,作为参数的数据源必须指定:文件的名称和位置、包含数据的列、文件格式、包括列的分隔符、更新方法
file path:文件位置,文件的后缀必须是.dat
add column: 添加新列
edit with notepad:使用记事本编辑
select column:选择使用的列,可以指定列名或列号
column delimiter:分隔符
first data line :使用的第一行数据,列标题是0行
select next row:按什么规则来取值 :sequential random unique / same line as ...
update value on :什么时候取值
each iteration:每次迭代;each occureence:每次读参数;once:只取一次
when out of values :超出范围 (unique时使用)
allocate vuser values in the controller :在控制器中分配值,unique时使用
从数据库中导入参数数据
方式:1 使用microsoft query 需要安装 ms query
2 指定数据库连接字符串和sql语句


点create选择数据源-或新建数据源-然后 指定保存文件路径及名称,后缀为.dsn
在弹出数据库连接信息中输入用户名、密码
在sql框中输入sql语句-完成
数据驱动-参数化(Parameters)的更多相关文章
- pytest框架之parametries数据驱动参数化
在测试用例的前面加上:@pytest.mark.parametrize('参数名', 列表数据) 参数名:用来接收每一项数据,并作为测试用例的参数 列表参数:一组测试数据(元组.列表.字典) 方式一: ...
- python接口自动化测试三十六:数据驱动参数化之paramunittest
官方文档1.官方文档地址:https://pypi.python.org/pypi/ParamUnittest/2.github源码下载地址:https://github.com/rik0/Param ...
- LoadRunner用户行为模拟器 《第三篇》
用户行为模拟器简称VU,VU通过运行VU脚本模拟了用户对软件的操作行为.VU是基于网络协议的.很明显,被测服务器是通过各种各样的网络协议与客户端打交道的.VU要“骗过”被测服务器,当然就要遵守这些协议 ...
- 4.httprunner-参数化和数据驱动
前言 参数化在config中使用parameters关键字 httprunner2.x 是在testsuite中实现参数化 httprunner3.x 是在testcase中的config实现参数化 ...
- 好代码是管出来的——.Net Core集成测试与数据驱动测试
软件的单元测试关注是的软件最小可执行单元是否能够正常执行,但是软件是由一个个最小执行单元组成的集合体,单元与单元之间存在着种种依赖或联系,所以在软件开发时仅仅确保最小单元的正确往往是不够的,为了保证软 ...
- httprunner学习5-参数化与数据驱动
前言 参数化是自动化测试离不开的话题,httprunner里面只要把上一篇声明变量学会了,参数化也就自然会了. 不同的地方在于声明变量时对应值只有一个,参数化是多个值,存放在list里面. httpr ...
- python测试框架-pytest
一.pytest 介绍.运行.参数化和数据驱动.Fixture pytest安装与介绍 官网 : pip install -U pytest 查看版本号:pytest --version 为何选择py ...
- Argo workflow 案例练习和配置详细解析
参数化 - parameters hello-world-parameters.yaml文件解析 apiVersion: argoproj.io/v1alpha1 kind: Workflow met ...
- appium简单使用
App 测试通常会用到的工具 adb :Android 的控制工具,用于获取Android的各种数据和控制 Appium Desktop:内嵌了Appium Server和Inspector的综合工具 ...
随机推荐
- ASM problem : ORA-15001: diskgroup "DGROUP1" does not exist or is not mounted ORA-15040: diskgroup is incomplete
============================================================= mos中的详细解释: ODA: After Apply ODA 12.2.1 ...
- direct path read temp的处理方法
Examine the SQL statement currently being run by the session experiencing waits to see what is causi ...
- IDEA+JUnit
1.入门 https://blog.csdn.net/smxjant/article/details/78206279 2.比较好的JUnit例子:https://github.com/aws/aws ...
- 在Ubuntu中部署并测试HyperLedger Fabric 0.6
最近开始研究区块链,对这个新兴的技术有了基本概念上的了解,所以打算基于一个开源项目做做实验.如果是做数字货币,那么比特币的源代码是最好的了,不过这算是区块链1.0吧,已经有很多改进的竞争币和山寨币出来 ...
- 【转】MySQL中的行级锁,表级锁,页级锁
在计算机科学中,锁是在执行多线程时用于强行限制资源访问的同步机制,即用于在并发控制中保证对互斥要求的满足. 在数据库的锁机制中介绍过,在DBMS中,可以按照锁的粒度把数据库锁分为行级锁(INNODB引 ...
- UVA10838 The Pawn Chess
UVA好题没人写系列,感觉可以稍稍练习一下面向对象编程的形式(大雾) 题意很简单,在国际象棋的棋盘中有一些兵,走到对方底线即为胜利,问最优决策下谁能获胜.并输出最小步数. 首先这里的棋盘都只有\(4\ ...
- FineUIMvc v1.4.0 发布了(ASP.NET MVC控件库)!
FineUIMvc v1.4.0 已经于 2017-06-30 发布,FineUIMvc 是基于 jQuery 的专业 ASP.NET MVC 控件库,是我们的新产品.由于和 FineUI(专业版)共 ...
- 七、xadmin 编辑界面实现二级联动
很多时候,我们会遇到这种需求,通过一个select框中选择的值,去动态的加载另一个下拉框中的内容 对于前端的同学来讲,这个本应该是一个很简单的需求,获取第一个下拉框的值然后通过ajax去动态加载即可. ...
- 使用模块PIL 生成 随机验证码
--------------默认自己无能,无疑是给失败制造机会!你认为自己是什么样的人,就将成为什么样的人. 要使用PIL模块. 安装: 1 pip3 install pillow 基本使用 1. 创 ...
- 剑指Offer-- 之字形顺序打印二叉树
请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推 /* struct TreeNode { int val ...