QTP数据驱动和关键字驱动

原文地址:http://blog.sina.com.cn/s/blog_4d54c07a0100gk41.html

关键字驱动:
   数据驱动技术可以将用户使用工具的关注点放在对测试数据的构建和维护上,而不是直接维护脚本,可以利用同样的过程对不同的数据输入进行测试。关键字驱动技术在QTP火起来之后才被大家开始关注,关键字驱动测试技术是数据驱动测试的一种改进类型,主要关键字包括三类:被操作对象(控件)、操作(事件)和值,用面向对象形式可将其表现为控件.操作(值),将测试逻辑按照这些关键字进行分解,形成数据文件,用关键字的形式将测试逻辑封装在数据文件中,测试工具只要能够解释这些关键字即可对其应用自动化。拿具体步骤解释关键字驱动:
1.建立对象库:

将所有对象(控件)属性及方法进行封装

2.编制脚本,使用封装好了的控件及其对应的方法,给所进行的操作赋值

关键字驱动测试表示没有必要真正进行录制、回放,没有必要等软件非常稳定时再开展自动化测试,而且只要测试人员对软件业务足够了解,即可直接介入。

自动化测试的数据框架:
全局和局部测试数据, 相关联的测试脚本通常放到一组,称为测试集(testsets),用于覆盖被测试应用程序的特定功能区。测试集定义了一系列的脚本,这些脚本由测试自动化框架按一定的顺序以批处理的方式执行。常见的测试集包括冒烟测试集(smoke test set)和回归测试集(regression test set)等.
一个脚本可以从属于多个测试集,并且用不同的测试数据来运行。自动化框架从脚本库中选取脚本(以及相关的数据文件)在各分布式的主机上以测试集所定义的顺序运。测试数据可以按范围来进行分类。全局(Global)测试集数据对于测试集中的所有脚本都是可见的、可共享的,而局部(local)数据只对其所创建的脚本是可见的。

全局测试数据通常是那些可配置的参数,例如服务器名、启动页面的URL地址等,它们是所有脚本的基础数据。

设计规则在行业最佳实践的基础上,我定出了6个普遍适用的设计规则,实践证明对于在框架中组织测试数据是非常有效的。这些规则应该被视为开发内部测试自动化框架的功能需求,或者用于评估商业框架之用。

 

原文地址:http://www.51testing.com/?26649/action_viewspace_itemid_1224.html

数据驱动

   所谓数据驱动就是用一个数据文件把测试脚本驱动起来,来达到更接近用户化更智能的测试.其目的是把测试人员从维护复杂的脚本程序中解放出来,只需维护好数据文件即可,减少了很多修改脚本的麻烦.下面讲一下通过四种途径来达到数据驱动.

1.datatable

QTP本身程序就给我们提供了这么一个数据表,我们可以把测试数据或测试用例填入这个数据表中.

如:设计用例

      username  passwd    

case1  mercury    mercury 

case2   xxxxxxx     xxxxxx

录制脚本

For i=1 to Datatable.GetRowCount   

Dialog("Login").WinEdit("Agent Name:").Set DataTable("username", dtGlobalSheet)
Dialog("Login").WinEdit("Password:").Set DataTable("passwd", dtGlobalSheet)
Dialog("Login").WinButton("OK").Click
datatable.GlobalSheet.SetNextRow

Next

本例是验证一个登录系统,通过DataTable不同的用例设计,驱动起这段脚本,达到测试的效果.当然上面的例子中还少一个很重要的步骤,那就是结果比较.如果不能进行结果比较的自动化测试不能够称为自动化测试.

当然我们这里主要讲的是数据驱动,所以不在对上面的例子进行补充.

2.文本文件

我们可以把文本文件当成数据文件,通过对文本文件的读写操作,来实现数据驱动.

例:文本文件内的内容

  mercury,mercuy

读文件的代码

Function writeorderno(orderno)

Dim fso, myfile,username,passwd
Set fso=CreateObject("scrīpting.FileSystemObject")
Set myfile=fso.openTextFile("C:testing.txt",1,false)
tmp=split(myfile.readline,",")
username=tmp(0)

passwd=tmp(1)

myfile.close
End Function

写文本文件的代码

Function writeorderno(orderno)

Dim fso, myfile
Set fso=CreateObject("scrīpting.FileSystemObject")

Set myfile=fso.openTextFile("C:result1.txt",8,false)

myfile.writeline orderno
myfile.close
End Function

3EXCEL文件

我们可以把EXCEL文件当成数据文件,通过对EXCEL文件的读写操作,来实现数据驱动.

可以把EXCEL文件当作对象的方式来完成写的操作

Dim Excel,ExcelSheet
Set Excel=CreateObject("Excel.Application")
Set ExcelSheet=CreateObject("Excel.Sheet")
ExcelSheet.Application.visible=true
Sheet.ActiveSheet.Cells(1,1).value=1

ExcelSheet.ActiveSheet.Cells(1,2).value=2

ExcelSheet.ActiveSheet.Cells(1,3).value=3

Excel.Save "C:test.xls"

Set ExcelSheet=Nothing

用ADO的方式连接EXCEL文件来做读的操作


Dim conn,input,filename
filename="D:公基本情况(tb_gsgk)-标准格式.xls"
Set conn= createobject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source="&filename&";Extended Properties='Excel 8.0;hdr=yes'"
Set input= createobject("ADODB.Recordset")
input.Open "select  *   from [公基本情况-标准格式$] " ,conn,2,2 
input.close
Set input=nothing

4.数据库

可以利用设计数据表,把测试数据和测试用例放在数据表里,用ADO或者其他任何可以访问连接数据库的方式连接数据库,来实现数据驱动

   Dim res,cmd,sql
Set Res=createobject("adodb.recordset")
     Set Cmd=createobject("adodb.command")
     Cmd.activeconnection="Provider=SQLOLEDB.1;Password=111111;Persist Security           

     Info=True;User ID=sa;Initial Catalog=xhq;Data Source=192.168.191.142"  '这句话是连接数据库的数据源,要做修改

    Cmd.CommandType = 1
    sql="selec t * from 表 where name=username
    Cmd.CommandText = sql
    Set res = Cmd.Execute()
    Set res = nothing
    Set cmd.ActiveConnection = nothing
    Set Cmd= nothing

以上四种方法都可以帮助我们实现数据驱动,应该说数据驱动在自动化测试中运用的比较的广泛,才有必要拿出来探讨一下.

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值