发布新日志

  • LoadRunner常用函数

    2007-11-16 10:43:53

    •   LoadRunner常用函数......

    1.         Intweb_reg_save_param("参数名","LB=左边界","RB=右边界",LAST);/注册函数,在参数值出现的前面使用,注册成功时返回值为0,注册失败时返回值为1。左右边界需根据TreeView里相关步骤的SeverResponse代码来确定。用以上函数能获取第一个符合条件的数值。

    2.         web_reg_save_param("参数名”,"LB=左边界”,"RB=右边界","Ord=All",LAST);/当参数有多个值时,加上"Ord=All”后可获取所有的数值。注册成功后,{参数名_count}表示取得的数值个数,{参数名_1}为第一个数值,{参数名_2}为第二个数值。

    3.         lr_save_string(“字符串变量”,"参数名")/将字符变量里的值传递给指定参数。通过该函数来改变DataFile类型参数的数值。

    4.         lr_eval_string("{参数名}")/取得参数的数值。可取得已注册参数或DataFile类型参数的数值。eval就是evaluation(估价, 评价, 赋值)的缩写。

    5.         int sprintf(char * string , const char*format_string[,args]);/字符串赋值函数

    Action()

    {

    int index=56;

    charfilename[64],*suffix="txt";

    sprintf(filename,"log_%d.%s",index,suffix);

    lr_output_message("Thenewfilenameis%s",filename);

    return 0;

    }

    OutputThenewfilenameislog_56.txt

    6.         char*strcat(char*to,constchar*from);/将一字符串追加到另一字符串后面

    7.         web_find("find_time","What=2006-03-0118:21:16.882",LAST);/增加检查点,检查“2006-03-0118:21:16.882”这个字符串是否出现在当前页面上。find_time为自己任意输入的检查点名称。

    8.       事务函数

    lr_end_sub_transaction/标记子事务的结束以便进行性能分析

    lr_end_transaction/标记LoadRunner事务的结束

    lr_end_transaction_instance/标记事务实例的结束以便进行性能分析

    lr_fail_trans_with_error/将打开事务的状态设置为LR_FAIL并发送错误消息

    lr_get_trans_instance_duration/获取事务实例的持续时间(由它的句柄指定)

    lr_get_trans_instance_wasted_time/获取事务实例浪费的时间(由它的句柄指定)

    lr_get_transaction_duration/获取事务的持续时间(按事务的名称)

    lr_get_transaction_think_time/获取事务的思考时间(按事务的名称)

    lr_get_transaction_wasted_time/获取事务浪费的时间(按事务的名称)

    lr_resume_transaction/继续收集事务数据以便进行性能分析

    lr_resume_transaction_instance/继续收集事务实例数据以便进行性能分析

    lr_set_transaction_instance_status/设置事务实例的状态

    lr_set_transaction_status/设置打开事务的状态

    lr_set_transaction_status_by_name/设置事务的状态

    lr_start_sub_transaction/标记子事务的开始

    lr_start_transaction/标记事务的开始

    lr_start_transaction_instance/启动嵌套事务(由它的父事务的句柄指定)

    lr_stop_transaction/停止事务数据的收集

    lr_stop_transaction_instance/停止事务(由它的句柄指定)数据的收集

    lr_wasted_time/消除所有打开事务浪费的时间

    lr_end_sub_transaction/标记子事务的结束以便进行性能分析

    r_end_transaction/标记LoadRunner事务的结束

    lr_end_transaction_instance/标记事务实例的结束以便进行性能分析

    lr_fail_trans_with_error/将打开事务的状态设置为LR_FAIL并

     

    9.      命令行分析函数

    lr_get_attrib_double/检索脚本命令行中使用的double类型变量

    lr_get_attrib_long/检索脚本命令行中使用的long类型变量

    lr_get_attrib_string/检索脚本命令行中使用的字符串

    10.  信息性函数

    lr_user_data_point/记录用户定义的数据示例

    lr_whoami/将有关Vuser脚本的信息返回给Vuser脚本

    lr_get_host_name/返回执行Vuser脚本的主机名

    lr_get_master_host_name/返回运行LoadRunnerController的计算机名

    11.  字符串函数

    lr_eval_string/用参数的当前值替换参数

    lr_save_string/将以NULL结尾的字符串保存到参数中

    lr_save_var/将变长字符串保存到参数中

    lr_save_datetime/将当前日期和时间保存到参数中

    lr_advance_param/前进到下一个可用参数

    lr_decrypt/解密已编码的字符串

    lr_eval_string_ext/检索指向包含参数数据的缓冲区的指针

    lr_eval_string_ext_free/释放由lr_eval_string_ext分配的指针

    lr_save_searched_string/在缓冲区中搜索字符串实例,并相对于该字符串实例,该缓冲区的一部分保存到参数中

    12.  消息函数

    lr_debug_message/将调试消息发送到输出窗口

    lr_error_message/将错误消息发送到输出窗口

    lr_get_debug_message/检索当前的消息类

    lr_log_message/将输出消息直接发送到output.txt文件,此文件位于Vuser脚本目录中。该函数有助于防止输出消息干扰TCP/IP通信。

    lr_output_message/将消息发送到输出窗口

    lr_set_debug_message/为输出消息设置消息类

    lr_vuser_status_message/生成格式化输出并将其打印到ControllerVuser状态区域。

    lr_message/将消息发送到Vuser日志和输出窗口

    13.  操作函数

    web_custom_request允许您使用HTTP支持的任何方法来创建自定义HTTP请求
    web_image
    在定义的图像上模拟鼠标单击
    web_link
    在定义的文本链接上模拟鼠标单击
    web_submit_data
    执行无条件无上下文的表单
    web_submit_form
    模拟表单的提交
    web_url
    加载由“URL”属性指定的URL

    14.  身份验证函数

    身份验证函数web_set_certificate使Vuser使用在InternetExplorer注册表中列出的特定证书
    身份验证函数web_set_certificate_ex指定证书和密钥文件的位置和格式信息
    身份验证函数web_set_user指定Web服务器的登录字符串和密码,用于Web服务器上已验证用户身份的区域

    15.  缓存函数

    缓存函数web_cache_cleanup清除缓存模拟程序的内容

    16.  检查函数

    检查函数web_findHTML页内搜索指定的文本字符串
    检查函数web_global_verification在所有后面的HTTP请求中搜索文本字符串
    检查函数web_image_check验证指定的图像是否存在于HTML页内
    检查函数web_reg_find在后面的HTTP请求中注册对HTML源或原始缓冲区中文本字符串的搜索

    17.  连接定义函数

    连接定义函数web_disable_keep_alive禁用Keep-AliveHTTP连接
    连接定义函数web_enable_keep_alive启用Keep-AliveHTTP连接
    连接定义函数web_set_connections_limit设置Vuser在运行脚本时可以同时打开连接的最大数目

    18.  并发组

    web_concurrent_end标记并发组的结束
    web_concurrent_start
    标记并发组的开始

    19.  cook函数

    web_add_cookie添加新的Cookie或修改现有的Cookie
    web_cleanup_cookies
    删除当前由Vuser存储的所有
    Cookie
    web_remove_cookie
    删除指定的Cookie

    20.  关联函数

    web_create_html_paramHTML页上的动态信息保存到参数中。(LR6.5及更低版本)
    web_create_html_param_ex
    基于包含在HTML页内的动态信息创建参数(使用嵌入边界)(LR6.5及更低版本)。
    关联函数 查看(2089) 评论(1) 收藏 分享 管理

  • Loadrunner中参数设置详细分析(转)

    2007-11-16 10:32:45

    Loadrunner中参数设置详细分析
    做负载或者压力测试时,很多人选择使用了Loadrunner测试工具。该工具的基本流程是先将用户的实际操作录制成脚本,然后产生数千个虚拟用户运行脚本(虚拟用户可以分布在局域网中不同的PC机上),最后生成相关的报告以及分析图。但是在录制脚本的过程中会遇到很多实际的问题,比如不同的用户有不同的使用数据,这就牵涉到参数的设置问题。本文就Loadrunner中参数的设置进行说明,希望对大家有所帮助。
       
    在录制程序运行的过程中, VuGen (脚本生成器)   自动生成了包含录制过程中实际用到的数值的脚本。如果你企图在录制的脚本中使用不同的数值执行脚本的活动(如查询、提交等等),那么你必须用参数值取代录制的数值。这个过程称为参数化脚本。
       
    本文主要包括如下内容:理解参数的局限性、建立参数、定义参数的属性、理解参数的类型、为局部数据类型设置参数的属性、为数据文件设置参数的属性、从已经存在的数据库中引入数据。
       
    除了 GUI ,以下的内容适合于各种类型的用户脚本。

    一、关于参数的定义
       
    在你录制程序运行的过程中,脚本生成器自动生成由函数组成的用户脚本。函数中参数的值就是在录制过程中输入的实际值。

       
    例如,你录制了一个 Web 应用程序的脚本。脚本生成器生成了一个声明,该声明搜索名称为“ UNIX ”的图书的数据库。当你用多个虚拟用户和迭代回放脚本时,也许你不想重复使用相同的值“ UNIX ”。那么,你就可以用参数来取代这个常量。结果就是你可以用指定的数据源的数值来取代参数值。数据源可以是一个文件,也可以是内部产生的变量。
       
    用参数表示用户的脚本有两个优点:
      可以使脚本的长度变短。
      可以使用不同的数值来测试你的脚本。例如,如果你企图搜索不同名称的图书,你仅仅需要写提交函数一次。在回放的过程中,你可以使用不同的参数值,而不只搜索一个特定名称的值。
       
    参数化包含以下两项任务:
      在脚本中用参数取代常量值。
      设置参数的属性以及数据源。
       
    参数化仅可以用于一个函数中的参量。你不能用参数表示非函数参数的字符串。另外,不是所有的函数都可以参数化的。

     

    二、参数的创建
       
    可以指定名称和类型来创建参数。不存在对脚本中参数个数的限制。在 Web 程序的用户脚本中,你可以使用如下过程在基于文本的脚本视图中创建参数。或者,也可以在基于图标的树形视图中创建参数。

       
    在基于文本的脚本视图中创建一个参数:
    1
      将光标定位在要参数化的字符上,点击右键。打开弹出菜单。
    2
      在弹出菜单中,选择“ Replace with a Parameter ”。选择或者创建参数的对话框弹出。
    3
      在“ Parameter name ”中输入参数的名称,或者选择一个在参数列表中已经存在的参数。
    4
      在“ Parameter type ”下拉列表中选择参数类型。
    5
      点击“ OK ”,关闭该对话框。脚本生成器便会用参数中的值来取代脚本中被参数化的字符,参数用一对“ {} ”括住。
       
    注意:在参数化 CORBA 或者 General-Java  用户脚本的时候,必须参数化整个字符串,而不是其中的部分。另外注意:除了 Web 或者 WAP ,缺省的参数括号对于任何脚本都是   {} ”。你可以在“ General Options ”对话框中的“ Parameterization ”标签( Tools>General Options )中定义参数括号种类。
    6
      用同样的参数替换字符的其余情况,选中参数,点击右键,弹出菜单。从弹出的菜单中,选择“ Replace More Occurrences
    ”。搜索和替换对话框弹出。“ Find What ”中显示了你企图替换的值。“ Replace With ”中显示了括号中参数的名称。选择适当的检验框来匹配整个字符或者大小写。如果要搜索规则的表达式( . ! ? 等等),选中“ Regular Expression ”检验框,然后点击“ Replace ”或者“ Replace All ”。

       
    注意:小心使用“ Replace All ”,尤其替换数字字符串的时候。脚本生成器将会替换字符出现的所有情况。
    7
      如果想用以前定义过的参数来替换常量字符串的话,选中该字符串,点击右键,然后选择“ Use Existing Parameter ”,子菜单“ Use Existing Parameters ”弹出。从子菜单“ Use Existing Parameters ”选择参数,或者用“ Select from Parameter List ”来打开参数列表对话框。
       
    注意:如果用以前定义过的参数来替换常量字符串的话,那么,使用“ Parameter List ”非常方便。同时,还可以查看和修改该参数的属性。
    8
      对于已经用参数替换过的地方,如果想取回原来的值,那么,就在参数上点击右键,然后选择“ Restore Original value ”。
       
    Web 用户脚本的树形视图中创建参数:
    1
    、将光标定位在企图参数化的地方,点击右键,从弹出的菜单中选择“ Properties ”。则相关的属性对话框打开。

    2
    、点击在要参数化的参量的旁边的“ ABC ”形状的图标。“ Select or Create Parameter ”对话框打开。
    3
    、在“ Parameter name ”中输入参数的名称,或者从列表中选择一个已经存在的参数。
    4
    、在“ Parameter type ”中输入参数的类型。
    5
    、点击“ OK ”关闭该对话框。用户脚本生成器会用参数来替换最初的字符串常量,并用一个表格形状的图标替换“ ABC ”形状的图标。
    6
    、要恢复参数化以前的值,点击图标,然后从弹出的菜单中选择“ Undo Parameter ”,则以前的值便会重现。

     

    三、定义参数的属性
       
    创建参数完成后,就可以定义其属性了。参数的属性定义就是定义在脚本执行过程中,参数使用的数据源。在 Web 用户脚本中,你既可以在基于文本的脚本视图中定义参数属性,也可以在基于图标的树形视图中定义参数属性。下面的过程将教你如何在基于本文的脚本视图中定义参数属性。

       
    在基于文本的脚本视图中定义参数属性步骤:
    1
      在参数上点击右键,有菜单弹出。
    2
      在弹出的菜单中,选择“ Parameter Properties ”。参数属性对话框打开,显示和当前参数类型相关的属性。
    3
      输入参数的属性值。
    4
      点击“ Close ”关闭参数属性对话框。
        
    Web 用户脚本的树形视图中定义参数的属性:
    1
      将关标定位在参数上,然后点击右键,选择“ Properties ”。属性对话框打开。
    2
      点击要定义属性的参数旁边的表格形状按钮,点击右键,选择“ Parameter Properties ”。参数属性对话框打开,和参数类型相关的属性显示出来。
    3
      输入参数的属性。
    4
      点击“ Close ”关闭参数属性对话框。
       
    使用参数列表:
      使用参数列表可以在任意时刻查看所有的参数,创建新的参数、删除参数,或者修改已经存在参数的属性。
    1
      点击参数列表按钮或者用“ Vuser>Parameter List ”。参数列表对话框打开。
    2
      要创建新的参数,点击“ New ”按钮。新的参数则被添加在参数树中,该参数有一个临时的名字,你可以给它重新命名,然后回车。设置参数的类型和属性,点击“ OK ”,关闭参数列表对话框。
       
    注意:不要将一个参数命名为“ unique ”,因为这个名称是用户脚本生成器本身的。用户脚本生成器创建新的参数,但是不会自动用该参数在脚本中替换任意选中的字符串。
      要删除已有的参数,那么,要先从参数树中选择该参数,点击“ Delete ”,然后确认你的行为即可。
    4
      要修改已有参数,那么,要先从参数树中选择该参数,然后编辑参数的类型和属性。

    四、理解参数的类型
      在你定义参数属性的时候,要指定参数值的数据源。你可以指定下列数据源类型的任何一种:

    Internal Data
    ――   虚拟用户内部产生的数据。
    Data Files 
    ――存在于文件中的数据。可能是已存在的文件或者是用脚本生成器新创建的。
    User-Defined Functions
    ――   调用外部 DLL 函数生成的数据
       Internal Data 包括以下几种:
    1
     Date/Time
       Date/Time 用当前的日期 / 时间替换参数。要指定一个 Date/Time 格式,你可以从菜单列表中选择格式,或者指定你自己的格式。这个格式应该和你脚本中录制的 Date/Time 格式保持一致。

    2
     Group Name
       Group Name  用虚拟用户组名称替换参数。在创建 scenario 的时候,你可以指定虚拟用户组的名称。当从用户脚本生成器运行脚本的时候,虚拟用户组名称总是 None

    3
     Load Generator Name
       Load Generator Name 用脚本负载生成器的名称替换参数。负载生成器是虚拟用户在运行的计算机。

    4. Iteration Number
       Iteration Number 用当前的迭代数目替换参数。
    5
     Random Number
       Random Number 用一个随机数替换参数。通过指定最大值和最小值来设置随机数的范围。

    6
     Unique Number
       Unique Number 用一个唯一的数字来替换参数。你可以指定一个起始数字和一个块的大小。

    7
     Vuser ID
       Vuser ID 用分配给虚拟用户的 ID 替换参数, ID 是由 Loadrunner 的控制器在 scenario 运行时生成的。如果你从脚本生成器运行脚本的话,虚拟用户的 ID 总是 -1

    五、数据文件
      数据文件包含着脚本执行过程中虚拟用户访问的数据。局部和全局文件中都可以存储数据。可以指定现有的 ASCII 文件、用脚本生成器创建一个新的文件或者引入一个数据库。在参数有很多已知值的时候数据文件非常有用。数据文件中的数据是以表的形式存储的。一个文件中可以包含很多参数值。每一列包含一个参数的数据。列之间用分隔符隔开,比如说,用逗号。

      对数据文件设置参数属性
      如果使用文件作为参数的数据源,必须指定以下内容:文件的名称和位置、包含数据的列、文件格式,包括列的分隔符、更新方法。
      如果参数的类型是“ File ”,打开参数属性( Parameter Properties )对话框,设置文件属性如下:
    1
      在“ File path ”中输入文件的位置,或者点击“ Browse ”指定一个已有文件的位置。缺省情况下,所有新的数据文件名都是“ parameter_name.dat ”,注意,已有的数据文件的后缀必须是 .dat
    2
      点击“ Edit ”。记事本打开,里面第一行是参数的名称,第二行是参数的初始值。使用诸如逗号之类的分隔符将列隔开。对于每一新的表行开始一行新的数据。
      注意:在没有启动记事本的情况下如果想添加列,就在参数属性对话框中点击“ Add Col ”,那么“ Add new column ”对话框就会弹出。输入新列的名称,点击“ OK ”。脚本生成器就会添加该列到表中,并显示该列的初始值。
    3
      在“ Select Column ”部分,指明包含当前参数数据的列。你可以指定列名或者列号。列号是包含你所需要数据的列的索引。列名显示在每列的第一行( row 0 )。
    4
      在“ Column delimiter ”中输入列分隔符,你可以指定逗号、空格符等等。
    5
      在“ First data line ”中,在脚本执行的时候选择第一行数据使用。列标题是第 0 行。若从列标题后面的第一行开始的话,那就在“ First data line ”中输入 1 。如果没有列标题,就输入 0
    6
      查看(723) 评论(0) 收藏 分享 管理