自动化测试中对数据库进行操作方法
发表于:2009-03-11来源:作者:点击数:
标签:数据库自动化
在 自动化测试 中,有时候需要对 数据库 进行操作,例如,从数据库读取测试数据、检查软件对数据库的更改操作是否正确等等。 TestComplete 提供好几种对数据库进行操作的方法。 TC的三类数据库操作方法 1、通常 开发 人员会使用特殊的控件或组件(例如Microso
在
自动化测试中,有时候需要对
数据库进行操作,例如,从数据库读取测试数据、检查软件对数据库的更改操作是否正确等等。
TestComplete提供好几种对数据库进行操作的方法。
TC的三类数据库操作方法
1、通常
开发人员会使用特殊的控件或组件(例如Microsoft ADO Components)来与数据库打交道。如果这些组件是ActiveX控件,则你也可以在TC中使用它们。你可以在TC项目中添加ActiveX Object项目Item,并把数据组件加入。然后就可以在ActiveX Object editor中设置控件属性,定义事件处理,然后在脚本中像VC++或
VB中一样使用这些控件的方法和属性。
2、使用
windows的ADO数据库引擎来连接数据库。你可以把连接、数据集和命令作为COM对象在脚本中使用它的方法和属性。
3、使用TC的ADO和BDE编程对象的属性和方法来操作数据库。
微软ADO DB对象的使用
下面脚本实例化一个ADO DB对象,然后遍历数据库的一个表:
procedure TestADO;
var
Conn, Rs, Fldr : OleVari
ant;
begin
Fldr := Log.CreateFolder(’Authors table’);
Log.PushLogFolder(Fldr);
// 创建并打开数据库连接
Conn := Sys.OleObject[’ADODB.Connection’];
Conn.ConnectionString := ’Provider=Microsoft.Jet.OLEDB.3.51;’ +
’Data Source=C:\\Program Files\\Microsoft Visual Studio\\VB98\\biblio.mdb’;
Conn.Open();
// 创建并打开一个数据集
Rs := Sys.OleObject[’ADODB.Recordset’];
Rs.Open(’Authors’, Conn, 3 {adOpenStatic},
1 {adLockReadOnly}, 2 {adCmdTable});
// 处理数据
Rs.MoveFirst();
while not Rs.EOF do
begin
Log.Message(Rs.Fields.Item(’Author’).Value);
Rs.MoveNext();
end;
// 关闭数据集和连接
Rs.Close();
Conn.Close();
end;
使用BDE操作数据库
BDE即
Borland Database Engine,要使用BDE,首先要创建一个DSN连接,在操作系统的控制面板的管理工具找到数据源(ODBC)并打开,然后创建一个BDE别名,选择一个数据库驱动。 [Page]
下面脚本使用BDE对象连接到一个别名为MY
SQL的数据库的Products表,打开这个表取出字段名,然后遍历整个表取出所有记录。
procedure TestSQL_BDE;
var
aTable, S, i : OleVariant;
begin
// Create a table
aTable := BDE.CreateTable;
// Specify the database name
aTable.DatabaseName := ’MYSQL’; // <-- BDE alias
// Specify the table name
aTable.TableName := ’Products’;
// Open the table
aTable.Open;
aTable.First;
// Retrieve field names
S := ’’;
for i := 0 to aTable.FieldCount - 1 do
S := S + aTable.Field(i).FieldName + Chr(9);
S := S + Chr(13) + Chr(10);
// Scan through dataset records
while not VarToBool(aTable.EOF) do
begin
for i := 0 to aTable.FieldCount - 1 do
S := S + aTable.Field(i).AsString + Chr(9);
S := S + Chr(13) + Chr(10);
aTable.Next;
end;
// Output results
Log.Message(’Products’, S);
// Close the table
aTable.Close;
end;
原文转自:http://www.ltesting.net