用同样的参数替换字符的其余情况。选中参数,单击右键,在弹出的菜单中选择“Replace more occurrences”,如图5-30所示,打开搜索和替换对话框。“Find What”中显示了你企图替换的值,“Replace With”中显示了括号中参数的名称。选择适当的检验框来匹配整个字符或者大小写。如果要搜索规则的表达式(.、!、?等),则选中“Regular Expression”检验框,然后单击“Replace”或者“Replace All”按钮。
提示:小心使用“Replace All”,尤其替换数字字符串的时候。脚本生成器将会替换字符出现的所有情况。
如果想用以前定义过的参数来替换常量字符串的话,选中该字符串,单击右键,然后选择“Use existing parameters”,从弹出的子菜单中选择参数,或者用“Select from Parameter List”来打开参数列表对话框,如图5-31所示。
图5-30 在右键菜单中选择替换其他变量
图5-31 在右键菜单中选择使用已有参数
提示:如果用以前定义过的参数来替换常量字符串的话,那么,使用“Parameter List”非常方便。同时,还可以查看和修改该参数的属性。
对于已经用参数替换过的地方,如果想取回原来的值,那么就在参数上单击右键,然后选择“Restore Original value”。
提示:不是所有的数据都可以参数化。
上面LoadRunner给我们提供了一种很方便的机制去参数化。但这种机制的应用范围是有限的,只有函数的参数才能参数化,不能参数化非函数参数的数据。但是同时,不是所有函数的参数都能参数化。
例如:
lrd_stmt (LRD_CURSOR FAR *mptCursor, char FAR *mpcText, long mliTextLen, LRDOS_INT4 mjOpt1, LRDOS_INT4 mjOpt2, int miDBErrorSeverity); LoadRunner只支持mpctext参数化: lrd_stmt(Csr4, "select name from sysobjects where name =\"<name>\" ", -1, 148, -99999, 0); |
那么,对于不能使用上面机制参数化的数据,我们有没有其他办法将其参数化呢?答案是lr_eval_string,我们可以在Vuser脚本中的任何地方使用lr_eval_string来参数化数据。lr_eval_string用来得到一个参数的值,而参数可以预先在LoadRunner的Parameter List里定义好,也可以是之前通过其他函数创建的。下面是一个小例子:
//通过lr_save_datetime把七天后的时间保存在date参数中lr_save_datetime("%d %m %y", DATE_NOW + (ONE_DAY*7), "date");
//通过lr_eval_string把date参数中的值取出来,lr_output_message的输出值为七天后的时间
lr_output_message("Date is %s",lr_eval_string("{date}"));
其详细使用方法可参见LoadRunner函数手册。这里需要注意的是:lr_eval_string函数的返回值是一个指向参数值的指针,这个指针指向的内存是LoadRunner内部分配的,每次Iteration后自动释放。如果在Iteration中还有多层循环进行参数化,那么最好不要使用lr_eval_string了,这会导致内存迟迟不能释放。在这种情况下,应该使用lr_eval_string_ext,同时配对使用lr_eval_string_ext_free来及时释放内存。
连载一 连载二 连载三 连载四 连载五 连载六 连载七 连载八 连载九 连载十 连载十一 连载十二
本文选自:《51Testing软件测试作品系列》之一的《性能测试从零开始——LoadRunner入门》 ,本站经电子工业出版社和作者的授权,近期将进行部分章节的连载,敬请期待!
版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像。51testing软件测试网欢迎与业内同行进行有益的合作和交流,如果有任何有关内容方面的合作事宜,请联系我们。