LoadRunner如何调用外部函数
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如何调用外部函数的更多相关文章
- VC++线程函数内怎么调用外部函数
VC++线程函数内怎么调用外部函数 1.把外部函数做成静态函数,就可以直接调用了.2.把外部函数所在的对象通过线程函数参数传到线程里面来,这样线程里可以使用此对象及其函数了.
- 验证控件jQuery Validation Engine调用外部函数验证
在使用jQuery Validation Engine的时候,我们除了使用自带的API之外,还可以自己自定义正则验证.自定义正则验证上一篇已经讲过了,如果想使用自定义函数进行验证怎么办?其实这个控件有 ...
- 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 ...
- LoadRunner中的Web 函数列表
LoadRunner中的Web 函数列表 web test LoadRunner fuction_list D:\Program Files (x86)\Mercury Interactive\Mer ...
- Perl调用外部命令(其他脚本、系统命令)的方法和区别
1. `command`; 使用反引号调用外部命令能够捕获其标准输出,并按行返回且每行结束处附带一个回车.反引号中的变量在编译时会被内插为其值. 2. open LIST "ls -l| ...
- python第十六课——外部函数and内部函数
1.外部函数&内部函数 内部函数: 定义在某个函数的内部,就是内部函数: [注意事项]: 1).内部函数可以随意使用它外部函数中的内容 2).外部函数不能使用内部函数中的内容 3).内部函数不 ...
- js-template-art【四】通过helper方法注册,调用外部方法
一.语法 模板代码中调用外部函数,需要通过helper方法注册 template.helper(name, callback) 二.使用[实例] 原文:http://blog.csdn.net/u01 ...
- How to:如何在调用外部文件时调试文件路径(常见于使用LaunchAppAndWait和LaunchApp函数)
原文:How to:如何在调用外部文件时调试文件路径(常见于使用LaunchAppAndWait和LaunchApp函数) IS里调用外部文件的时候,一般都是用LaunchAppAndWait函数,比 ...
- LoadRunner调用java函数测试oracle
LoadRunner调用java函数测试oracle 测试oracle的方法有很多,可以使用loadrunner的oracle协议直接调用oracle进行测试,也可以调用开发的java程序对oracl ...
随机推荐
- IOS中input光标跑偏问题的解决方法
ios端兼容input光标高度处理 在最近的项目中遇到一个问题,input输入框光标,在安卓手机上显示没有问题,但是在苹果手机上 当点击输入的时候,光标的高度和父盒子的高度一样.造成的原因就是给父盒子 ...
- overleaf 提交arXiv 不成功
从overleaf下载的PDF不能够直接提交给arXiv,但是可以在submit中选择导出下载压缩包,图片不能是png,最好是PDF 或者eps. 参考文献是bbl 文件,不是bib.
- 【笔记篇】不普及向——莫比乌斯反演学习笔记 && 栗题HAOI2011 Problem B
Part0 广告(当然没有广告费) P.S. 这篇文章是边学着边用Typora写的...学完了题A了blog也就呼之欲出了~有latex化式子也非常方便...非常建议喜欢Markdown的dalao们 ...
- 前端常用的库和实用技术之JavaScript高级函数
1.惰性载入函数 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- 取消设置透明状态栏,使 ContentView 内容不再覆盖状态栏
取消设置透明状态栏,使 ContentView 内容不再覆盖状态栏,在MainActivity中添加以下代码: getWindow().clearFlags(WindowManager.LayoutP ...
- Laravel Illuminate\Http\Exceptions\PostTooLargeException
出错原因是: 请求的post的数据比 php.ini设定的 post_max_size大的原因 解决方法: 增加php.ini中 post_max_size和upload_max_filesize的设 ...
- Erlang学习记录:运算符
数学运算符 说明 详细 符号 加减乘 +-* 浮点数除 结果为浮点数 / 整数除 除数和被除数都必须是整数,结果为整数 div 整数取余 rem 逻辑运算符 说明 符号 详细 and 前后两个值都为真 ...
- [JZOJ3303] 【集训队互测2013】城市规划
题目 题目大意 求\(N\)个点的简单无向图的方案数(有编号). 结果对\(1004535809\)取模. 思考历程 感觉这个问题非常经典. 当时想到了一堆式子,但都觉得可能会有重和漏,于是弃掉了-- ...
- 【JZOJ5431】序列操作
description 一开始有n个非负整数hi,接下来会进行m次操作,第i次操作给出一个数c[i],要求你选出c[i]个大于零的数并将它们减去1. 问最多可以进行多少轮操作后无法操作(即没有c[i] ...
- 校园商铺-4店铺注册功能模块-8店铺注册之Controller层的改造
不合理的地方: 1. 并不需要将InputStream转换成File类型,直接将InputStream传进入交给CommonsMultipartfile去处理就可以了 如果做这样的转换,每次都需要生成 ...