cedar 2006-12-4 14:47
使用LR测试Oracle数据库的方法
使用LR测试Oracle数据库的方法
一个简单的连接方法,欢迎大家跟贴讨论更多方法
详细脚本见附件
选择,建立一个Oracle(2-Tier)协议的脚本
加入
static LRD_INIT_INFO InitInfo = {LRD_INIT_INFO_EYECAT};
static LRD_DEFAULT_DB_VERSION DBTypeVersion[] =
{
{LRD_DBTYPE_NONE, LRD_DBVERSION_NONE}
};
先定义初始化数据库的各种变量
static void FAR * OraEnv1;
static void FAR * OraSvc1;
static void FAR * OraSrv1;
static void FAR * OraSes1;
static void FAR * OraStm1;
unsigned long rownum;
初始化数据库部分
lrd_init(&InitInfo, DBTypeVersion);
lrd_initialize_db(LRD_DBTYPE_ORACLE, 3, 0);
lrd_env_init(LRD_DBTYPE_ORACLE, &OraEnv1, 0, 0);
lrd_ora8_handle_alloc(OraEnv1, SVCCTX, &OraSvc1, 0);
lrd_ora8_handle_alloc(OraEnv1, SERVER, &OraSrv1, 0);
lrd_ora8_handle_alloc(OraEnv1, SESSION, &OraSes1, 0);
连接数据库
lrd_server_attach(OraSrv1, "这里填写数据库的名称", -1, 0, 0);
lrd_ora8_attr_set_from_handle(OraSvc1, SERVER, OraSrv1, 0, 0);
设定数据库密码
lrd_ora8_attr_set(OraSes1, USERNAME, "system", -1, 0);
lrd_ora8_attr_set(OraSes1, PASSWORD, "这里填写密码", -1, 0);
初始化连接session
lrd_ora8_attr_set_from_handle(OraSvc1, SESSION, OraSes1, 0, 0);
开始连接数据库
lrd_session_begin(OraSvc1, OraSes1, 1, 0, 0);
lrd_ora8_handle_alloc(OraEnv1, STMT, &OraStm1, 0);
设定查询语句
lrd_ora8_stmt(OraStm1, "这里填写查询语句", 1, 0, 0);
执行查询语句
lrd_ora8_exec(OraSvc1, OraStm1, 0, 0,&rownum, 0, 0, 0, 0, 1);
释放连接数据库的各种变量
lrd_handle_free(&OraStm1, 0);
lrd_session_end(OraSvc1, OraSes1, 0, 0);
lrd_server_detach(OraSrv1, 0, 0);
lrd_handle_free(&OraEnv1, 0);
[[i] 本帖最后由 cedar 于 2007-7-27 18:50 编辑 [/i]]
vivien 2006-12-4 15:12
前段时间一直弄这这个东西,现在可以参考了,谢谢楼主共享:)
blackwind 2006-12-4 15:51
感动啊 ,希望以后多共享一下脚本.最好出教程拉,哈哈
jackloo 2006-12-4 16:41
呵呵。其实不需要这么麻烦。
如果你是用Oracle(2-Tier)协议的话,可以通过各种执行Oracle的SQL脚本的工具来直接录制。它会自动生成很多文件,比如:
pre_cci.c
vdf.h
*.rdf
*.grd
print.inl
你脚本中定义的所有static,其实都自动保存在vdf.h文件中;另外如果你要使用到数据库中表的某些字段,它也会自动保存到*.grd和*.rdf文件中。
但是,当初我发现如果我使用ODBC协议的话,我根本录制不到任何内容,所以才手写脚本,把vdf.h文件中的定义内容全部写在了脚本里。我发现这样也是可以运行的,而且还发现居然效率更高。
jiangyue 2006-12-5 11:20
请教一问题
请教一下,在对数据库进行测试的时候,比如模拟200个用户对数据库施压,在数据库中会添加实际数据吗。他实现的原理是什么?谢谢!
jiangyue 2006-12-5 11:27
请教loadrunner 实现压力测试的原理?
在对数据库测试的过程中,模拟的数据会在数据库中实际添加吗?如果不能,他怎么对数据库的性能指标实施测试?
请教各位大侠!!!
cedar 2006-12-5 14:41
对数据进行的操作是实际操作,如果是插入语句的话,会向数据库里添加数据的。
由此来测试数据库的性能指标。
AlanStone 2006-12-5 16:59
好.简单明了,学习的好帮手.
Aries1987 2006-12-5 17:00
不错
不错是不错!问题是我写在那啊?怎么弄啊?可否做个视屏给大家看看啊?
hadywei 2006-12-5 17:37
我想问一下 ,这个脚本要自己写吗 ?不是录制的吗?
cedar 2006-12-6 12:00
通过录制也可以有类似的脚本,但无用的语句过多,简单的测试可以直接引用上面的语句。
黑妹 2006-12-6 15:20
[quote]原帖由 [i]jackloo[/i] 于 2006-12-4 16:41 发表
呵呵。其实不需要这么麻烦。
如果你是用Oracle(2-Tier)协议的话,可以通过各种执行Oracle的SQL脚本的工具来直接录制。它会自动生成很多文件,比如:
pre_cci.c
vdf.h
*.rdf
*.grd
print.inl
你脚本中定义 ... [/quote]
如何录制的?sdlkfj1
cedar 2006-12-6 16:18
安装Oracle后选择一个可以访问数据库的程序,开始录制。
wuhuawu09 2006-12-6 16:20
不是很明白......
suncaijun 2006-12-7 10:41
死命的顶贴
jackloo 2006-12-7 11:17
回复 #17 黑妹 的帖子
就是用Oracle(2-Tier)协议,选择WIN32程序,程序选择的是ORACLE的SQLPLUS。开始录制后在里面写SQL语句就可以了。
ZBB 2006-12-7 14:17
好文章,顶一下!
不过,本人是菜鸟,还需要多理解[img]http://bbs.51testing.com/images/smilies/4.gif[/img]
syjjuanna_971 2006-12-7 16:13
不错
顶一下!
fengjianxin 2006-12-7 16:48
菜鸟也要顶
什么都看不懂也进来顶上一顶!以后多学习!
zhaoxu2003 2006-12-17 15:48
谢谢
谢谢
testzhu 2006-12-20 14:32
我也想问上面问过的问题,要是测试的时候,向实际的数据库中增加了数据,那岂不是多了很多垃圾数据?再删除的话删不干净或删错了岂不是很麻烦?怎么办?
cedar 2006-12-22 10:32
to:31楼
因为是实际操作才可能测试真正的数据库性能,也可以对应的编写删除数据的脚本
to:32楼
数据的地址是由连接Oracle的客户端配置的
jut984907 2006-12-22 11:03
下载看看,有空试试
eliteboyling 2007-2-7 17:45
我菜鸟。。虽然不知道。。但还是谢谢了。。
kelly_yan 2007-3-31 09:57
下载