|
本帖最后由 草帽路飞UU 于 2022-8-10 16:38 编辑
在你根据手工测试用例完善自动化测试用例后,每个测试用例都调试通过了,说明我们已完成了对被测对象的测试用例覆盖。可是在平时的上线回归中,你不可能一个一个地手工执行测试用例的,我们希望的是运行一个命令或是执行一次菜单,测试用例会一个一个地去执行。所以本章开始,我们将讲解如何组织测试用例,以及利用jenkins来自动执行测试用例。
1.1 TestSuite组织测试用例
平时我们编写测试用例的时候,都是继承unittest.TestCases类来编写测试用例的,重写了setUp(),tearDown()方法,并且定义以'test'开头的具体方法,来组织成一个个测试用例。而很多的测试用例文件,我们可以用unittest.TextTestRunner()来组织运行测试用例。而根据不同的测试需要,来编写不同的suite文件。
例如:我编写的TestSuite_Online_All.py文件:#-*-coding:utf-8-*-
- '''
- Createdon2014-6-12
- @author:songxianfeng
- '''
- importunittest
- importsys
- importos
- sys.path.append("..")
- sys.path.append(os.getcwd()+"/src/")
- #引用测试用例文件
- fromTestCases.TestCase_QT_Loginimporttestcases_login
- fromTestCases.TestCase_QT_Indeximporttestcases_index
- classtestsuit_online_all():
- deftest(self):
- if__name__=="__main__":
- #1,登录检测:testlogin
- #2,首页检测:testindex
- #......
- #构造测试集
- suite=unittest.TestSuite()
- suite.addTest(testcases_login('testlogin'))
- suite.addTest(testcases_index('testindex'))
- #运行测试用例集
- runner=unittest.TextTestRunner()
- runner.run(suite)
- if__name__=="__main__":
复制代码
testsuit_online_all().test()先引用测试用例文件中的测试类,如:testcases_index,然后利用“测试类(测试函数)”的方法,将具体的测试函数添加suite中,然后利用unittest.TextTestRunner()的run()函数来运行测试用例集中的测试用例。
测试用例的运行
通过testsuite将需要的测试用例组织起来后,当需要执行这一系列的测试用例的时候,只需要执行pythonTestSuite_Online_All.py 命令即可。或是右击TestSuite_Online_All.py文件,选择“Run As”—>”python run”运行测试集文件即可。
为了方便管理,我们将所有的测试用例集文件放在TestSuites文件夹下,在以后配置Jenkins自动运行Job的时候就可以根据需要,进行不同的配置。
1.2 利用Jenkins来管理自动化测试用例
Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:
(1)持续的软件版本发布/测试项目。
(2)监控外部调用执行的工作。
由于其是开源的,所以现在很多公司都用它来管理代码,当然要做到持续集成还是有很多工作要做的,我们只用它来调用我们的自动化测试用例。
Jenkins基本配置
本节我们只讲解,如何把我们的自动化测试用例配置到jenkins上。
下面我们以一个实例来讲解:
(1)我们编写了测试用例文件以及suite文件,并将所有的文件放到SVN:svn://svn.corp.ncfgroup.com/selenium_test/yyzhongchou下面。
(2)我们在要运行测试用例的服务器上安装并配置好了jenkins,这个配置你可以在网上查找相关的方法自行安装配置。
(3)新建一个job ,命名为Zhongchou-web-test-testsuit,然后打开这个job,单击配置菜单。
(4)给我们这个Job添加描述,允许执行项目的人员“启动安全项目”,如图1.2.1所示:
图1.2.1 添加描述及启动项目安全
(5)对我们测试用例的源码进行管理,根据我们源码管理的工具不同,选择不同的方法。我们放的是SVN,所以选择Subversion项,然后在后面填写我们的SVN地址,如图1.2.2所示:
图1.2.2 源码管理
(6)添加构建命令。当我们执行Job的时候,怎么运行我们的测试用例呢,在这一步中,我们要添加上执行我们测试用例的命令:
python.\src\testSuit\testSuit_zhongchou_all.py,这样运行的时候就会调用testsuite,执行测试集中的所有测试用例了,如图1.2.3所示:
图1.2.3 添加构建命令
(7)构建Job。填写完成之后,点击保存按钮,返回job页。当我们想执行测试用例的时候,点击页面左侧的“立即构建”,即可运行测试用例。如图1.2.4所示:
图1.2.4 构建Job
(8)查看执行结果。要想查看测试用例执行的结果,我们可以单击左侧的“Build History”下面的构建项目,在打开的页面中单击左侧的“控制台输出”,就能看出用例执行的结果了。这样就可以定位错误,进行调试。如图1.2.5所示:
图1.2.5查看控制台输出
1.3 Jenkins高级配置
经过上面的配置,我们已实现了把自动化测试用例接入到jenkins中,虽然比手工执行高端一点儿,但这不是我们想要的结果。我们想要自动化执行测试用例,监控执行结果,如果出错给我们发邮件或是短信,这样我们才能及时处理。所以我们要进一步去配置或是优化测试用例。
1.3.1 自动化执行测试用例
Jenkins是用来管理和配置持续化集成的,在持续化集成中,自动运行脚本语言是最基本的功能。下面我们就配置一下:
(1)定时执行测试用例
如图1.3.1.1所示,选择构建触发器中选择buildperiodically,配置执行的方法:
图1.3.1.1配置定时执行
选择 Build periodically,在 Schedule 中填写 0 * * * *。
第一个参数代表的是分钟 minute,取值 0~59;
第二个参数代表的是小时 hour,取值 0~23;
第三个参数代表的是天 day,取值 1~31;
第四个参数代表的是月 month,取值 1~12;
最后一个参数代表的是星期 week,取值 0~7,0 和 7 都是表示星期天。
所以 0 * * * * 表示的就是每个小时的第 0 分钟执行一次构建。
(2)触发式执行测试用例
如图1.3.1.2所示,选择构建触发器中选择“在其他项目完成后构建”或是“触发无私构建”,然后写上触发的项目了。如在开发上传完代码,完成构建后,自动触发回归测试自动用例来进行回归测试。
图1.3.1.2 触发式构建
1.3.2 程序执行失败邮件通知
当测试用例实现自动化执行后,我们需要知道执行的结果。一般测试用例执行成功后,我们并不太关心。但是如果执行失败了,我们需要知道为什么失败,是被测试对象存在bug,还是我们的自动化测试代码有问题了?然后去排查,找出问题所在,这也是自动化测试的意义。
而用例执行失败后发邮件通知,这个功能是jenkins自带的功能,我们只需要对其进行如下配置即可。
(1)打开要进行配置的job, 单击“配置”项。
(2)在“构建后操作”下单击“Add post build actions”,然后选择“E--mail Notification”项。
(3)然后在Recipients后面的框中填写要接收错误报告的邮箱地址,以空格分隔多个地址。如图1.3.2.1所示:
图1.3.2.1 填写接收报告邮件地址
(4)在下面勾选“每次不稳定的构建都发送邮件通知”复选框,然后单击保存,这样在测试用例执行失败或者job构建失败后就会发邮件给所填写的邮件地址了
|
|