herah 发表于 2008-11-25 17:16:45

请教关于odbc协议录制,响应时间失真的问题

请教几个问题。谢谢

1。在用ODBC协议录制登陆操作,从点下LOGIN按钮到主界面出现,大约花费16秒。但实际该功能在单人登陆时,只需1秒左右。为什么用LoadRunner来录制会产生这样的差异?

2。在VuGen中对该脚本进行回放,耗时10分钟左右。但在Controller中,只需17秒左右。为什么两者间会产生差异?

3。执行较慢的语句如下:
lrd_stmt(Csr9, "select control_nm, column_no, caption, language_id, screen_nm from tlbldesc ", -1, 1, 0 /*None*/, 0);
lrd_db_option(Csr9, OT_ODBC_RETRIEVE_DATA, "OFF", 0);
lrd_db_option(Csr9, OT_ODBC_RETRIEVE_DATA, "ON", 0);
lrd_bind_cols(Csr9, BCInfo_D49, 0);
lrd_fetchx(Csr9, -5328, 1, 0, PrintRow22, 1, 0);
该select语句是将界面上的label信息取下产生界面。 那么这种语句在做性能测试时是否可以屏蔽?是否会导致结果失真?

herah 发表于 2008-11-26 10:00:25

有人知道或遇到过相似问题吗?

Athenth 发表于 2008-11-26 10:41:34

稍微分析了下,有如下疑问:
1、tlbldesc这个表中多少条数据?
2、你测试的数据库是否有其他人也在使用?
3、这个是对应什么操作的?

还有就是lrd_fetchx(Csr9, -5328, 1, 0, PrintRow22, 1, 0);
这个语句在实际运行时并非取的是5328这个数,如果执行时找到更多的数据,都会被读取进来。

herah 发表于 2008-11-26 13:50:11

谢谢。我觉得我第一个问题最让我疑惑,请教一下有谁能大概知道原因?

archonwang 发表于 2008-11-26 14:34:23

请把脚本贴上来看看。

herah 发表于 2008-11-26 15:08:00

lrd_open_cursor(&Csr9, Con1, 0);
        lrd_db_option(Csr9, OT_ODBC_QUERY_TIMEOUT, (void FAR const *)90, 0);
        lrd_stmt(Csr9, "select control_nm, column_no, caption, language_id, screen_nm from "
      "tlbldesc ", -1, 1 /*Direct exec*/, 0 /*None*/, 0);
        lrd_db_option(Csr9, OT_ODBC_RETRIEVE_DATA, "OFF", 0);
        lrd_db_option(Csr9, OT_ODBC_RETRIEVE_DATA, "ON", 0);
        lrd_bind_cols(Csr9, BCInfo_D49, 0);
       

        lrd_fetchx(Csr9, -5328, 1, 0, PrintRow22, 1, 0);
       
       

        lr_think_time(18);

        lrd_db_option(Csr9, OT_ODBC_CURSOR_UNBOUNDCOLS, 0, 0);
        lrd_result_set(Csr9, 0, 0, 0);
        lrd_db_option(Csr9, OT_ODBC_CURSOR_CLOSE, 0, 0);
        lrd_close_cursor(&Csr9, 0);

yangshuxin1989 发表于 2014-10-17 11:52:18

想问一下你是用什么工具来录制odbc协议的
页: [1]
查看完整版本: 请教关于odbc协议录制,响应时间失真的问题