关闭

解决LR无法动态从数据库取值的方法

发表于:2007-4-17 15:01

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:kernzhang    来源:51testing博客

LR本身并不提供动态的到数据库中取获取数据,所以昨天下午性情所致,写了一个极其简单的一个动态链接库

下面是dll提供的API介绍!
int init_db(char* connectString);
input:
connectString--为SQL链接串
output:0---代表成功,非0--代表失败
int execSQL(char* sql);
input:sql--你需要执行的sql语句
output:0---代表成功,非0--代表失败
int bindCol(int col,char* colname,char col_type,int length)
input:
col--表示SQL中的列号
colname--表示你需要获取SQL的值
col_tyoe:有两种c--代表字符型i---代表int
length---代表着你去的值长度是多少
int fetchData();
获取值


long hstmt;
init_hstmt(&hstmt);
断掉数据库链接以及释放内存
disConnect_hstmt(hstmt);
LR调用:
你把dll拷贝到LRscrīpts中就成了!或者按照如下方式加载:
全局的动态链接库的调用则需要修改mdrv.dat,路径在LoadRunner
的安装目录下面(LoadRunner/dat directory);在里面修改如例:
[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, ...
//最后一行是加载你需要的DLL



LR脚本示例:
char msgid[80],sp[20];
lr_load_dll("GetData.dll");
i=init_db("DRIVER={SQL Server};SERVER=*****;UID=******;PWD=*****;DATABASE=******");
lr_output_message("i=%d",i);
i+=execSQL("select top 1 org_msgid,sp_number from msg");
lr_output_message("i=%d",i);
i+=bindCol(1,msgid,"c",77);
i+=bindCol(2,sp,"c",6);
lr_output_message("i=%d",i);
i+=fetchData();
lr_output_message("i=%d",i);
lr_output_message("i=%s",msgid);
lr_output_message("i=%s",sp);
disConnect();

本想将dll文件与LR案例程序作为附件放上来!因网站不支持此文件!所以如果各位有需要此文件,请到www.kernzhang.com的个人网站上下载!(注为第三版的dll)

此程序在LR8.0上调试通过,并在Sql Server\Sybase\Oracle数据库上试验通过

原始链接:
http://blog.51testing.com/?2327/action_viewspace_itemid_1539.html

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号