51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1516|回复: 0
打印 上一主题 下一主题

[原创] 浅谈自动化测试

[复制链接]
  • TA的每日心情
    开心
    2016-5-11 13:12
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2009-8-26 11:31:24 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
    浅谈自动化测试
    最近已实现自己项目中部分模块的自动化测试,现把一些做基本思路写出来,与大家共享。我们项目是用Felx3.0做的前台,所以我们是用QTP9.3+Flex3.0 add in实现的。其中遇到的最多问题是Felx在自动化中的应用。因为国内用这一块的比较少,好在问题已基本慢慢解决了。
    一、        自动化可行性研究:一般适合做自动化的项目必须具备以下特点
    1.        项目周期长:因为只有项目的周期非常长的时候,才能看得到自动化的效果。如果项目非常短也采用自动化的时候,可能脚本还没开发完,项目就结束了,那这就是一种极大的资源浪费。
    2.        稳定性好:只能对于那些大部分模块比较稳定的项目才能做自动化测试,因为很多自动化工具是基于对象录制与识别原理的。如果界面变化非常频繁,可能会导致大部分的脚本不能正常运行。
    3.        资源具备:首先要考虑的是采用什么工具来实施自动化。现在市场上用得较多的的是QuickTestProfessional.那么如果采用这个工具的话,就得考虑公司决策层愿不愿意花钱购买此产品的License。另外还有非常重要的一点,是你所在的项目适不适合用此工具。因为有些项目用了很多自定义控件,那么对于这些自定义控件,QTP是不能识别的,需要开发人员自针对这些自定义控件写代码,来让QTP识别。当然还有很重要的因素是人。项目中有没有具备自动化经验的人。如果没有,培训起来的时间关系也要考虑。
    二、        自动化测试计划:软硬件资源,配置管理 ,框架思想,编码规范等等。
    三、        框架搭建:框架搭建常见的有三种,关键字驱动,数据驱动,混合式驱动。这里以简单易用的数据驱动方法来,请参考如下图:

    四、        脚本开发,调试:
    框架设计好后就可以分模块开始写Function.一般是一个test中包括多个action,一个action中又包括多个Function. Function写好后就由当前所以action调用,然后各个action又由主action来调用。具体运行哪些action和Function,是由一个单独的驱动控件表来完成。
    Script ID        Script name        Run
    1        Login_IMT        Y
    2        Back_end        N
    3        Site        N
    4        Branch        Y
    6        Agent        Y
    7        Support        Y
    另外错误处理一定要做好,要做到真正的无人值守,可以参考如下代码:
    这是最上层控制action运行的代码
    Dim row                               
    Dim datapath  
    '存储控制表中记录数
    datapath=Environment ("TestDir")& "\FrameData\Framework.xls"
      '存储当前控制表路径
    row=rowCount(datapath,"IMT")

    '依次读取Framework.xls中IMT中记录,来确定要运行的action
    For i=2 to row
            Err.Clear
            On Error Resume Next        '出现错误,继续执行后面的操作
            '依次调用需要运行的action
            If getcell(datapath,"IMT",i,3)<>"N" Then
                    Runaction getcell(datapath,"IMT",i,2),oneIteration
            End If
    '如果捕获到错误,则写错误结果到Report
            If Err.Number <> 0 Then
               Call Report( Err.Number,"FAIL", Err.Description)
               End if
            Err.Clear
            On Error goto 0                '清除错误
    Next


    五、        自动化测试运行
    脚本都调试好后,就开始正式运行了。如果错误处理做得好的话,就可以无人值守了。晚上要脚本自动运行,自动报Bug,自动拍图,自动写报告。第二天早上等着来抓虫子吧。
            测试结果       
                           
            测试日期:        2009-8-25       
            执行时间:        3:25:07 PM       
            结束时间:        3:33:52 PM       
            执行时长:         0:08:45       
            执行总数:        8       
            测试机器:        192.168.118.190       
                           
            测试业务        结果        注释
            Login: Login_IMT        PASS        login in successfully!
            Branch: Create branch        PASS        The branch already exists
            Login: Login_IMT        PASS        login in successfully!
            Branch: Create Branch        FAIL        The "Reset" FlexButton object was not found in the Object Repository.
    Check the Object Repository to confirm that the object exists or to find the correct name for the object.

    六、        脚本的维护与增强
    所有自动化测试运行正常后,并不是万事无忧了。如果软件有更新,或模块有变化,可能要对脚本进行维护。祝你好运了。
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-10-5 12:23 , Processed in 0.096265 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表