出现对话框脚本中注释的代码如下:
5.2.4 参数化输入
如果用户在录制脚本过程中,填写提交了一些数据,比如要增加数据库记录。这些操作都被记录到了脚本中。当多个虚拟用户运行脚本时,都会提交相同的记录,这样不符合实际的运行情况,而且有可能引起冲突。为了更加真实的模拟实际环境,需要各种各样的输入。 参数化输入是一种不错的方法。 用参数表示用户的脚本有两个优点: ① 可以使脚本的长度变短。 ② 可以使用不同的数值来测试你的脚本。例如,如果你企图搜索不同名称的图书,你 仅仅需要写提交函数一次。在回放的过程中,你可以使用不同的参数值,而不只搜索一 个特定名称的值。 参数化包含以下两项任务: ① 在脚本中用参数取代常量值。 ② 设置参数的属性以及数据源。 参数化仅可以用于一个函数中的参量。你不能用参数表示非函数参数的字符串。 另外,不是所有的函数都可以参数化的。 参数化输入的讲解,我们采用一个例子的方式来进行。 假如有以上的一个提交数据的窗体,我们想参数化高亮显示的部分(31)。操作方法很 简单,我们只要选中“31”,然后点鼠标右键 选择“Replace with a parameter. ”,出现以下窗口: 下面我们重点介绍一下参数的类型。 n DateTime:很简单,在需要输入日期/时间的地方,可以用DateTime 类型来替代。其属性设置也很简单,选择一种格式即可。当然也可以定制格式。 n Group Name:暂时不知道何处能用到,但设置比较简单。在实际运行中,LoadRunner使用该虚拟用户所在的Vuser Group 来代替。但是在VuGen 中运行时,Group Name将会是None。 n Load Generator Name:在实际运行中,LoadRunner 使用该虚拟用户所在Load Generator 的机器名来代替。 n Iteration Number:在实际运行中,LoadRunner 使用该测试脚本当前循环的次数来 代替。 n Random Number:随机数。很简单。在属性设置中可以设置产生随机数的范围 n Unique Number:唯一的数。在属性设置中可以设置第一个数以及递增的数的大小。 注意:使用该参数类型必须注意可以接受的最大数。例如:某个文本框能接受的 最大数为99。当使用该参数类型时,设置第一个数为1,递增的数为1,但100 个 虚拟用户同时运行时,第100 个虚拟用户输入的将是100,这样脚本运行将会出错。 注意:这里说的递增意思是各个用户取第一个值的递增数,每个用户相邻的两次循 环之间的差值为1。举例说明:假如起始数为1,递增为5,那么第一个用户第一 次循环取值1,第二次循环取值2;第二个用户第一次循环取值为6,第二次为7; 依次类推。 n Vuser ID:设置比较简单。在实际运行中,LoadRunner 使用该虚拟用户的ID 来代替,该ID 是由Controller 来控制的。但是在VuGen 中运行时,Vuser ID 将会是 –1。n File:需要在属性设置中编辑文件,添加内容,也可以从现成的数据库中取数据(下 面我们将会介绍) n User Defined Function:从用户开发的dll 文件提取数据。就目前我认为,这种方式没有必要。VuGen 支持C 语言的语法,在VuGen 中重新编写类似的函数应该不难。 (一家之言,仅供参考) 上面的例子中,我们取随机数即可。 点“Properties… ..”按钮,进行属性设置窗口 添入随机数的取值范围为(1-50),选择一种数据格式。在Update Value on 中有以下几个选项: n Each Occurrence:在运行时,每遇到一次该参数,便会取一个新的值 n Each iteration:运行时,在每一次循环中都取相同的值 n Once:运行时,在每次循环中,该参数只取一次值 这里我们用的是随机数,选择Each Occurrence 非常合适。 下面我们再举一个file 的例子。我们要用数据库中的用户名来参数化登陆用户名。 选择要参数化的数据,右键,选择“Replace with a parameter.”,出现以下窗口: 点“Properties… ..”,按钮,出现以下窗口 注意:参数的文件名不要使用con.dat、pm.dat 或者lpt*.dat 等系统装置名 下面我们将会连接数据库,从数据表中选择用户名。点“Data Wizard”按钮 使用第2 项,下一步 添入连接字符串和SQL 语句后,点Finish 按钮,出现查询结果。 提醒:在参数数据显示区,最多只能看到100 行,如果数据超过100 行,只能点“Edit” 按钮,进入记事本看。 “Select next row ”有以下几种选择: n Sequential:按照顺序一行行的读取。每一个虚拟用户都会按照相同的顺序读取 n Random:在每次循环里随机的读取一个,但是在循环中一直保持不变 n Unique :唯一的数。注意:使用该类型必须注意数据表有足够多的数。比如 Controller 中设定20 个虚拟用户进行5 次循环,那么编号为1 的虚拟用户取前5 个数,编号为2 的虚拟用户取6-10 的数,依次类推,这样数据表中至少要有100 个数据,否则Controller 运行过程中会返回一个错误。 n Same Line As 某个参数(比如Name):和前面定义的参数Name 取同行的记录。 通常用在有关联性的数据上面。 我们这里取值Sequential 即可。 Advance row each iteration 选中即可,表示每一次循环都往前走一行。 手工输入数据比较简单,这里就不再单独介绍了。
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/