51Testing软件测试论坛

标题: 我写了一个小的dll在LR中动态加载数据库中的值! [打印本页]

作者: kernzhang    时间: 2006-6-29 16:01
标题: 我写了一个小的dll在LR中动态加载数据库中的值!
LR本身并不提供动态的到数据库中取获取数据,所以昨天下午性情所致,写了一个极其简单的一个动态链接库,这只是个范例,希望大家以后会不断地完善它,而且此动态链接库只提供去一条记录!呵呵!以后有兴趣的话我会完善一下它!此动态链接库在SQL Server测试成功!
下载请到www.kernzhang.com
作者: kernzhang    时间: 2006-7-3 19:28
DLL文件进行了更新,可以支持取多条记录,并增加自动写日志功能:)需要可以到www.kernzhang.com去下载
作者: ilovejolly    时间: 2006-7-3 20:13
帮顶
作者: wss123    时间: 2006-7-5 16:50
顶一下下。
作者: quewn1017    时间: 2006-7-6 09:32
斑竹很强哦!要顶一下!
作者: beckham516    时间: 2006-7-7 14:38
呵呵,我也写了一个差不多的拿来自动测试字符校验
作者: francesfu    时间: 2007-3-1 15:54
为什么我写的脚本,返回的结果不正确呀.脚本如下:
Action()
{
int i;
char j;
lr_load_dll("getdata.dll");
i=init_db("DRIVER=MySQL ODBC 3.51 Driver;SERVER=192.168.5.31;UID=kingfish1;PWD=kingfish1;DATABASE=kfprod");
lr_output_message("i=%d",i);
j=execSQL("select login_id from users where id='4'");
lr_output_message("j=%s",j);
disConnect();
return 0;
}

运行后的结果显示:
Starting action Action.
Action.c(13): i=0
Action.c(17): j=(null)
Ending action Action.

而实际上sql语句:select login_id from users where id='4', 执行的结果是test.a@test.com
我的脚本哪里不对吗?
作者: francesfu    时间: 2007-3-2 13:36
怎么没人帮我解答一下呀!!!!sdlkfj7
作者: francesfu    时间: 2007-3-5 11:33
继续顶.
我后来把脚本改成向数据库中插入数据,结果就能运行成功,且数据库中插入了一条记录.
后来我又查了C语言的有关资料, 把脚本改了一下,
Action()
{
int i;
char j;
char m;
lr_load_dll("getdata.dll");
i=init_db("DRIVER=MySQL ODBC 3.51 Driver;SERVER=192.168.5.31;UID=kingfish1;PWD=kingfish1;DATABASE=kfprod");
lr_output_message("i=%d",i);
j=execSQL("select login_id into :m from users where id='4'");
lr_output_message("m=%s",m);
disConnect();
return 0;
}

运行后的结果显示:
Starting action Action.
Action.c(13): i=0
Action.c(17): m=(null)
Ending action Action.

为什么还是不对呀?有哪位高手可以帮忙指点一下吗?万分感谢了!
作者: 5555    时间: 2007-4-13 09:59
强顶一下!
作者: virgozz    时间: 2007-4-13 13:26
查询语句尤其在用lr进行用户并发测试的时候会造成额外负担,有需要的话还是之前写程序把数据库的东西导成数据文件,把准备工作在负载这做好而不要加到服务器端,如果大批量并发的时候,查询也会给记入性能记录的。而且这样并不一定符合真实的情况,这个只是个人见解。不过lz真的很牛,很牛



作者: iceblue2006    时间: 2007-10-2 22:27
谢谢kernzhang!
作者: blackboyzb    时间: 2007-11-15 12:22
标题: 回复 7# 的帖子
楼主不厚道,有些东西保留了没有全说
我经过反复测试,历经痛苦的N多失败后,得出
aip函数:execSQL()有两个参数,第一是‘数据库名’,第二个是‘你要执行的语句’,
你的代码修改成这样看看
Action()
{
int i;
char j;
lr_load_dll("getdata.dll");
i=init_db("DRIVER=MySQL ODBC 3.51 Driver;SERVER=192.168.5.31;UID=kingfish1WD=kingfish1;DATABASE=kfprod");
lr_output_message("i=%d",i);
j=execSQL("kfprod","select login_id from users where id='4'");
lr_output_message("j=%s",j);
disConnect();
return 0;
}

[ 本帖最后由 blackboyzb 于 2007-11-15 12:23 编辑 ]
作者: songyq521    时间: 2008-6-11 20:11
LZ  下载地址打不开啊........期待....(songyq521@163.com)
作者: 云层    时间: 2008-6-11 23:23
楼主最好吧dll丢成附件吧,网站打不开
作者: songyq521    时间: 2008-6-12 10:39
i=init_hstmt(&ll_hstmt);
if (i!=0)
{
   lr_output_message("%s","init hstmt error");
   return 0;
}

不明白,我的老是这样i=init_hstmt(&ll_hstmt); 不通过
作者: songyq521    时间: 2008-6-12 10:47
int init_hstmt(long* ll_hstmt);

LZ能解释下这个函数吗!?特别是这个ll_hstmt参数...谢谢
作者: adiao    时间: 2008-10-30 11:01
网站打不开哦
[attach]46495[/attach]
作者: 凌静0922    时间: 2012-11-7 14:18
lz,测试了下, i= init_db("DRIVER={Microsoft ODBC for DB2};SERVER=192.168.1.16;UID=db2inst1WD=db2inst1;DATABASE=FMP"),i=4,连接数据库失败,能告知返回码是4是什么错误吗?还是不支持DB2?求解!
作者: 凌静0922    时间: 2012-11-7 14:18
lz,测试了下, i= init_db("DRIVER={Microsoft ODBC for DB2};SERVER=192.168.1.16;UID=db2inst1WD=db2inst1;DATABASE=FMP"),i=4,连接数据库失败,能告知返回码是4是什么错误吗?还是不支持DB2?求解!




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2