cedar 发表于 2006-12-4 14:47:33

使用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);

[ 本帖最后由 cedar 于 2007-7-27 18:50 编辑 ]

Zee 发表于 2006-12-4 15:02:28

确实不错

leey 发表于 2006-12-4 15:04:30

有点深奥,顶一个。

vivien 发表于 2006-12-4 15:12:30

前段时间一直弄这这个东西,现在可以参考了,谢谢楼主共享:)

blackwind 发表于 2006-12-4 15:51:38

感动啊 ,希望以后多共享一下脚本.最好出教程拉,哈哈

jackloo 发表于 2006-12-4 16:41:25

呵呵。其实不需要这么麻烦。
如果你是用Oracle(2-Tier)协议的话,可以通过各种执行Oracle的SQL脚本的工具来直接录制。它会自动生成很多文件,比如:
pre_cci.c
vdf.h
*.rdf
*.grd
print.inl
你脚本中定义的所有static,其实都自动保存在vdf.h文件中;另外如果你要使用到数据库中表的某些字段,它也会自动保存到*.grd和*.rdf文件中。

但是,当初我发现如果我使用ODBC协议的话,我根本录制不到任何内容,所以才手写脚本,把vdf.h文件中的定义内容全部写在了脚本里。我发现这样也是可以运行的,而且还发现居然效率更高。

cedar 发表于 2006-12-5 10:28:59

不错的信息。欢迎大家一起来讨论。

jiangyue 发表于 2006-12-5 11:20:31

请教一问题

请教一下,在对数据库进行测试的时候,比如模拟200个用户对数据库施压,在数据库中会添加实际数据吗。他实现的原理是什么?谢谢!

jiangyue 发表于 2006-12-5 11:27:23

请教loadrunner 实现压力测试的原理?

在对数据库测试的过程中,模拟的数据会在数据库中实际添加吗?如果不能,他怎么对数据库的性能指标实施测试?
请教各位大侠!!!

cedar 发表于 2006-12-5 14:41:21

对数据进行的操作是实际操作,如果是插入语句的话,会向数据库里添加数据的。
由此来测试数据库的性能指标。

AlanStone 发表于 2006-12-5 16:59:48

好.简单明了,学习的好帮手.

Aries1987 发表于 2006-12-5 17:00:14

不错

不错是不错!问题是我写在那啊?怎么弄啊?可否做个视屏给大家看看啊?

hadywei 发表于 2006-12-5 17:37:40

我想问一下,这个脚本要自己写吗 ?不是录制的吗?

cs_blue 发表于 2006-12-6 09:34:03

正要学习这方面知识,谢谢搂主!

cedar 发表于 2006-12-6 12:00:55

通过录制也可以有类似的脚本,但无用的语句过多,简单的测试可以直接引用上面的语句。

黑妹 发表于 2006-12-6 14:03:03

谢谢,收藏

黑妹 发表于 2006-12-6 15:20:23

原帖由 jackloo 于 2006-12-4 16:41 发表
呵呵。其实不需要这么麻烦。
如果你是用Oracle(2-Tier)协议的话,可以通过各种执行Oracle的SQL脚本的工具来直接录制。它会自动生成很多文件,比如:
pre_cci.c
vdf.h
*.rdf
*.grd
print.inl
你脚本中定义 ...

如何录制的?sdlkfj1

cedar 发表于 2006-12-6 16:18:19

安装Oracle后选择一个可以访问数据库的程序,开始录制。

wuhuawu09 发表于 2006-12-6 16:20:31

不是很明白......

cedar 发表于 2006-12-6 16:54:32

试试就清楚了。sdlkfj2
页: [1] 2 3 4 5 6 7 8
查看完整版本: 使用LR测试Oracle数据库的方法