• 【测试求职】自动化测试相关


    数据驱动与关键字驱动的区别。写出一种你熟悉的测试框架,解析它架构。

    【数据驱动】通过用数据来控制测试的业务流,即在测试中用不同的数据来导向不同的测试结果。

    四种途径来达到数据驱动

    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:  esting.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:
    esult1.txt",8,false)
    myfile.writeline orderno
    myfile.close
    End Function

    3.EXCEL文件

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

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

    Dim Excel,ExcelSheet
    Set Excel=CreateObject("Excel.Application")
    Set ExcelSheet=CreateObject("Excel.Sheet")
    ExcelSheet.Application.visible=true
    ExcelSheet.ActiveSheet.Cells(1,1).value=1
    ExcelSheet.ActiveSheet.Cells(1,2).value=2
    ExcelSheet.ActiveSheet.Cells(1,3).value=3
    Excel.Save "C:  est.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.activec ‘连接数据库数据源,需要修改
    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

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

    利用SQL connection访问

    Dim conn
    set conn=Createobject("ADODB.Connection")
    Dim Srvname
    Srvname="DSN=Dblis50;UID=sa; PWD=;APP=QuickTest Professional;WSID=ADMIN;DATABASE=Dblis50"    ‘连接数据库数据源,需要修改
    conn.connectionstring = Srvname
    conn.Open
    Dim Rec
    Set Rec = CreateObject("ADODB.Recordset") 
    Dim SQL
    SQL="select top 1 *  from Lis_List" 
    Rec.open SQL ,conn
    Dim Username
    Username=Rec.fields("PatName") 
    Msgbox Username

    利用SQL connection访问
    Dim conn,res,cmd,sql,strconn
    set conn=Createobject("adodb.connection")
    Set Res=createobject("adodb.recordset")
    Set Cmd=createobject("adodb.command")
    strconn="DSN=Dblis50;UID=sa; PWD=;APP=QuickTest Professional;WSID=ADMIN;DATABASE=Dblis50"   ‘连接数据库数据源,需要修改
    conn.connectionstring = strconn
    conn.Open
    Cmd.Activeconnection= conn
    Cmd.CommandType = 1
    sql="select top 2 * from Lis_List"
    Cmd.CommandText = sql
    Set res = Cmd.Execute()
    Dim Username
    Username=res.fields("PatName") 
    Msgbox Username
    Set res = nothing
    Set cmd.ActiveConnection = nothing
    Set Cmd= nothing

    【关键字驱动】通过关键字来控制测试的业务流,即在测试中用不同的关键字来导向不同的测试结果。

    关键字驱动技术在QTP火起来之后才被大家开始关注,关键字驱动测试技术是数据驱动测试的一种改进类型,主要关键字包括三类:被操作对象(控件)、操作(事件)和值,用面向对象形式可将其表现为控件.操作(),将测试逻辑按照这些关键字进行分解,形成数据文件,用关键字的形式将测试逻辑封装在数据文件中,测试工具只要能够解释这些关键字即可对其应用自动化。拿具体步骤解释关键字驱动:

    1.建立对象库:

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

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

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

     

    最初用QTP就是简单的录制,然后修改脚本,缺点如下:

    1. 应用软件必须具备一定的稳定性,并且在整个业务流程上都必须完整的实现了,否则顺序录制整能实现?

    2. 自动化脚本的维护性成本非常的高

    3. 自动化脚本的可重用性比较差

    随之出现了关键字驱动的概念,一切都以对象为出发点,这有点像编程语言中从过程化向面向对象转化,在QTP中的具体实现方法是:

    1. 在单个程序界面上将测试所涉及到的对象手工添加到对象库中

    2. 在专家视图中基于对象库中的对象编写自动化测试脚本

    以上这样做的明显的优点在于:

    1. 脚本的可控性非常的强,模块化组织也比较好

    2. 可以在开发完全实现所有的业务流程功能前就建立测试脚本,占据了比较大的主动性,为时间上的安排提供了更大的空间,一个词概括:“测试先行”

     

    摘自:http://bbs.51testing.com/viewthread.php?tid=113729&extra=&highlight=%CA%FD%BE%DD%C7%FD%B6%AF&page=1

  • 相关阅读:
    iOS SDK:预览和打开文档
    显示手机内联系人数量
    已知一点的经纬度和该点到另一点的距离,求另一点的经纬度
    坚持让自己的每次尝试都做到极限
    2016第52周一时间的朋友读书会
    2016年第51周日三岁看大?
    2016第51周五产品经理的十大错误
    2016第51周四外甥女走丢记
    2016第51周三产品经理如何更有说服力
    2016第51周二
  • 原文地址:https://www.cnblogs.com/annieyu/p/3930800.html
Copyright © 2020-2023  润新知