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=, b=;
i = &a;
j = &b;
lr_message("i+j=%d",sum(i,j));
return ;
}
 

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

Virtual User Script started at : -- ::
Starting action vuser_init.
Web Turbo Replay of LoadRunner 11.0. for Windows R2; build (Feb ::) [MsgId: MMSG-]
Run Mode: HTML [MsgId: MMSG-]
Run-Time Settings file: "C:\test\study\Lr_Call_cCode\\default.cfg" [MsgId: MMSG-]
Ending action vuser_init.
Running Vuser...
Starting iteration .
Starting action Action.
i+j=
Ending action Action.
Ending iteration .
Ending Vuser...
Starting action vuser_end.
Ending action vuser_end.
Vuser Terminated.

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

2.第二种方法,更直接

直接在action中写代码

Action()
{
int *i, *j;
int a=, b=;
i = &a;
j = &b;
lr_message("i+j=%d",sum(i,j));
return ;
}
/*直接在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

上一篇:【C语言】03-第一个C程序代码分析


下一篇:Python2安装说明