基于python的unittest测试框架集成到jenkins(Mac)

时间:2021-01-23 18:06:24

1.jenkins部分

1.1 安装jenkins

jenkins下载地址:https://jenkins.io/download/

安装步骤,疯狂点击下一步

1.2 打开jenkins服务

在浏览器上输入127.0.0.1:8080

基于python的unittest测试框架集成到jenkins(Mac)

2.代码部分

代码下载地址:https://github.com/taomin1/pyunittest

2.1 目录架构

-testcase

--testsuite

-case_listener

-test_runner

-README

基于python的unittest测试框架集成到jenkins(Mac)

2.2 test_case

test_case包含多个test_suite,所有的测试用例均写在这个目录下,并且以test_suite_**.py命名(原因是jenkins配置时会讲到)

test_suite_baidu实例代码

基于python的unittest测试框架集成到jenkins(Mac)

2.3 caseListener

caseListener是一个装饰器,作用是在执行case时进行部分操作,比如打印执行开始,或者将执行结果执行结果存储到数据库等等

基于python的unittest测试框架集成到jenkins(Mac)

2.4 test_runner

test_runner是执行case的主入口,主要是在jenkins上配置时通过该文件去执行case

基于python的unittest测试框架集成到jenkins(Mac)

3.jenkins配置部分

3.1新建job

基于python的unittest测试框架集成到jenkins(Mac)

3.2 输入job名字

选择构建一个*风哥的软件项目

基于python的unittest测试框架集成到jenkins(Mac)

3.3 进行git配置,用于jenkins运行时获取代码

基于python的unittest测试框架集成到jenkins(Mac)

3.4 进行shell配置

基于python的unittest测试框架集成到jenkins(Mac)

export PATH=/Library/Frameworks/Python.framework/Versions/3.6/bin/

增加环境变量,因为我的本地机器装了3.6和2.7,代码是基于3.6编码的

python3 test_runner.py -p test_suite_**.py

通过test_runner去执行case,执行时回去检索以test_suite_**.py这种格式的case,所以在之前要求case命名格式要求

-p 是命名符合,在test_runner有源码,有兴趣同学可以详细看一下

4.结果演示

基于python的unittest测试框架集成到jenkins(Mac)

jenkins console显示为成功,在结果列表展示也为空

5.后续

1. 代码可以继续拆分

2.可以集成django和数据库用于可视化操作

3.HtmlTestRunner安装

下载后移动到python3安装目录下,https://i.cnblogs.com/Files.aspx

修改记录:

第94行,将import StringIO修改成import io

第539行,将self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer = io.StringIO()

第642行,将if not rmap.has_key(cls):修改成if not cls in rmap:

第766行,将uo = o.decode('latin-1')修改成uo = e

第775行,将ue = e.decode('latin-1')修改成ue = e

第631行,将print >> sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime)修改成print(sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime))