51Testing软件测试论坛

标题: Robot VU脚本操作SQL SERVER数据库 [打印本页]

作者: 海龙    时间: 2004-5-12 08:51
标题: Robot VU脚本操作SQL SERVER数据库
#include
{
push Timeout_scale = 200; /* Set timeouts to 200% of maximum response time */
push Think_def = "LR";
Min_tmout = 120000;       /* Set minimum Timeout_val to 2 minutes          */
push Timeout_val = Min_tmout;

ser=sqlconnect("server","sa","8888","192.168.1.12","sqlserver");
set Server_connection = ser;
push Think_avg = 0;
sqlexec ["sql_1000"] "select * from test_table";
sqldisconnect (ser);
}
sqlconnect("server","sa","8888","192.168.1.12","sqlserver"):数据库连接
参数:server:标签,由于Testmanager报告输出
      sa:用户名
      8888:密码
      192.168.1.12:数据库IP地址
      sqlserver:API库,连接SQL Server为sqlserver
sqlexec:执行SQL语句
sqldisconnect:断开数据库连接
    VU脚本加入数据池(DATAPOOL),向测试数据库中装配测试数据时效率很高,推荐使用。如何加入数据池看帖子“数据池(DATAPOOL)专题”。
作者: jackie_G    时间: 2004-5-17 16:55
请问楼主:我想用datapool做成动态的,也就是说,让它里面的值不预先设定,而是用sqlexec等函数从数据库中调数据,这样是可行的吧?可是我看了你的解释觉得还应该有一个给datapool的赋值过程,难道不需要,它是自动执行的吗?
呵呵,呵呵我还没有试!!!
作者: jackie_G    时间: 2004-5-20 15:16
标题: 纳闷...

怎么还没有解答呀?楼主大人!!!是不是最近很忙呀?
我试了试,没有能够把数据库里的数据动态地导到datapool中去,
只是用testmanager静态的导入了一些。
这不是我想要的,我想让它动态来做,手写vu代码如何?
对,试试看!!!
作者: 海龙    时间: 2004-5-22 06:24
在数据池专题里面我已经写了如何添加datapool,如下所示:


以下是全部手工编写的使用数据池的VU脚本:
#include
{
push Timeout_scale = 200; /* Set timeouts to 200% of maximum response time */
push Think_def = "LR";
Min_tmout = 120000;       /* Set minimum Timeout_val to 2 minutes          */
push Timeout_val = Min_tmout;
DP1 = datapool_open("test");   //打开数据池

ser=sqlconnect("server","sa","8888","192.168.1.12","sqlserver");
set Server_connection = ser;
push Think_avg = 0;

for (i=0; i<10; i++)
{
   datapool_fetch(DP1); //移动指针到下一记录
   sqlexec ["sql_1000"] "TestDB..test " +datapool_value(DP1, "q");
}
sqldisconnect (ser);
datapool_close (DP1);   //关闭数据池
}

DATAPOOL_CONFIG "test"  DP_SEQUENTIAL DP_SHARED DP_WRAP
{
        INCLUDE, "q", "string", "8";
}
作者: jackie_G    时间: 2004-5-24 11:36
标题: 不是吧?
楼主,我觉得你没有完全理解我的意思!
我是说:把datapool做成动态的!不是动态调用datapool的值呀!
而是把从数据库中查询出来的值赋给datapool,即填到datapool中去,再在脚本中读出那些数据,用于脚本回放!
比如说:在我的数据库(SQL Server的)中有50个用户(不同名的),我想模拟出40个不同的用户来登陆一个系统进行测试,但是我在录制好的脚本里的那个datapool(名字为User,用来做虚拟用户的存储)中不设置登陆用户名,想在脚本回放时自动的把50个用户名写入datapool!
现在明白不?可以实现吗?

我之所以这样说,是看你上面的帖子里还是取datapool中的值,来执行响应的操作,比如查询,登陆等等。你的例子我没有理解错吧?
呵呵...
作者: jackie_G    时间: 2004-5-24 11:40
希望与你深入交流这个问题,谢谢!!!
作者: pcl2004_27    时间: 2004-5-25 00:28
你的思路有问题
            每次读取数据然后再写入到datapool,在利用datapool来读取数据
            中间的步骤个人认为太多
          你的问题解决思路:
            一.
            可以把所有数据做到文件中,然后利用readline函数读取
            替换到变量,这样每次就修改数据文件就可以了
         
           二.如果非要用datapool
               所以我们可以利用fprintf() 把读取的数据写入datapool中
               然后你的脚本读取数据,就可以达到你的效果了
              直接写数据是因为datapool是个特殊的后缀为csv的文本文件
作者: teststudy    时间: 2004-8-2 21:01
标题: 请问你是怎么录制成功SQL SERVER的?
请详细介绍一下录制前的准备工作,都要设置那些参数?我试过总也录不成,我选的协议是SQL SERVER,Method是API,数据库服务器是SQL SERVER2000,客户端程序是DELPHI写的。录制是好象也能捕获的调用,但生成脚本时总是说什么协议解码错误,请高手指点迷津,多谢了!
作者: teststudy    时间: 2004-8-2 21:02
标题: 请问你是怎么录制成功SQL SERVER的?
请详细介绍一下录制前的准备工作,都要设置那些参数?我试过总也录不成,我选的协议是SQL SERVER,Method是API,数据库服务器是SQL SERVER2000,客户端程序是DELPHI写的。录制是好象也能捕获的调用,但生成脚本时总是说什么协议解码错误,请高手指点迷津,多谢了!
作者: 海龙    时间: 2004-8-3 20:04
脚本是手工编写的,不是录制的。
作者: duancj_1982    时间: 2004-12-23 16:44
标题: 楼主能讲讲sqlexec函数的用法吗??
sqlexec ["sql_1000"] "select * from test_table";
中的["sql_1000"]是什么意思啊??

[ Last edited by duancj_1982 on 2004-12-23 at 16:52 ]
作者: ljt008    时间: 2005-4-26 22:36
强烈关注ing~~~
出来位老大解释下teststudy地问题啊~~
表看不起偶们新人呢




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