• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

自动化测试中对数据库进行操作方法

发布: 2009-3-11 09:55 | 作者: 不详 | 来源: 测试时代采编 | 查看: 67次 | 进入软件测试论坛讨论

领测软件测试网自动化测试中,有时候需要对数据库进行操作,例如,从数据库读取测试数据、检查软件对数据库的更改操作是否正确等等。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 : 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操作数据库
        BDE即Borland Database Engine,要使用BDE,首先要创建一个DSN连接,在操作系统的控制面板的管理工具找到数据源(ODBC)并打开,然后创建一个BDE别名,选择一个数据库驱动。 [Page]
        下面脚本使用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; 

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

TAG: 数据库 自动化

21/212>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网