lr参数化取值与连接数据库

TXT文本,EXCEL表格以及数据库中的表都可以作为参数的数据集载体,LR都是支持的。

特别提醒:

1.在形成数据池之后,数据库中的数据变化不会影响数据池中的数据。

2.数据文件一定要以一个空行结束,否则,最后一行输入的数据不会被参数所使用。

3.一般我们用到的很多的都是使用数据文件来保存我们的参数。一般来说LR对于参数的个数是没有限制的,但是在那个Parameter List中显示的就只能显示100个。so当你看到显示在列表中的参数个数少于你的文件中保存的个数,不用紧张。

一.介绍LR参数化数据源Orac le,MSSQL,Excel

1. 数据来源Oracle向导,选择“Data Wizard”创建,如图:

2. 数据来源MSSQL向导

与Oracle不同的是:

3. 数据来源Excel向导

与Oracle不同的地方:选择Excel Files

输入查询语句:

注意:经常会出现以下错误:

解决办法:重新再创建一次就可以了。

二、介绍两种参数化的区别

一种会初始化数据,另一种不会初始化数据

具体如图:

1.右键选择“Replace with a Parameter”这种,会默认初始化数据。

2.点击工具栏中的parameter list,不会初始化数据。

三. 参数化取值

select next row指明了以何种方式从数据池中获取数据

选项:

Sequential 表示按照顺序取值

Random表示从数据池中随机取值

Unique.表示每次取唯一值

Update value on 指明了参数值在何时发生变化。

选项:

Each iteration表示在每次跌代时更新参数的值。如果在一个迭代过程中某参数出现了多次,参数取相同的值

Each occurrence表示在参数每次出现时更新参数的值。如果在一个迭代过程中某参数出现了多次,每次取不同的值。

Once表示VU在执行时,只在第一次跌代时为参数取一次值,以后每次跌代使用相同的值。

根据select next row和Update value on的不同设置组合,VU运行过程中为参数取不同的值,下面举例说明:

假设在某个类型为File的参数Username设置如下表1所示的数据池,该参数所在的脚本中包含该参数的部分要求迭代2次,执行脚本的VU数量为2个,脚本需要迭代的部分有两个地方使用了参数Username,则在不同设置时的参数取值如表2:

表1 参数Username的数据池数据


Username


Alice


Bob


Chris


David


Frank


Green


Jack


Smith

表2 不同设置时参数取值示例


Select next row 取值


Update value on取值


参数取值示例


Sequential


Each iteration


每个VU中的参数都按照同样的方式取值,第一次迭代中参数Username两次出现都取Alice,第二次迭代中参数Username两次出现都取Bob


Each occurrence


每个VU中的参数都按照同样的方式取值,第一次迭代中参数首次出现取Alice,第二次出现取Bob;第二次迭代中参数首次出现取C hris,第二次出现取David


Once


每个VU中的参数都按照同样的方式取值,参数在每次迭代的每次出现均取同样的值Alice


Random


Each iteration


每个VU中的参数都同样的方式取值,第一次迭代中参数两次出现都取相同的值,其值从数据池中随机选择一个;第二次迭代中参数两次出现都取相同的值,其值从数据池中随机选择一个


Each occurrence


每个VU中的参数都同样的方式取值,第一次迭代中参数首次出现取数据池中的一个随机值,第二次再随机取一个值,第二次迭代中参数首次出现随机从数据池中取一个值;第二次出现再随机取一个值


Once


每个VU中的参数都按照同样的方式取值,参数在每次迭代的每次出现均取同样的值,该值从数据池中随机选取


Unique


Each iteration


两个VU按照不同的方式取值:对于第一个VU,第一次迭代中的参数两次出现均取相同的值Alice,第二次迭代中的参数两次均取Bob;对第二个VU,第一次迭代中的参数两次出现均取相同值Chris,第二次迭代中的参数两次均取David


Each occurrence


两个VU按照不同的方式取值:对于第一个VU,第一次迭代中的参数第一次出现时取值Alice,第二次出现时取值Bob,第二次迭代中的参数首次出现时取Chris,第二次出现时取David;对于第二个VU,第一次迭代中的参数第一次出现时取值Frank,第二次出现时取值Green,第二次迭代中的参数首次出现时取Jack,第二次时取值Smith.


Once


两个VU按照不同的方式取值:对于第一个VU,两次迭代中的参数每次出现均取相同的值Alice;对于第二个VU,两次迭代中的参数每次出现取相同的值Bob

Unique:主要是强调取值的唯一性,如果到最后没有该值了,LR提供了其他解决方案.

When out of values选项只有在select next row设置为Unqiue时才有效,当数据池中的数据量不能支持迭代和Unique要求的数据量时,可以通过设置该选项的值指示LR的处理方法。

Abort VUser,则遇到这种情况时,VU停止运行;

Continue in a cyclic manner,取值超过时,启用循环扫描,扫描那些还未被使用的数据进行使用;

Continue with last value,所有不足的取值都用最后一个取值来代替。

关于参数化取值,若有不明白,可以参照http://blog.csdn.net/candle806/article/details/6614486

四.参数化常见错误

错误代码:Error:missing newline in d:\loadrunner\username.dat

错误原因:场景设置不合理,参数数量不够,或者参数化文件有问题。

1)如果参数化文件反复修改,而在场景设置时没有更新脚本,可能会导致参数化文件修改未生效的情况,建议当参数不是很多时,不要打开记事本去编辑参数,直接在LR提供的参数的表格中进行编辑即可。如果参数很多,需要直接打开记事本编辑参数,可以在controller中重新选择一次脚本。

2)在记事本中编辑参数时,需要在最后一个参数后打回车,让鼠标的光标移动到下一行

时间: 2024-10-19 19:09:01

lr参数化取值与连接数据库的相关文章

LoadRunner参数化取值与连接数据库

LoadRunner参数化取值与连接数据库 LoadRunner在使用参数化的时候,通常都是需要准备大数据量的,也因此LoadRunner提供两种参数化取值方式,一种是手动编辑,另一种就是通过连接数据库取值.一般在大型业务并发压力测试时,数据量肯定也都是非常大的,所以手动去编辑当然就不切实际了,还好有连接数据库的功能,所以就方便了很多.不过提供连接数据库的功能到不是为了方便去取数据,而更重要的应该是借用数据库的造数据功能,通过简单的sql语句,便可以完成大量可复用的数据,这就是数据库的强大之处.

lr参数化取值规则总结

详解lr参数表中的参数分配规则 Select next row Update value on Sequential Each iteration 每次执行Action时,参数值改变. 每个Vuser的参数取值都一样. Each occurrence 每次取参数时,参数值改变. 每个Vuser的参数取值都一样. Once 唯一 Random 自由选取参数 Unique Each iteration 每次执行Action时,参数值改变. 在Allocate Vuser values in the

loadrunner从数据库中取值进行参数化

LoadRunner提供两种参数化取值方式,一种是手动编辑,另一种就是通过连接数据库取值.一般在大型业务并发压力测试时,数据量肯定也都是非常大的,所以手动去编辑就不切实际了,这时用连接数据库的功能就方便了很多. 所需软件: mysql-connector-odbc-5.3.12-win32.msi 安装此软件时,如果提示: 需要先安装:vcredist_x86.exe. 以下以mysql数据库取值为例,进行操作步骤介绍及截图. 1.Parameter List对话框中点击Data Wizard按

loadrunner脚本中写入脚本输出log到外部文件,分析参数取值方式

loadrunner脚本中写入脚本输出log到外部文件,分析参数取值方式 分类: 心得 loadrunner 我的测试 2012-04-01 12:52 2340人阅读 评论(0) 收藏 举报 脚本loadrunnerstreamfilestring测试 .controller中运行脚本时无法查看输出log,可以手动写入代码输出log到外部文件,通过查看该log获得相关信息: 以下脚本是为了分析场景中多用户运行时参数列表如何取值(id,groupid,sid,uname),设置集合点后通过查看时

jmeter参数化随机取值实现

jmeter能用来做参数化的组件有几个,但是都没有随机取值的功能,遇到随机取值的需求怎么办呢? 突发奇想,可以用函数__CSVRead()来实现: __CSVRead() CSV file to get values from | *alias:表示要读取的文件路径 CSV文件列号| next| *alias:表示当前变量读取第几列数据,注意第一列是0: 由此可见我们只需将参数化数据在csv中横向排列,然后用随机函数__Random()指定文件序列号即可. ${__CSVRead(D:\t.tx

LoadRunner脚本实例来验证参数化的取值

LoadRunner脚本实例来验证参数化的取值 SINM {3]!G0问题提出:  主要想试验下,在Controller中,多个用户,多次迭代中参数的取值.51Testing软件测试网(['H5f,d)[jUh :o$F$kY+sO/y"Yr5S0方法:51Testing软件测试网$_v.sR$tS*T)} TJS]#v3u%bi"?!}0脚本:  我把取到的参数值和对应的VuserID记录下来保存到一个文件中,下面是例子的脚本 X-n)SI:J#t:v:YM'v#X0 long fi

lr参数化——500户并发迭代1次 循环取5条数据

lr参数化——500户并发迭代1次 循环取5条数据 比如vuser1.vuser2.vuser3..........,vuser500 shuju1,shuju2,shuju3,shuju4,shuju5 想实现vuser1取shuju1,vuser2取shuju1,vuser3取shuju1,vuser4取shuju1,vuser5取shuju1..........vuser100取shuju1. vuser101取shuju2,vuser102取shuju2,vuser103取shuju2,

Jmeter的JDBC Request,sql参数化及返回值取值

1.JDBC Request面板 Variable Name:数据库连接池的名字,需要与JDBC Connection Configuration的Variable Name Bound Pool名字保持一致Query:填写的sql语句未尾不要加";"Parameter values:参数值Parameter types:参数类型Variable names:保存sql语句返回结果的变量名Result variable name:创建一个对象变量,保存所有返回的结果Query time

locust参数化(数据库取值)

基于上一篇参数化的梳理,本篇用另一种方法从数据库中取出这100个用户来登录 思路:在 TaskSet 中的 on_start 方法表示执行任务前的操作,可以将数据库取数据的这个操作放在里面执行 from locust import task,TaskSet,HttpLocust import pymysql import os class MyTaskSet(TaskSet): def run_sql(self): self.connect = pymysql.connect( host = "