联教测试部[web自动化]培训3_unittest框架

上传人:cl****1 文档编号:491002888 上传时间:2023-03-20 格式:DOCX 页数:56 大小:1.82MB
返回 下载 相关 举报
联教测试部[web自动化]培训3_unittest框架_第1页
第1页 / 共56页
联教测试部[web自动化]培训3_unittest框架_第2页
第2页 / 共56页
联教测试部[web自动化]培训3_unittest框架_第3页
第3页 / 共56页
联教测试部[web自动化]培训3_unittest框架_第4页
第4页 / 共56页
联教测试部[web自动化]培训3_unittest框架_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《联教测试部[web自动化]培训3_unittest框架》由会员分享,可在线阅读,更多相关《联教测试部[web自动化]培训3_unittest框架(56页珍藏版)》请在金锄头文库上搜索。

1、WEB自动化测试培训32016/06/03课程讲师 肖能尤尤课程目的熟悉和掌握Unnittesst单元测试试框架课程内容1 Unitteest单元测测试框架介绍绍unittesst是pytthon的单单元测试框架架, 在pyython的的官方文档中中,对uniittestt有详细的介介绍,想更深深一步研究的的同学可以到到httpss:/wwww.pytthon.oorg/dooc/去了解解,当然,我我这里也会接接介绍的。uunitteest单元测测试提供了创创建测试用例例,测试套件件以及批量执执行的方案,unitttest在安安装pyhtton以后就就直接自带了了,直接immport unit

2、ttest就可可以使用。作作为单元测试试的框架,uunitteest也是可可以对程序最最小模块的一一种敏捷化的的测试。在自自动化测试中中,我们虽然然不需要做白白盒测试,但但是必须需要要知道所使用用语言的单元元测试框架,这这是因为把sseleniium2的AAPI全部学学习完后,就就会遇到用例例的组织问题题,虽然函数数式编程和面面向对象编程程提供了对代代码的重构,但但是对于所编编写的每个测测试用例,总总不能编写成成一个函数(方法)来调调用执行吧?很显然,这这是不明智的的作法。利用用单元测试框框架,创建一一个类,该类类继承uniittestt的TesttCase,这这样可以把每每个casee看成是

3、一个个最小的单元元,由测试容容器组织起来来,到时候直直接执行,同同时引入测试试报告(这是是一直所期望望的),对于于unitttest部分分,下面详细细的依次介绍绍。unitttest各各组件的关系系为: 1.1 unittesst模块实战战unittesst支持测试试的自动化处处理,也同时时包含测试的的初始化和结结束测试,以以及把测试用用例按模块化化封装成一个个测试套件,来来进行批量的的处理。在一一个模块化的的测试用例中中,包含共同同的代码,如如公司教务网网的登录的测测试用例,都都得先打开浏浏览器访问项项目地址,执执行测试用例例完成后,关关闭浏览器结结束测试,一一般开始使用用“setUUp”表

4、示,结结束使用“ttearDoown”,ssetUp和和tearDDown被称称为测试固件件。在测试执执行的时候,ssetUp首首先被执行,而而且仅会执行行一次,这个个方法执行通通过后,不管管后面的测试试是否通过,都都会执行teearDowwn来结束测测试。在unnittesst中,提供供了TesttRunneer来为运行行测试,该类类对象提供了了run方法法,其中接受受TestCCase或者者TestSSuite参参数,并且返返回测试结果果,一般经常常使用的是TTextTeestRunnner运行行器,可以看看成是测试容容器。下面写写以教务网的的登陆例子来来验证登陆这这个用例是否否登陆成功来

5、来说明备注:切记在uunitteest中,测测试用例必须须以testt开头。实现的代码:代码:# -*- ccodingg: utff-8 -*-from seeleniuum impport wwebdriiverfrom seeleniuum.webbdriveer.suppport.ui immport Selecctimport unitttest, time, reclass LLogin(unitttest.TTestCaase): deff setUUp(sellf): selff.drivver = webdrriver.Fireffox() selff.drivver.imm

6、pliciitly_wwait(330) selff.basee_url = htttp:/192.1168.300.180/Uet-UUechn/ deff testt_logiin(sellf): checkk logiin succcess or faail drivver = self.driveer drivver.geet(sellf.basse_urll) drivver.fiind_ellementt_by_iid(txxtUserrName).cleear() drivver.fiind_ellementt_by_iid(txxtUserrName).sennd_keyys(

7、1886345664149) drivver.fiind_ellementt_by_iid(txxtPasssword).cleear() drivver.fiind_ellementt_by_iid(txxtPasssword).sennd_keyys(1223123) timee.sleeep(2) drivver.fiind_ellementt_by_llink_ttext(uu登录).clicck() timee.sleeep(1) deff tearrDown(self): selff.drivver.quuit() if _naame_ = _mainn_:unittesst.ma

8、iin(verrbositty=2)运行结果:脚本讲解:我们来详细的介介绍下如上的的代码和输出出结果,导入入了unitttest,创建了测试试的类(测试试模块名称),继承TeestCasse,在测试试固件中分别别写的测试时时候的初始化化和测试结束束后资源释放放的代码,中中间testt_logiin是测试用用例,也就是是自动化的测测试用例,在在主函数中,直直接调用maain(),在在main中中加入verrbositty=2,这这样测试的结结果就会显示示的更加详细细。这里的verbbosityy是一个选项项,表示测试试结果的信息息复杂度,有有三个值0 (静默模式式): 你只只能获得总的的测试用例

9、数数和总的结果果 比如 总总共100个个 失败200 成功8001 (默认模式式): 非常常类似静默模模式 只是在在每个成功的的用例前面有有个“.” 每个失败败的用例前面面有个 “FF”2 (详细模式式):测试结结果会显示每每个测试用例例的所有相关关的信息在编写的每个ccase中,可可以加注释,这这样在测试结结果中,我们们就知道该ccase是测测试那个功能能的,如上的的截图,依据据测试结果,我我们就知道第第一个tesstcasee是测试登陆陆的。1.2 构建测试套件在1.1介绍测测试模块的时时候,借助uunitteest测试框框架编写了一一个简单的ccase,在在节中,来介介绍怎么构建建测试套

10、件,测测试套件顾名名思义就是测测试用例的容容器。 在说说明测试套件件的时候,以以老师平板的的项目为案例例,来说明测测试套件在项项目中的实际际应用。新建建testCCase的ppackagge,在paackagee中创建teest_a11_logiin 登陆模模块和test_a10_ssafe_ccustoddy 安全监监护模块等,见目录结结构test_a110_saffe_cusstody模模块代码:#codingg:utf-8from apppium imporrt webbdriveerfrom seeleniuum impport wwebdriiverfrom tiime immpor

11、t sleeppfrom mmon.bby impport BByimport unitttest,ssyssys.patth.apppend(./pagge)from paage.baaseTesstCasee impoort ApppTesttCase#安全监护class SSafe_ccustoddy(ApppTestCCase): deff testt_a1_SSafe_ccustoddy(sellf): 首首页-安全全监护 selff.drivver.fiind_ellementt(By.NNAME,uu安全监护护).cllick() selff.waitt deff testt_a

12、2_SSafe_ccustoddy_botttom(sself): 点点击安全监护护-讲台-底部 selff.drivver.fiind_ellementt(By.NNAME,uu安全监护护).cllick() selff.waitt selff.drivver.fiind_ellementt(By.IID,coom.uett.teacchersppad:idd/rdobbtn_reeversee).cllick() selff.waitt deff testt_a3_SSafe_ccustoddy_topp(selff): 点点击安全监护护-讲台-底部-顶部 selff.drivver.fi

13、ind_ellementt(By.NNAME,uu安全监护护).cllick() selff.waitt selff.drivver.fiind_ellementt(By.IID,coom.uett.teacchersppad:idd/rdobbtn_reeversee).cllick() selff.waitt selff.drivver.fiind_ellementt(By.IID,coom.uett.teacchersppad:idd/rdobbtn_obbversee).cllick() selff.waitt if _naame_=_mmain_: uniittestt.mainn(

14、verbbosityy=2) # # #构构造测试集# suuite = unitttest.TestSSuite() # suuite.aaddTesst(Saffe_cusstody(testt_a3_SSafe_ccustoddy_topp)# # # 执行测试# ruunner = uniittestt.TexttTestRRunnerr()# ruunner.run(ssuite)1.2.1 aaddTesst的应用当有多个或者几几百测试用例例的时候,这这样就需要一一个测试容器器(测试套件件),把测试试用例放在该该容器中进行行执行,unnittesst模块中提提供了TesstSuitte类来生成成测试套件,使使用该类的构构造函数可以以生成一个测

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 市场营销

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号