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

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

robot函数实例讲解(二)

发布: 2008-7-24 18:01 | 作者: 网络转载 | 来源: 51testing sincky | 查看: 60次 | 进入软件测试论坛讨论

领测软件测试网

前提条件:OS系统中已经安装Office。

[源码]

'$include "sqautil.sbh"
Sub Main
    Dim Result As Integer
    dim excel as Object
    dim book as Object
    dim worksheet as Object
    dim s_name as String
    dim s_pass as String
    dim count as Integer

    'Initially Recorded: 2004-4-2  :16:55
    'Script Name: AUT_1_Login
   
    Window SetContext, "Caption=Program Manager", ""
    StartBrowser "C:\Program Files\Internet Explorer\IEXPLORE.EXE", "WindowTag=WEBBrowser"
   
   
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    'Initiliaze excel
    on error resume next
    Set excel = GetObject(,"excel.application")
    if(excel Is Nothing) then
        Set excel = CreateObject("excel.application")
        if(excel Is Nothing) then
            MsgBox "Couldn't find Excel!"
            Exit Sub
        End if
    End if
   
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

    Set book = excel.Workbooks.Open("Your Book1.xls")
    Set worksheet = book.Worksheets("Your Excel sheet's name")
       
    For count=1 To 2
    s_name = worksheet.Cells(1,count).value
    s_pass = worksheet.Cells(2,count).value
    'print s_name,s_pass
   
    Window SetContext, "Caption=Web应用系统 - Microsoft Internet Explorer", ""
    Browser SetFrame,"Type=HTMLFrame;HTMLId=mainframe",""
    Browser NewPage,"HTMLTitle=Title",""
    EditBox Click, "Type=EditBox;Name=userAccount", "Coords=26,10"
    InputKeys s_name &"{TAB}"&s_pass
    PushButton Click, "Type=PushButton;HTMLText=登录"
   
    Window SetTestContext, "Caption=Web应用系统 - Microsoft Internet Explorer", ""
    Browser SetFrame,"Type=HTMLFrame;HTMLId=mainframe",""
   
    Window SetTestContext, "Caption=Microsoft Internet Explorer", ""
    Result = LabelVP (CompareProperties, "Text=输入错误,请重新输入!", "VP=Object Properties;ExpectedResult=FAIL")
    Window ResetTestContext, "", ""
     
    Next count

    'Quit Excel'''''''''''''''''''''
    excel.Quit
    Set excel = Nothing
   
    Window CloseWin, "", ""
   
End Sub

数据池(DATAPOOL)应用技巧――如何生成定制数据

数据池可以按一定的规则生成测试数据列,但是它不能直接生成定制的数据。下面介绍使用数据池生成定制数据的一种方法:

    测试数据要求:数据由用户和产品数据组成,依次为用户名、用户密码、产品ID、产品价格。用户名和用户密码一一对应,产品ID和产品价格一一对应。要求用户数据和产品数据随机组合,生成大量测试数据。
数据生成过程:
1、从数据库中用Select语句分别从用户表和产品表中检索出用户数据和产品数据,检索结果分别存为CSV文件,文件名为user.csv和product.csv;

2、在Testmanager中新建DATAPOOL,命名为testdata,插入两个字段,TYPE选择“Read from File”,分别选择上一步生成的CSV文件,Sequense按需要选择;

3、按“Generate Data”按钮生成数据,close关闭窗口;

4、“Edit Datapool Data”查看生成的数据,可以看到只有两列数据,关闭窗口;

5、Manage Datapools窗口上点击“Import”按钮,选择测试项目目录中的..\TestDatastore\DefaultTestScriptDatastore\TMS_Datapools\ testdata.csv(上一步生成的数据池的CSV文件),输入新的DATAPOOL名afterdata,按“确定”按钮;

6、打开afterdata查看生成的数据,数据为4列,数据成功生成。

Rational Robot如何测试帮助c++程序员识别自定义或则第三方控件

大家都知道Rational Robot利用Delphi Enabler支持识别Delphi第三方控件和自定义控件,但是识别C++程序中遇到的第三方控件呢?我将在下边介绍识别他的方法,希望对大家有所帮助。

SQA Object Testing Control

如果你测试软件是vb编写的,那么利用SQA Object Testing Control: (SQAOTE32.ocx)来获得控件信息很对你来说很熟悉,通过它可以获取到软件运行时候的控件信息和方法。Robot可以根据提供的信息建立强壮的脚本,验证那些方法或功能是否正确,也就是最后的验证点。
如果你的c或则c++程序中包含自定义或者第三方的ActiveX(ocx)控件,你可以同样把这个控件放到每一个包含第三方控件或者用到自定义控件的窗体上。
安装Rational TeamTest或者Robot,Object Testing Control (SQAOTE32.ocx)会默认安装到系统目录system32中:C:\WINNT\system32\sqaote32.ocx.。

添加Rational ActiveX Test Control

  如果想让ActiveX Test Control起作用,需要在VC中设置ActiveX可用。以下用MFC举例
第一.建立工程,设置ActiveX控件可用
      
第二.在有第三方控件的地方添加Rational ActiveX Test Control
有一个窗体中包含MSTreeView,运行Rational Robot利用object properties来抓取MSTreeView属性,Rational Robot无法识别该对象(对象为UNKNOW)。添加SQA Object Testing Control(右键插入ActiveX控件,出现下图窗体)。

添加Rational ActiveX Test Control后窗体上出现一个robot的图标,你不用在代码中做任何处理就可以使用他。SQA Object Testing Control是个不可见控件,运行软件后他不会显示在窗体上。

    
     
再没有添加SQA Object Testing Control的时候Robot只能识别这个控件的通用属性,添加后Robot可以识别自定义控件或者插件的大部分属性。


注意
如果用到得自定义控件继承自MFC或者用APIS实现,即使添加SQA Object Testing Control控件Robot也无法有效的工作。那么定义该对象继承相近的类别。
方法1:运行的时候当用Object properties识别对象为unknow的时候,在出现的对话框中定义无法识别控件到相近的基类中。
方法2:打开robot,Tools->General Options,切换到object mapping页面。选择基类,然后添加无法是别的控件到该类中。
这样做可以识别该控件的通用类别属性。

总结:针对无法识别自定义和第三方控件建议添加Rational ActiveX Test Control,通过他能使Robot识别对象的大多数属性,帮助Robot建立强壮的脚本。

Rational Robot SQABasic数据库操作相关命令 


SQLClose 功能函数
断开由SQLOpen确定的与ODBC数据源连接。
SQLClose ( connection& )
语法: 参数 解释
connection& 由SQLOpen返回的一个长整型的名称参数。
注解:
返回的是一个变量。成功返回0并连接随后关闭或断开。如果连接不正常,返回-1。

This example opens the data source named "SblTest," gets the names in the ODBC data sources, and closes the connection.
Sub main
' Declarations
'
Dim outputStr As String
Dim connection As Long
Dim prompt As Integer
Dim datasources(1 To 50) As Variant
Dim retcode As Variant
Dim action1 as Integer
Dim qualifier as String

prompt = 5
' Open the datasource "SblTest"
connection = SQLOpen("DSN=SblTest", outputStr, prompt:=5)

action1 = 1 ' Get the names of the ODBC datasources
retcode = SQLGetSchema(connection:=connection,action:=1, qualifier:=qualifier, ref:=datasources())
' Close the datasource connection
retcode = SQLClose(connection)

End Sub

SQLError功能函数
可以用来接收做ODBC函数调用时发生的多条错误的详细信息。为最近ODBC函数调用和连接返回错误信息。
SQLError ( destination() )
语法: 参数 解释
destination() 两维数组的每行包含一个错误。名称参数是必要的,必须是变量的数组。

注解
没有返回值。域: 1) 表示ODBC错误类型/下级分类的字符串, 2)表示数据源错误编码的数字值, 3)表示错误的文本信息。

如果没有错误从先前的ODBC函数调用发生,则0被返回到调用者数组的(1,1)里。如果数组不是2维的或不支持上面提到的三个域,则一个错误信息被返回到调用者数组的(1,1)里。

SQLError Example
This example forces an error to test SQLError function.
sub main
' Declarations
Dim connection As long
Dim prompt as integer
Dim retcode as long
Dim errors(1 To 3, 1 To 10) as Variant
Dim outputStr as String
' Open the datasource
connection = SQLOpen("DSN=SBLTESTW;UID=DBA;PWD=SQL",outputStr,prompt:=3)
' force an error to test SQLError select a nonexistent table
retcode = SQLExecQuery(connection:=connection,query:="select * from notable ")
' Retrieve the detailed error message information into the errors array
SQLError destination:=errors
retcode = SQLClose(connection)
end sub


SQLExecQuery Function
在SQLOpen确定的连接上执行一个SQL语句。
SQLExecQuery ( connection& , query$ )
语法: 参数 解释
connection& 指定参数、必须。长整形、由SQLOpen返回。
query$ 包含一个有效SQL语句的字符串,返回值是个变量。
注解:
对于SQL SELECT返回结果集的栏数目;对于UPDATE, INSERT, 或 DELETE返回受语句作用的行的数目。任何其它SQL语句返回0。如果函数在指定数据源不能执行此查询,或如果连接不可用,则返回为负的错误编码。

如果SQLExecQuery被调用但连接上还有一些未处理结果,则这些等待结果被新的结果所代替。

SQLExecQuery Example
This example performs a query on the data source.
Sub main
' Declarations
'
Dim connection As Long
Dim destination(1 To 50, 1 To 125) As Variant
Dim retcode As long
Dim outputStr as String
Dim query as String
' open the connection
connection = SQLOpen("DSN=SblTest",outputStr,prompt:=3)
'
' Execute the query
query = "select * from customer"
retcode = SQLExecQuery(connection,query)
'
' retrieve the first 50 rows with the first 6 columns of each row into
' the array destination, omit row numbers and put column names in the
' first row of the array
'
retcode = SQLRetrieve(connection:=connection,destination:=destination,columnNames:=1,rowNumbers:=0,maxRows:=50, maxColumns:=6,fetchFirst:=0)

' Get the next 50 rows of from the result set
retcode = SQLRetrieve(connection:=connection,destination:=destination,columnNames:=1,rowNumbers:=0,maxRows:=50, maxColumns:=6)
' Close the connection
retcode = SQLClose(connection)
End Sub


SQLGetSchema功能函数
返回各类信息,包括数据源可用的信息,当前用户ID、表格名称、表格列的名称和类型、及其它数据源/数据库相关信息。
SQLGetSchema (connection& , action% , qualifier$ , ref() )
语法: 参数 解释
connection& 由SQLOpen返回的一个长整形。
action% 必需项。
qualifier$ 必需项。
ref() 动作请求的对应的结果的变量数组,必须有一个数组即使仅一个参数的一维数组。返回值是一个变量。

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

32/3<123>

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

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