`
kuwoleft
  • 浏览: 1086736 次
文章分类
社区版块
存档分类
最新评论

TestComplete对数据库的支持

 
阅读更多

TestComplete对数据库的支持

陈能技

2007-9-7

在自动化测试中,有时候需要对数据库进行操作,例如,从数据库读取测试数据、检查软件对数据库的更改操作是否正确等等。TestComplete提供好几种对数据库进行操作的方法。

TC的三类数据库操作方法

1、通常开发人员会使用特殊的控件或组件(例如Microsoft ADO Components)来与数据库打交道。如果这些组件是ActiveX控件,则你也可以在TC中使用它们。你可以在TC项目中添加ActiveX Object项目Item,并把数据组件加入。然后就可以在ActiveX Object editor中设置控件属性,定义事件处理,然后在脚本中像VC++VB中一样使用这些控件的方法和属性。

2、使用windowsADO数据库引擎来连接数据库。你可以把连接、数据集和命令作为COM对象在脚本中使用它的方法和属性。

3、使用TCADOBDE编程对象的属性和方法来操作数据库。

微软ADO DB对象的使用

下面脚本实例化一个ADO DB对象,然后遍历数据库的一个表:

procedure TestADO;
var
Conn, Rs, Fldr : OleVariant;
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操作数据库

BDEBorland Database Engine,要使用BDE,首先要创建一个DSN连接,在操作系统的控制面板的管理工具找到数据源(ODBC)并打开,然后创建一个BDE别名,选择一个数据库驱动。

下面脚本使用BDE对象连接到一个别名为MYSQL的数据库的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;

使用ADO对象操作数据库

ADO,即ActiveX Data Object,使用ADO同样需要先创建ODBC连接。

TC支持两种使用ADO的方法,一种是跟Delphi ADO对象一致的方法,一种是按照ADO本身的使用方法。

下面把两种方法都列出。

//类似Delphi ADO的使用方法

procedure TestSQL_ADO;
var
aTable, S, i : OleVariant;
begin
// Creates a table
aTable := ADO.CreateADOTable();
// Specifies the database name
aTable.ConnectionString := 'Provider=MSDASQL.1;Persist Security Info=False;Data Source=NameOfMyDSN';
// Specifies the table name
aTable.TableName := 'Products';
// Opens the table
aTable.Open;
aTable.First;
// Retrieves 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);
// Scans 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;
// Outputs results
Log.Message('Products', S);
// Closes the table
aTable.Close;
end;

// “原生”ADO的使用方法

procedure TestSQL_ADO2;
var
aCon, aCmd, aRecSet, S, i : OleVariant;
begin
// Creates ADO connection
aCon := ADO.CreateConnection;
// Sets up the connection parameters
aCon.ConnectionString := 'Provider=MSDASQL.1;Persist Security Info=False;Data Source=NameOfMyDSN';
// Opens the connection
aCon.Open;
// Creates a command and specifies its parameters
aCmd := ADO.CreateCommand;
aCmd.ActiveConnection := aCon; // Connection
aCmd.CommandType := adCmdTable; // Command type
aCmd.CommandText := 'Products'; // Table name
// Opens a recordset
aRecSet := aCmd.Execute;
aRecSet.MoveFirst;
// Obtains field names
s := '';
for i := 0 to aRecSet.Fields.Count - 1 do
s := s + aRecSet.Fields.Item(i).Name + Chr(9);
s := s + Chr(13) + Chr(10);
// Scans recordset
while not aRecSet.EOF do
begin
for i := 0 to aRecSet.Fields.Count - 1 do
s := s + VarToString(aRecSet.Fields.Item(i).Value) + Chr(9);
s := s + Chr(13) + Chr(10);
aRecSet.MoveNext;
end;
// Outputs results
Log.Message('Products', s);
// Closes the recordset and connection
aRecSet.Close;
aCon.Close;
end;

扩展

实际上,除了上面说的三类使用方法外,TC还支持ADO.NET等更新的数据库驱动的使用,通过TCOpen Application机制,我们可以直接调用.NET的库,使用.NETSystem.Data命名空间下的ADO.NET的所有类和方法。

分享到:
评论

相关推荐

    testcomplete-made-easy-book

    在TestComplete中,你可以利用此功能从外部数据源(如Excel表格或数据库)导入数据,根据这些数据执行不同的测试用例。这种方法尤其适用于执行大量变体的测试,例如,验证用户输入的各种可能性。 Distributed ...

    TestComplete自动化测试培训教材

    3. **数据驱动测试**:TestComplete支持数据驱动测试,允许测试人员从外部数据源(如Excel、CSV或数据库)导入测试数据,提高测试覆盖率和效率。 4. **记录与回放**:通过录制用户操作,TestComplete可以自动生成...

    TestComplete自动化测试课程

    1. **选择合适的编程语言**:TestComplete支持多种脚本语言,如JavaScript、VBScript、Python等。根据团队的技术栈和项目需求,选择最合适的语言可以提高开发效率和代码可维护性。 2. **模块化设计**:将测试脚本...

    TC_Plugins.zip

    TestComplete支持多种脚本语言(如JavaScript、Python、VBScript等),允许用户编写自定义的测试脚本来模拟用户操作并验证应用程序的行为。它还提供了一个丰富的对象库,可以识别并操作各种类型的软件界面元素,包括...

    Oracle 数据库备份与恢复总结(导出与导入装库与卸库)

    2. 增量导出/导入:Oracle 9i 及以后版本,`exp`不再直接支持增量导出,但可以通过`inctype`参数实现不同类型的增量操作,如`complete`、`incremental`和`cumulative`。增量导入时,需要使用`FULL`、`SYSTEM`或`...

    外键关联整理脚本

    在测试领域,工具如TestComplete可以用来自动化测试,包括对数据库的验证。在外键关联的测试中,我们需要确保每个表的外键都能正确引用到其他表的主键,这在数据验证和业务逻辑测试中是至关重要的。 以下是一些关于...

    DevExpress_Universal_Complete_17.1.3_Build_20170518_Downloadly.ir.rar

    7. **TestComplete**:自动化测试工具,帮助确保应用的质量和稳定性,支持多种测试类型,包括功能测试、回归测试和性能测试。 8. **DevExpress Report Server**:一款云或本地部署的报告解决方案,支持创建、管理、...

    Delphi.rar

    4. **数据库连接**: Delphi提供了强大的数据库支持,包括ADO(ActiveX Data Objects)、BDE(Borland Database Engine)和FireDAC(Firebird Data Access Components)。这些组件使得开发者可以轻松地连接到各种类型...

    C++ Builder 编程实战

    6. **单元测试**:C++ Builder集成了测试框架,如TestComplete或Google Test,帮助开发者编写单元测试以确保代码质量。 7. **并发编程**:C++ Builder支持多线程和异步编程,通过TThread类和任务调度器可以轻松实现...

    QueryDef - a complete implementation of a dynamic recordset

    它支持多种数据库接口,如ODBC(Open Database Connectivity)和ADO(ActiveX Data Objects),可以适应各种数据库环境,如Microsoft Access、SQL Server等。 2. **源码解析**: 在提供的压缩包文件中,我们可以...

    Delphi培训课程

    - **单元测试**:通过TestComplete或DUnit等第三方库进行单元测试,确保代码质量。 **6. Delphi7详解** - Delphi7是Delphi的一个经典版本,虽然较旧,但因其稳定性和广泛的社区支持,仍被许多开发者使用。 - Delphi...

    Delphi技术手册

    5. **数据库支持**:Delphi提供了强大的数据库连接能力,通过ADO(ActiveX Data Objects)或BDE(Borland Database Engine)可以轻松地与各种数据库系统进行交互。 6. **跨平台能力**:随着Embarcadero的接手,...

    C++Builder编程

    8. **单元测试**:C++Builder提供了一套完整的单元测试工具,如TestComplete,用于确保代码质量并进行持续集成。 9. **内存管理和异常处理**:C++Builder支持C++的内存管理机制,包括动态内存分配和释放,以及异常...

    Mastering Delphi6 Sample

    6. **数据库支持**:Delphi 6对数据库的访问非常强大,支持多种数据库连接组件,如BDE(Borland Database Engine)、ADO(ActiveX Data Objects)和DBX(Borland Database Express)。这些组件使开发者能方便地连接...

    Delphi技术手册(很不错的书)

    4. **数据库访问**:Delphi提供了强大的数据库支持,包括ADO(ActiveX Data Objects)、BDE(Borland Database Engine)和FireDAC(Firebird Data Access Components)。书中会解释如何建立数据连接、执行SQL语句、...

    DELPHI 教务系统

    7. **单元测试**:为了保证软件质量,开发过程中可能会使用Delphi的测试框架,如DUnit或TestComplete,对各个模块进行单元测试。 8. **代码重构**:DELPHI支持代码重构,有助于保持代码整洁,提高代码复用,降低...

    Delphi基础知识

    Delphi支持单元测试,通过DUnitX或TestComplete等工具,开发者可以对代码进行自动化测试,确保程序的质量。同时,其IDE内建的调试工具也非常强大,包括断点、变量查看、内存检查等功能,便于问题定位和修复。 8. *...

    Delphi XE 起步者

    - **数据库支持**:Delphi XE 内置了对多种数据库的支持,包括 Firebird、Oracle、MySQL 和 Microsoft SQL Server 等。 - **跨平台能力**:借助 FireMonkey (FMX) 框架,Delphi XE 可以创建多平台原生应用程序,不仅...

    DELPHI中文说明

    Delphi的TestComplete和Quality Center等工具,可以帮助开发者进行单元测试、性能测试和自动化测试,确保代码质量和稳定性。 9. **内存管理和性能优化** Delphi使用智能指针和垃圾回收机制来管理内存,同时,其...

    delphi

    4. **数据库支持**:Delphi通过Data Access Components (FireDAC) 提供对多种数据库的连接和支持,包括SQL Server、Oracle、MySQL、SQLite等。 5. **快速应用开发 (RAD)**:Delphi的RAD特性允许开发者快速创建应用...

Global site tag (gtag.js) - Google Analytics