欢迎来到天天文库
浏览记录
ID:12069672
大小:35.50 KB
页数:4页
时间:2018-07-15
《自动化测试框架指南》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、自动化测试框架指南以下只是测试框架的一点设想,需要以后修改;这套方案的最终结果是实现测试自动化,但是因为目前人力、实力有限,只能逐步完善设想中的功能;最终的目的是要实现definethedriver——定义驱动测试。本文的自动化测试以MI公司的QuickTestprofessional为例1定义:uServicesfunction:业务函数TestCase(测试用例):是能够从头至尾独立执行的最小测试单元uu测试框架的设想1.1ServicesFunction的分类及分类原则ServiceFunction的颗粒大小需求不一,靠自己来掌握,总之应该是尽量少的ServiceFun
2、ction满足所有CaseFunction的需要uCommonlevel¬——所有项目测试都可以使用的函数,比如验证小数精度、写测试结果到报告等等。Commonlevel是公用的函数库,不需要经常修改,因此可以编成DLL文件,供所有的测试脚本使用。使用语法可以这样:‘------------------------------------Setobject=createobject(“”)Callobject.funciton“”‘------------------------------------Highulevel¬——各项目专用的测试用例,是为专门的
3、测试项目而设置的,但是这些ServicesFunction不能单独作测试,必须配合更高一级的Testlevel才能使用Testlevelu¬¬——Testlevel可以这样理解:是对某一个用户来说,为了完成某项工作和业务,时间从头至尾相对连续的一组操作。Testulevel并不是测试用例,但是它的颗粒大小却决定了其复用程度,因此需要仔细分析每个TestCase的业务逻辑,将相同的TestLevelservicesfunction总结出来。Testlevel的组成:uFunctionStep ‘测试所要进行的操作Validation ‘验证测试的结果R
4、eturnresult‘返回测试的结果,validation的验证结果也应该通过这一部分的函数写入到resultreport中Endfunction1.2Testcase和TestsuiteTestuCase:测试用例。可以这样理解:是一组人为了完成某项工作和业务,时间从头至尾相对连续的一组操作Testsuite:u是一个相同工作性质的工作部门人员,为了完成某项工作和业务,时间从头至尾相对连续的一组操作。Testcase和Testusuite的意义:1、大量的Case,肯定是分模块存放的。否则就难以查询和维护、修改。2、TestCase和Testlevelhighlevel
5、servicefunction的互相调用关系可以通过insightsources这个工具来查询。3、Suite相当于一个Case模块,里面包含很多个Case;比如测试用户管理的,都放在一个Suite里,测试设备管理的,放在另一个suite里。1.3TestCase的分类原则u一般复杂Case,要牵扯到好多个模块的功能的,但是要看它的主要测试点是什么,然后按这个测试点所属模块,来确定这个Case归属哪个模块的。u有依赖关系的Case,是合并成一个Case,还是保留独立?运行起来有依赖关系,倾向于合并成一个Case,合并的好处是运行方便,但是出错时要再区分是那个小Case的错误;
6、分开的话,就相反,运行不方便,但出错时比较明确哪个错了。u如果A是建10万个用户,要花1小时的时间,那你还会放在一块嘛,肯定是倾向分开成小Case,不然B出错了,你还得再重头跑ABCD,测试人员会气死的!所以运行麻烦、容易出错、时间较长的小case,还是保持独立,只要跟测试人员写好说明文档,让他们知道正确的运行方法,就可以了u如果合成一个case,我应该把它放到哪个suite里呢因为它横跨了几个页面,都是测试点,不好划分啊。放在那个Suite里啊,那都可以啊,或者你想独立一个suite也可以啊,无所谓的,只要你运行结果有正确记录,不会漏掉丢失就可以了。u测试环境可以通过重新导
7、入数据来恢复,这样就可以将一部分运行时间长、但是又有依赖关系的Testcase分离出来,避免总是要从开头进行测试。u一个Testsuite里的用到的lib和OR都是相同的。1.4测试用例和ServicesFunction命名规则类型名称Testcase项目名_TC_nametestlevelservicesfunction项目名_TL_namehighlevelservicesfunction项目名_HL_namecommonlevelservicesfunctionCL_name(不应包括项目名,因为
此文档下载收益归作者所有