TA的每日心情 | 开心 2016-5-11 13:12 |
---|
签到天数: 1 天 连续签到: 1 天 [LV.1]测试小兵
|
2#
楼主 |
发表于 2009-8-26 11:44:41
|
只看该作者
浅谈自动化测试
浅谈自动化测试
最近已实现自己项目中部分模块的自动化测试,现把一些做基本思路写出来,与大家共享。我们项目是用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.
六、 脚本的维护与增强
所以自动化测试运行正常后,并不是万事无忧了。如果软件有更新,或模块有变化,可能要对脚本进行维护。祝你好运了。 |
|