首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室软件测试频道
Google
首页 资讯动态 测试技术 测试工具 行业软件测试 测试管理 测试下载 经验分享 软件质量 其他技术 RSS订阅 博客 论坛
您现在的位置: 中国IT实验室 >> 软件测试 >> 测试工具 >> Robot >> 正文

Robot中使用脚本调用

        使用Rational Robot 录制操作生成脚本是很容易的事情,但如何管理脚本,减少脚本对程序和对其他脚本的依赖却是很值得探讨的,这需要自动化测试人员对脚本整体结构有一个很好的计划,同时还需要对被测软件的功能模块,业务重点划分明细。

        下面举一个简单的例子,用Robot打开一个记事本并输入内容保存,其中“打开”与“输入、保存”的操作是通过脚本调用实现,Robot对窗体Caption的定位提到头文件中作统一处理,同时对输入、保存的内容数据使用Datapool,现来看一下脚本,之后我会对其中一些语句做简单解释:

        主脚本 main:

        '$include "sqautil.sbh"        '调用Datapool时必须事先声明一下这个头文件

        declare sub notepadinput basiclib "notepadinput"(m as string,n as string)

        '声明这个主脚本里要call的sub(或function)名称和所在脚本的名称,及参数

        Sub Main
            Dim Result As Integer

            'Initially Recorded: 2006-11-10  8:51:51
            'scrīpt Name: main
            Dim x as integer
            Dim m as string
            Dim n as string
            Dim dp as long
            StartApplication "C:\WINDOWS\system32\notepad.exe"
            dp=SQADatapoolopen("notepaddp")   '打开Datapool,名字为notepaddp
            for x = 1 to 5                    '循环,Datapool就像一个excel表,这个循环就是从不同行里取值
            call SQADatapoolfetch(dp)         '移动Datapool里的指针
            call SQADatapoolvalue(dp,1,m)     '从第一行第一列里取值赋给m
            call SQADatapoolvalue(dp,2,n)     '从第一行第二列里取值赋给n
            call notepadinput(m,n)            '将m,n作为参数传递给notepadinput,记得脚步开始处的那个delcare吧
            next                              '循环
            call SQADatapoolclose(dp)         '关闭Datapool
        End Sub

        ===========================================================================
        子脚本 notepadinput::

        '$include "notepadheader.sbh"

        '调用头文件,头文件中统一处理窗体Caption定位问题

           Sub notepadinput(m as string,n as string)
            Dim Result As Integer
            'Initially Recorded: 2005-7-17  20:08:01
            'scrīpt Name: notepadinput
            Window SetContext, winname, ""    '本行中的winname就是在头文件中处理的Caption
            EditBox Click, "ObjectIndex=1", "Coords=52,17"
            InputKeys m                       '输入m中的数值
            MenuSelect "文件(F)->另存为(A)..."
            Window SetContext, "Caption=另存为", ""
            ComboEditBox Left_Drag, "ObjectIndex=3", "Coords=85,9,-77,23"
            InputKeys n                        '保存名称为n中的数值
            PushButton Click, "Text=保存(S)"
        End Sub

    ==================================================================================

        头文件 notepadheader.sbh:

        const winname as string = "Caption={* - 记事本}"

        '一般头文件中定义常量并赋值,这里Caption使用通配符,可以定位所有窗体

        ==================================================================================

        Datapool

        在TestManager中新建一个Datapool,名字为notepaddp,新建两列五行(数值属性为string),自己编辑数值即可

        ==================================================================================

        其实Robot中脚本调用和Datapool还是很简单的,因为他的语句都很固定,只要设置正确运行不会有问题。

        脚本和输入数值的分离度越高,对于脚本的维护越方便,因为当被测程序变动或你打算输入不同测试数值时只需修改一个地方即可。上面的这个程序是很简单的一个例子,但相信其中用到的方法对新学Robot的人还是比较有帮助的。如果有问题,欢迎大家多多讨论:)

【责编:michael】

中国IT教育

相关产品和培训
文章评论
 专题推荐

 ·节省成本才是“王道” VOIP案例应用…
 ·防范Linux病毒 打造没有病毒的乐土…
 ·巧用网络流量 打造健康内网…
 ·带你领略windows系统“另类”安装
 ·无线路由器设置从入门到精通
 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·企业网管如何部署你的网络监控系统?
 ·2008年软考官方指定教材及辅导书下载专题
 ·负载均衡技术方案攻略
 最近更新
 博客论点
 频道精选
 软件测试频道导航