• LoadRunner关联通用函数的学习


    LoadRunner关联通用函数的学习

     

       写这篇文章的时候,我先声明一下,本BLOG中的文章如果没有写出是转贴的一般就是本人原创.

       Loadrunner脚本中进行关联的时候,用到了一些函数,作用是把字符串保存到参数中,并且在需要的时候检索出来.C Vusers中用到的函数有:

    lr_eval_string  所有出现参数的地方用它的当前值来代替.

    lr_save_string   把null-terminated字符串保存到参数中.其中,null-terminated的意思,我从网上查了下是:"以空字符为结束标志的字符串",也就是以""结束的字符串,其中的0是ASCII码的0,是不能用显示字符表示出来的,只有用转义字符表示了.

    lr_save_var 把变长字符串保存到参数中.

    下面再来看下每个函数的具体解释(参考帮助):

    lr_eval_string:

    C Language

    char *lr_eval_string (const char *instring);

    返回内嵌参数赋值后的字符串。

     

    instring:需要赋值的字符串。

    lr_eval_string函数返回任何内嵌参数赋值后的输入字符串。如果字符串变量只包含一个参数,函数返回参数的当前值。

    内嵌参数必须在括号中。

    注:lr_eval_string是内部地分配内存。在每一次迭代之后会释放。如果你在循环中给参数赋值,不要使用lr_eval_string保存内存。你需要使用lr_eval_string_ext,并且在每个循环迭代中使用lr_eval_string_ext_free释放内存。

    这里我再补充一下:lr_eval_string_ext在关联的数据是二进制数据,例如,数据包含嵌入的NULL字符时是非常有用的。

    例子:下面的例子使用lr_eval_string来代替参数row_cnt的当前值。使用lr_output_message把这个值输出到输出窗口。

    lrd_stmt(Csr1, "select count(*) from employee", -1, 1 /*Deferred*/, 2 /*Ora V7*/, 0);

    lrd_bind_col(Csr1, 1, &COUNT_D1, 0, 0);

    lrd_exec(Csr1, 0, 0, 0, 0, 0);

    lrd_save_col(Csr1, 1, 1, 0, "row_cnt");

    lrd_fetch(Csr1, 1, 1, 0, PrintRow2, 0);

    lr_output_message("value : %s",

           lr_eval_string("The row count is: {row_cnt}"));

    lr_save_string:

    C Language

    intlr_save_string (const char *param_value, const char *param_name);

    param_value:给参数赋值的值,参数值

    param_name:参数名称

    lr_save_string函数把指定的以空结束的字符串赋值给参数。这个函数在关联查询的时候非常有用。需要使用lr_eval_string来确定参数的值。

    例子:

    在下面的例子中,lr_save_string给参数emp_id赋值为777。然后这个参数被用在另一个查询中。

    lrd_stmt(Csr1, "select id from employees where name='John'", ...);

    lrd_bind_col(Csr1,1,&ID_D1,...);

    lrd_exec(Csr1, ...);

    lrd_fetch(Csr1, 1, ...);

     

     
     

    ID_D1

    0

    777

     

    lr_save_string("777", "emp_id");

    lrd_stmt(Csr1,"select salary from payment where id ='{emp_id}'",...);

    lrd_exec(Csr1, 0, 0, 0, 0, 0);

    lr_save_var

    C Language

    intlr_save_var (const char *param_value, unsigned long constvalue_len, unsigned long constoptions, const char *param_name);

    param_value:参数值

    value_len:值的字节长度

    options:参数选项,一般为0。

    param_name:参数名称。

    lr_save_var函数把指定的变长字符串赋值给参数。这个函数在关联查询的时候非常有用。需要使用lr_eval_string来确定参数的值。

    例子:

    在下面的例子中,lr_save_var 用来限制参数的长度。

    Action()

    {

           #define MAX_NAME_LEN 4

     

    // 创建参数, InName

           lr_save_string("Fitzwilliam", "InName");

    // 把 "InName"的前四个字节保存到 "ShortName"

           lr_save_var( lr_eval_string("{InName}"),

                  MAX_NAME_LEN, 0, "ShortName");

           return 0;

    }

    Output:

    Action.c(8): Notify: Saving Parameter "InName = Fitzwilliam"

    Action.c(10): Notify: Saving Parameter "ShortName = Fitz"

      ok,用了一上午时间把这几个函数学习了下,哈哈,当然早晨也起来的晚了,今天星期日呀。希望这篇文章对大家有用。

     

    本文为zibeike原创,转载请注明出处:http://www.51testing.com/?34866

     

     

  • 相关阅读:
    现代软件工程_第一周练习_第12题
    [assembly: AssemblyVersion("1.0.1.*")] 指定版本字符串不符合所需格式
    C#中结构体与字节流互相转换
    字节转化为结构体BytesToStruct
    C#调用Microsoft.DirectX.DirectSound问题记录及解决
    C# Wpf集合双向绑定
    <转载>XML操作
    <转载>提升程序的特权(AdjustTokenPrivileges)
    <转载>批处理之FOR语句祥解
    Effective STL 笔记: Item 6--Be alert for C++'s most vexing parse
  • 原文地址:https://www.cnblogs.com/abcd19880817/p/7201533.html
Copyright © 2020-2023  润新知