zoukankan      html  css  js  c++  java
  • loadrnner添加C语言代码的几种方式

    今天有人在群里问,想直接把自己的C语言代码让lr调用,该怎么搞。

    这东西说来简单,只是对Loadrunner这工具不熟悉可能才会有这种问题吧。个人理解,一般有三种方法吧,废话不多,直接干货。

    1.直接引用

    1)写一个c代码,直接保存为c文件,代码如下。文件为sum.c

    int sum(int num1,int num2)
    {
         retun num1+num2;   
    }

     2)打开Loadrunner 新建一个空白http协议脚本,保存为Lr_Call_cCode

    3)打开该脚本的文件夹,找到“globals.h”文件,在全局变量中添加以下内容,保存。

    #ifndef _GLOBALS_H
    #define _GLOBALS_H
    //--------------------------------------------------------------------
    // Include Files
    #include "lrun.h"
    #include "web_api.h"
    #include "lrw_custom_body.h"
    #include "sum.c"  //此行为添加内容
    //--------------------------------------------------------------------
    // Global Variables
    #endif // _GLOBALS_H

     4)将文件"sum.c"拷贝到脚本“Lr_Call_cCode”根目录中

    5)编辑action脚本如下:

    Action() 
    { 
      int *i, *j; 
      int a=50, b=50; 
      i = &a; 
      j = &b; 
      lr_message("i+j=%d",sum(i,j)); 
     return 0; 
    }
     

     6)保存,调试脚本,通过。

    Virtual User Script started at : 2016-03-28 09:13:52
    Starting action vuser_init.
    Web Turbo Replay of LoadRunner 11.0.0 for Windows 2008 R2; build 9238 (Feb  1 2011 02:48:36)      [MsgId: MMSG-27143]
    Run Mode: HTML      [MsgId: MMSG-26000]
    Run-Time Settings file: "C:	eststudyLr_Call_cCode\default.cfg"      [MsgId: MMSG-27141]
    Ending action vuser_init.
    Running Vuser...
    Starting iteration 1.
    Starting action Action.
    i+j=100
    Ending action Action.
    Ending iteration 1.
    Ending Vuser...
    Starting action vuser_end.
    Ending action vuser_end.
    Vuser Terminated.

     =============华丽的分割线==========================================================

    2.第二种方法,更直接

    直接在action中写代码

    Action()
    {
     int *i, *j;
     int a=50, b=50; 
     i = &a;
     j = &b; 
    lr_message("i+j=%d",sum(i,j));
     return 0; 
    }
    /*直接在action函数外部写c代码*/
    int sum(int num1,int num2)
    {
         retun num1+num2;   
    }
    保存脚本,回放,结果同1.

    3.通过VC++使用标准C语言编写sum.dll库

    通过Loadrunner调用,官方文档说明:

    int lr_load_dll( const char *library_name ); 
    note:library_name  The name of a DLL (Windows) or shared object (UNIX).  
    The lr_load_dll function loads a DLL (Windows) or shared object (UNIX) allowing you to call an external function when replaying using the
    C interpreter. Once you load the DLL, you can call any function defined in the DLL, without having to declare it. You can specify a full path for the DLL. On Windows platforms, if you do not specify a path, lr_load_library searches for the DLL using the standard sequence used by the C++ function, LoadLibrary . On UNIX platforms, you can set the LD_LIBRARY_PATH environment variable (or the platform equivalent). The lr_load_dll function uses the same search
    rules as dlopen. For more information, see the man pages for dlopen or its equivalent.

    dll动态库编写使用标准c++函数,加载标准的WindowsLoadLibrary.Linux平台类似,不过大部分人用估计都是在windows平台吧。

    想看案例,给个链接。http://www.cnblogs.com/coderzh/archive/2008/04/02/1135118.html

  • 相关阅读:
    zookeeper安装
    Xmemcached的FAQ和性能调整建议
    memcache命令
    xmemcached的使用
    从硬币游戏学习敏捷开发
    memcached安装
    系统负载能力浅析
    kubernetes1.18安装metrics-server服务
    启动docker run 报错:iptables No chain/target/match by that name
    docker容器内apt更换国内阿里源
  • 原文地址:https://www.cnblogs.com/yezi-share/p/5330106.html
Copyright © 2011-2022 走看看