LoadRunner如何调用外部函数

使用 VuGen 时,可以调用在外部 DLL 中定义的函数。通过从脚本调用外部函
数,可以降低脚本的内存使用量以及总体运行时间。
要调用外部函数,需要加载定义了该函数的 DLL。
可以用下列方法加载 DLL:
 本地— 用于一个脚本,使用 lr_load_dll 函数。
 全局— 用于所有脚本,方法是向 vugen.dat 文件中添加语句

加载 DLL — 本地
  使用 lr_load_dll 函数可以在 Vuser 脚本中加载 DLL。DLL 加载成功之后,可以
调用 DLL 中定义的任何函数,而无需在脚本中对其进行声明。
要调用 DLL 中定义的函数,请执行下列操作:
1 使用 lr_load_dll 函数在脚本的开头加载 DLL。将语句放在 vuser_init 部分的开
头。lr_load_dll 将替换 ci_load_dll 函数。
请使用以下语法:
lr_load_dll(library_name);
注意,在 UNIX 平台中, DLL 被称为共享库。该库的扩展名取决于平台。
2 在脚本的适当位置调用 DLL 中定义的函数。
在下例中,创建表 Test_1 之后,调用了在 orac1.dll 中定义的 insert_vals 函数。

int LR_FUNC Actions(LR_PARAM p)
{
lr_load_dll("orac1.dll");
lrd_stmt(Csr1, "create table Test_1 (name char(15), id integer)\n", -1,
1 /*Deferred*/, 1 /*Dflt Ora Ver*/, 0);
lrd_exec(Csr1, 0, 0, 0, 0, 0);
/* Call the insert_vals function to insert values into the table.*/
insert_vals();
lrd_stmt(Csr1, "select * from Test_1\n", -1, 1 /*Deferred*/, 1 /*Dflt Ora Ver*/,
0);
lrd_bind_col(Csr1, 1, &NAME_D11, 0, 0);
lrd_bind_col(Csr1, 2, &ID_D12, 0, 0);
lrd_exec(Csr1, 0, 0, 0, 0, 0);
lrd_fetch(Csr1, -4, 15, 0, PrintRow14, 0);

注意: 您可以为 DLL 指定完整路径。如果不指定路径, lr_load_library 将使用
Windows 平台上的 C++ 函数 LoadLibrary 所使用的标准序列来搜索 DLL。在
UNIX 平台上,可以设置 LD_LIBRARY_PATH 环境变量(或平台上与其等效的
变量)。lr_load_dll 函数使用与 dlopen 相同的搜索规则。有关详细信息,请参
阅 dlopen 或与其等效的主页。

加载 DLL — 全局
可以全局加载 DLL,使其函数能够用于所有 Vuser 脚本。DLL 加载成功之后,
可以调用 DLL 中定义的任何函数,而无需在脚本中对其进行声明。
要调用 DLL 中定义的函数,请执行下列操作:
1 向 mdrv.dat 文件(位于应用程序的 dat 目录)的相应部分中添加要加载的 DLL
列表。
请使用以下语法:
PLATFORM_DLLS=my_dll1.dll, my_dll2.dll, …
用您的特定平台替换单词 PLATFORM。有关平台的列表,请参阅 mdrv.dat 文件
的开始部分

例如,要在 NT 平台上为 Winsocket Vuser 加载 DLL,请向 mdrv.dat 文件中添
加下列语句:

[WinSock]
ExtPriorityType=protocol
WINNT_EXT_LIBS=wsrun32.dll
WIN95_EXT_LIBS=wsrun32.dll
LINUX_EXT_LIBS=liblrs.so
SOLARIS_EXT_LIBS=liblrs.so
HPUX_EXT_LIBS=liblrs.sl
AIX_EXT_LIBS=liblrs.so
LibCfgFunc=winsock_exten_conf
UtilityExt=lrun_api
ExtMessageQueue=0
ExtCmdLineOverwrite=-WinInet No
ExtCmdLineConc=-UsingWinInet No
WINNT_DLLS=user_dll1.dll, user_dll2.dll, …
2 在脚本的适当位置调用 DLL 中定义的函数。

转自:http://www.51testing.com/html/66/34866-101583.html

LoadRunner如何调用外部函数的更多相关文章

  1. VC++线程函数内怎么调用外部函数

    VC++线程函数内怎么调用外部函数 1.把外部函数做成静态函数,就可以直接调用了.2.把外部函数所在的对象通过线程函数参数传到线程里面来,这样线程里可以使用此对象及其函数了.

  2. 验证控件jQuery Validation Engine调用外部函数验证

    在使用jQuery Validation Engine的时候,我们除了使用自带的API之外,还可以自己自定义正则验证.自定义正则验证上一篇已经讲过了,如果想使用自定义函数进行验证怎么办?其实这个控件有 ...

  3. IAR EWAR 内联汇编 调用外部函数 Error[Og005], Error[Og006]

    How do I call a C function in another module from inline assembler in IAR EWARM? I have a bit of ass ...

  4. LoadRunner中的Web 函数列表

    LoadRunner中的Web 函数列表 web test LoadRunner fuction_list D:\Program Files (x86)\Mercury Interactive\Mer ...

  5. Perl调用外部命令(其他脚本、系统命令)的方法和区别

    1. `command`; 使用反引号调用外部命令能够捕获其标准输出,并按行返回且每行结束处附带一个回车.反引号中的变量在编译时会被内插为其值.   2. open LIST "ls -l| ...

  6. python第十六课——外部函数and内部函数

    1.外部函数&内部函数 内部函数: 定义在某个函数的内部,就是内部函数: [注意事项]: 1).内部函数可以随意使用它外部函数中的内容 2).外部函数不能使用内部函数中的内容 3).内部函数不 ...

  7. js-template-art【四】通过helper方法注册,调用外部方法

    一.语法 模板代码中调用外部函数,需要通过helper方法注册 template.helper(name, callback) 二.使用[实例] 原文:http://blog.csdn.net/u01 ...

  8. How to:如何在调用外部文件时调试文件路径(常见于使用LaunchAppAndWait和LaunchApp函数)

    原文:How to:如何在调用外部文件时调试文件路径(常见于使用LaunchAppAndWait和LaunchApp函数) IS里调用外部文件的时候,一般都是用LaunchAppAndWait函数,比 ...

  9. LoadRunner调用java函数测试oracle

    LoadRunner调用java函数测试oracle 测试oracle的方法有很多,可以使用loadrunner的oracle协议直接调用oracle进行测试,也可以调用开发的java程序对oracl ...

随机推荐

  1. Gym101981D - 2018ACM-ICPC南京现场赛D题 Country Meow

    2018ACM-ICPC南京现场赛D题-Country Meow Problem D. Country Meow Input file: standard input Output file: sta ...

  2. c++ pb_ds库,实现 红黑树,Splay

    C++ pb_ds库 #include <ext/pb_ds/assoc_container.hpp>#include <ext/pb_ds/tree_policy.hpp> ...

  3. spring注解方式配置以及spring4的泛型注入 (4)

    目录 一.@Controller 注解控制层(action) 二.@Service 注解服务层 三.@Repository 持久层 四.spring4的泛型注入测试 1 创建两个实体User和Role ...

  4. mysql中的Date日期格式的问题:只有日期没有时间及格式化时间

    只有日期没有时间,把xml中的date改为timestamp 格式化最简单的方法:@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", time ...

  5. ASP.NET MVC Controller激活系统详解2

    一.引言 此篇博文紧接上篇博文进行阐述,本篇博文阐述的主题是Controller激活和url路由 二.总述 ASP.NET路由系统是HTTP请求抵达服务端的第一道屏障,它根据注册的路由规则对拦截的请求 ...

  6. org.apache.hadoop.hbase.PleaseHoldException: Master is initializing

    电脑换了重新装了下系统,在本机ubuntu 的环境下搭建hadoopCDH4.5 伪分布式.进入Hbase shell,在创建表的时候出现异常如下: ERROR: org.apache.hadoop. ...

  7. 活动:新春第一次送书,价值78元 X 3本

    新春第一次送书活动,送出3本重量级书籍<深入分布式缓存:从原理到实践>. 作者介绍: 于君泽:蚂蚁金服高级技术专家.花名右军,IT从业超过十五年.对高并发.分布式架构.内建质量.研发管理有 ...

  8. java-day16

    FileWriter 文件字符输出流 extends Writer 构造方法 FileWriter(String filename) FileWriter(File file) flush()方法:刷 ...

  9. 3-MySQL高级-事务-命令(2)

    事务命令 表的引擎类型必须是innodb类型才可以使用事务,这是mysql表的默认引擎 查看表的创建语句,可以看到engine=innodb -- 选择数据库 use jing_dong; -- 查看 ...

  10. Mybatis 使用Mapper接口的Sql动态代码方式进行CURD和分页查询

    1.Maven的pom.xml 2.配置文件 2.1.db.properties 2.2.mybatis.xml 2.3.log4j.xml 3.MybatisUtil工具类 4.Mapper映射文件 ...