一、通过loadrunner录制一个提交注册信息的部分代码

 web_submit_data("member.php", 
        "Action=http://192.168.241.141/bbs/member.php?mod=register&inajax=1", 
        "Method=POST", 
        "EncType=multipart/form-data", 
        "TargetFrame=", 
        "RecContentType=text/xml", 
        "Referer=http://192.168.241.141/bbs/member.php?mod=register", 
        "Snapshot=t7.inf", 
        "Mode=HTML", 
        ITEMDATA, 
        "Name=regsubmit", "Value=yes", ENDITEM, 
        "Name=formhash", "Value=d75056c8", ENDITEM, 
        "Name=referer", "Value=http://192.168.241.141/bbs/forum.php", ENDITEM, 
        "Name=activationauth", "Value=", ENDITEM, 
        "Name=vzJm3c", "Value=zhouzheng", ENDITEM, 
        "Name=EACfPx", "Value=123456", ENDITEM, 
        "Name=L44Sod", "Value=123456", ENDITEM, 
        "Name=C08V2d", "Value=zhouzheng@sina.com", ENDITEM, 
        LAST)

二、参数化的设置方式

选中要参数化的内容。

  方法一:右键---【Replace with a new parameter

  方法二:菜单【insert】----【new Parameter…】 

Loadrunner参数化设置_Loadrunner

 Loadrunner参数化设置_Loadrunner_02

 Parameter Properties (参数属性对话框)----我们的参数化设置就通过这个对话框完成。

三、参数化的方式

其实参数化得方式有很多种,这里简述几种比较常见人方式。其实方式略有不同,但其结果都是将数据添加进来。

 1、编辑数据

点击Create Table 会出现表格,在表格,再次点击Edit with Notepad ,然后会打开一个记事本,我们可以对记事本进行添加数据 

Loadrunner参数化设置_Loadrunner_03

2、 添加dat数据文件

 点击File输入框后面的“Browse..”按钮,找到本地的txt数据文件,进行添加就可以了。

Loadrunner参数化设置_Loadrunner_04

需要注意的是,文件里面每条数据一行,不然会读取有误。

3、 数据库添加数据

在很多情况下,需要添加的数据可能是千万级别的,如果还通过上面的两种方式添加,非常痛苦。所以我们可以通过数据库将数据导入。其实数据库的数据生成非常简单,可以写一段简单的代码生成,也可以通过数据库数据生成工具来完成

点击Date Wizard 打开连接数据库向导。 

Loadrunner参数化设置_Loadrunner_05

4、 其他类型设置

如果我们要参数化的不是一个文件,比如是特定的日期时间,可以从Parameter type 列表中进行选择

Loadrunner参数化设置_Loadrunner_06

Loadrunner参数化设置_Loadrunner_07

这里可以设置日期时间格式,循环迭代方式,不过除了file类型外,其他用的不多。

四、参数化之间的关联                                                                 

前面我们已经对用户名进行了参数化,这样是不是脚本就能正常执行了呢?不好说。因为用户名、密码、邮箱不是一一对应关系,每次运行脚本时取的用户名、密码邮箱没有对应上的话肯定就会出问题。

假设,我们已经对用户名已经进行了参数化,参数名为【username】,下面设置密码、邮箱参数化与用户名关联。

Loadrunner参数化设置_Loadrunner_08

 点击“Properites…”会打开编辑用户名参数化窗口。File列表框中,刚才保存用户名信息的文件"username.dat"。

 Loadrunner参数化设置_Loadrunner_09

 点击“Add Column…”,添加新的一列信息,用于放置密码。

Loadrunner参数化设置_Loadrunner_10

 点击“Edit with Notepad”再次编辑参数化数据文件,使用户名密码建立一一对应关系。

Loadrunner参数化设置_Loadrunner_11

 完成之后,我们已经成功对用户名和密码进行了参数化,并且让用户名和密码形成了对应关系。确认密码和密码共用一列即可,邮箱设置同密码一致,这里就不写了

数据分配与更新方式                                                                       

  脚本设置完参数化,脚本运行的每一遍所取的参数化的值都不一样,那么这个值按照个什么情况来取呢?会有很多种方式

Select next row【选择下一行】:

Loadrunner参数化设置_Loadrunner_12

顺序(Sequential):按照参数化的数据顺序,一个一个的来取。

随机(Random):参数化中的数据,每次随机的从中抽取数据。

唯一(Unique):为每个虚拟用户分配一条唯一的数据

same line as xxx(与参数xxx取同一行):这个选项是在同一个数据文件中有多列参数的时候才会出现,选择之后此参数会取相应参数的同一行值

 

Update value on【更新时的值】: 

Loadrunner参数化设置_Loadrunner_13

每次迭代(Each iteration) :每次迭代时取新的值,假如50个用户都取第一条数据,称为一次迭代;完了50个用户都取第二条数据,后面以此类推。

每次出现(Each occurrence):每次参数时取新的值,这里强调前后两次取值不能相同。

只取一次(once) :参数化中的数据,一条数据只能被抽取一次。(如果数据轮次完,脚本还在运行将会报错)

上面两个选项都有三种情况,如果将他们进行组合,将产生九种取值方式。

Select Next Row

【选择下一行】

Update Value On

【更新时的值】

Replay Result

【结果】

顺序(Sequential)

每次迭代(Each iteration)

结果:分别将15条数据写入数据表中

功能说明:每迭代一次取一行值,从第一行开始取。当所有的值取完后,再从第一行开始取

如:如果参数化文件中有15条数据,而迭代设置为16次,那执行结果中,参数化文件第一行的数据有两条

顺序(Sequential)

每次出现(Each occurrence)

结果:分别将15条数据写入数据表中

功能说明:每迭代一次取一行值,从第一行开始取。当所有的值取完后,再从第一行开始取

如:如果参数化文件中有15条数据,而迭代设置为16次,那执行结果中,参数化文件第一行的数据有两条

顺序(Sequential)

只取一次(once)

结果:表中写入15条一模一样的数据。

功能说明:每次迭代都取参数化文件中第一行的数据。

随机(Random)

每次迭代(Each iteration)

结果:表中写入15条数据,但可能有重复数据出现

功能说明:每次从参数化文件中随机选择一行数据进行赋值

随机(Random)

每次出现(Each occurrence)

结果:表中写入15条数据,但可能有重复数据出现

功能说明:每次从参数化文件中随机选择一行数据进行赋值

随机(Random)

只取一次(once)

结果:表中写入15条相同数据

功能说明:第一次迭代时随机从参数化文件中取一行数据,后面每次迭代都用第一次迭代的数据。

唯一(Unique)

每次迭代(Each iteration)

自动分配块大小

结果:分别将15条数据写入数据表中

功能说明:第一次迭代取参数化文件中的第一条数据,第二次迭代取第二条数据,以此类推。

注:如果设置迭代次数为16次。结果:在执行第16次迭代时会抛异常,异常日志可在LoadRunner的回放日志(replayLog)中看到。

唯一(Unique)

每次出现(Each occurrence)

步长为1

结果:分别将15条数据写入数据表中

功能说明:第一次迭代取参数化文件中的第一条数据,第二次迭代取第二条数据,以此类推。

注:如果设置迭代次数为16次,而参数化文件中只有15条数据,明显数据不够。此时可以设置“when out of values”属性来判断当数据不够时的处理方式

Abort Vuser:中断虚拟用户

Countinue in a cylic manage:循环取参数化文件中的值,即:当参数化文件中的值取完后又从参数化文件的第一行开始取值。

Countinue with last value:继续用最后一条数据

唯一(Unique)

只取一次(once)

结果:表中写入15条相同数据

功能说明:每次都取参数文件中的第一条数据进行赋值

注意:但是这里不止9中组合方式

 如果看了这些还不清楚,那loadrunner自动了一个参数化模拟器

Loadrunner参数化设置_Loadrunner_14

 这个东西就是你把上面的都设置好啦,但是不知道具体到底用户运行顺序效果是怎么样的,你就可以点击这个按钮进行模拟,就像这样:

Loadrunner参数化设置_Loadrunner_15

这就可以让你直观的看到每一次迭代时到底是使用的哪一个用户名密码啦。将这些都设置完成之后我们的参数化就结束了。

四、实际场景引用

Select next row(选择下一行):
    Sequential(顺序)
    Random(随机)
    Unique(唯一)
Updata value on(更新时的取值):
    Each iteration(每次迭代)
    Each occurrence(每次出现)
    Once(只取一次)

1.单线程:Virtual User Generator中是单线程脚本调试。因此仅用第一种组合:顺序+迭代

2.多线程下常用的四种:

  • 顺序+迭代  适用于多点登录,【可以搜索、发帖、回帖,尽量避免使用】
  • 随机+迭代 : 适用于多点登录,可以搜索、发帖、回帖
  • 唯一+迭代 : 适用于单点登录(不推荐),注册
  • 唯一+一次  适用于单点登录