第七章 自动化无人值守运行(上)
---Web自动化测试之Webdriver(python)--从零到熟练(系列)
在你根据手工测试用例完善自动化测试用例后,每个测试用例都调试通过了,说明我们已完成了对被测对象的测试用例覆盖。可是在平时的上线回归中,你不可能一个一个地手工执行测试用例的,我们希望的是运行一个命令或是执行一次菜单,测试用例会一个一个地去执行。所以本章开始,我们将讲解如何组织测试用例,以及利用jenkins来自动执行测试用例。
7.1 TestSuite组织测试用例
平时我们编写测试用例的时候,都是继承unittest.TestCases类来编写测试用例的,重写了setUp(),tearDown()方法,并且定义以'test'开头的具体方法,来组织成一个个测试用例。而很多的测试用例文件,我们可以用unittest.TextTestRunner()来组织运行测试用例。而根据不同的测试需要,来编写不同的suite文件。
例如:我编写的TestSuite_Online_All.py文件:
# -*- coding: utf-8 -*-
'''
Created on 2014-6-12
@author: songxianfeng
'''
import unittest
import sys
import os
sys.path.append("..")
sys.path.append(os.getcwd()+"/src/")
#引用测试用例文件
from TestCases.TestCase_QT_Login import testcases_login
from TestCases.TestCase_QT_Index import testcases_index
class testsuit_online_all():
def test(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将需要的测试用例组织起来后,当需要执行这一系列的测试用例的时候,只需要执行python TestSuite_Online_All.py 命令即可。或是右击TestSuite_Online_All.py文件,选择“Run As”—>”python run”运行测试集文件即可。
为了方便管理,我们将所有的测试用例集文件放在TestSuites文件夹下,在以后配置Jenkins自动运行Job的时候就可以根据需要,进行不同的配置。
7.2 利用Jenkins来管理自动化测试用例
Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:
(1)持续的软件版本发布/测试项目。
(2)监控外部调用执行的工作。
由于其是开源的,所以现在很多公司都用它来管理代码,当然要做到持续集成还是有很多工作要做的,我们只用它来调用我们的自动化测试用例。
Jenkins基本配置
Jenkins这个开源工具的安装及配置管理,在网上有很多相关的教程,如:http://blog.csdn.net/wangmuming/article/details/22925127。
这个上面讲的就很详细,所以我们不在此详细讲述相关的操作。本节我们只讲解,如何把我们的自动化测试用例配置到jenkins上。
下面我们以一个实例来讲解:
(1)我们编写了测试用例文件以及suite文件,并将所有的文件放到SVN:svn://svn.corp.ncfgroup.com/selenium_test/yyzhongchou下面。
(2)我们在要运行测试用例的服务器上安装并配置好了jenkins,这个配置你可以在网上查找相关的方法自行安装配置。
(3)新建一个job ,命名为Zhongchou-web-test-testsuit,然后打开这个job,单击配置菜单。
(4)给我们这个Job添加描述,允许执行项目的人员“启动安全项目”,如图7.2.1所示:
(5)对我们测试用例的源码进行管理,根据我们源码管理的工具不同,选择不同的方法。我们放的是SVN,所以选择Subversion项,然后在后面填写我们的SVN地址,如图7.2.2所示:
(6)添加构建命令。当我们执行Job的时候,怎么运行我们的测试用例呢,在这一步中,我们要添加上执行我们测试用例的命令:
python
.\src\testSuit\testSuit_zhongchou_all.py,这样运行的时候就会调用testsuite,执行测试集中的所有测试用例了,如图7.2.3所示:
(7)构建Job。填写完成之后,点击保存按钮,返回job页。当我们想执行测试用例的时候,点击页面左侧的“立即构建”,即可运行测试用例。如图7.2.4所示:
(8)查看执行结果。要想查看测试用例执行的结果,我们可以单击左侧的“Build History”下面的构建项目,在打开的页面中单击左侧的“控制台输出”,就能看出用例执行的结果了。这样就可以定位错误,进行调试。如图7.2.5所示: