海龙 发表于 2004-5-12 08:51:41

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:03

请问楼主:我想用datapool做成动态的,也就是说,让它里面的值不预先设定,而是用sqlexec等函数从数据库中调数据,这样是可行的吧?可是我看了你的解释觉得还应该有一个给datapool的赋值过程,难道不需要,它是自动执行的吗?
呵呵,呵呵我还没有试!!!

jackie_G 发表于 2004-5-20 15:16:32

纳闷...

:(
怎么还没有解答呀?楼主大人!!!是不是最近很忙呀?
我试了试,没有能够把数据库里的数据动态地导到datapool中去,
只是用testmanager静态的导入了一些。
这不是我想要的,我想让它动态来做,手写vu代码如何?
对,试试看!!!

海龙 发表于 2004-5-22 06:24:29

在数据池专题里面我已经写了如何添加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:48

不是吧?

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

我之所以这样说,是看你上面的帖子里还是取datapool中的值,来执行响应的操作,比如查询,登陆等等。你的例子我没有理解错吧?
呵呵...

jackie_G 发表于 2004-5-24 11:40:03

希望与你深入交流这个问题,谢谢!!!

pcl2004_27 发表于 2004-5-25 00:28:21

你的思路有问题
            每次读取数据然后再写入到datapool,在利用datapool来读取数据
            中间的步骤个人认为太多
          你的问题解决思路:
            一.
            可以把所有数据做到文件中,然后利用readline函数读取
            替换到变量,这样每次就修改数据文件就可以了
         
         二.如果非要用datapool
               所以我们可以利用fprintf() 把读取的数据写入datapool中
               然后你的脚本读取数据,就可以达到你的效果了
            直接写数据是因为datapool是个特殊的后缀为csv的文本文件

teststudy 发表于 2004-8-2 21:01:16

请问你是怎么录制成功SQL SERVER的?

请详细介绍一下录制前的准备工作,都要设置那些参数?我试过总也录不成,我选的协议是SQL SERVER,Method是API,数据库服务器是SQL SERVER2000,客户端程序是DELPHI写的。录制是好象也能捕获的调用,但生成脚本时总是说什么协议解码错误,请高手指点迷津,多谢了!

teststudy 发表于 2004-8-2 21:02:17

请问你是怎么录制成功SQL SERVER的?

请详细介绍一下录制前的准备工作,都要设置那些参数?我试过总也录不成,我选的协议是SQL SERVER,Method是API,数据库服务器是SQL SERVER2000,客户端程序是DELPHI写的。录制是好象也能捕获的调用,但生成脚本时总是说什么协议解码错误,请高手指点迷津,多谢了!

海龙 发表于 2004-8-3 20:04:38

脚本是手工编写的,不是录制的。

duancj_1982 发表于 2004-12-23 16:44:28

楼主能讲讲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:13

强烈关注ing~~~
出来位老大解释下teststudy地问题啊~~
表看不起偶们新人呢
页: [1]
查看完整版本: Robot VU脚本操作SQL SERVER数据库