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