pytest、tox、Jenkins 实现 python 接口自动化持续集成

本贴最后更新于 1474 天前,其中的信息可能已经斗转星移

pytest 介绍

pytest 是一款强大的 python 测试工具,可以胜任各种级别的软件测试工作,可以自动查找测试用并执行,并且有丰富的基础库,可以大幅度提高用户编写测试用例的效率,具备可扩展性,用户自己也可以编写插件实现特定的功能,也可以安装第三方插件,非常容易的与其他工具集成到一起,比如持续集成、接口自动化测试等。小编之前也写过几篇关于 pytest 的文章,可以到主页查看哈。

tox 介绍

tox 是一个命令行工具,允许测试在多种环境下执行,tox 不仅能测试不同的 python 版本,还可以用它来测试不同的依赖配置和不同的操作系统的配置。

工作原理大致是,通过 setup.py 文件为待测程序创建源码安装包,它会查看 tox.ini 中的所有环境设置,并针对每个环境执行如下操作:

  1. 在.tox 目录下创建一个虚拟环境
  2. 使用 pip 安装依赖包
  3. 使用 pip 在步骤 1 的虚拟环境中安装自己的程序包
  4. 运行测试用例

下面通过一个实例来看一下 tox 的运行过程:

在项目根目录下新建 tox.ini 文件,然后加入下面的配置

[tox]
envlist = py36

[testenv:dev]
; deps告诉tox确保pytest已经安装,如果有多个测试依赖,可以按行罗列,同时也可以指定版本
deps =
    pytest
; 告诉tox在每个测试环境里运行pytest
commands = pytest --junitxml=junit-{envname}.xml
[pytest]
markers =
    smoke: 用于冒烟测试
    get

addopts = -rsxX -l --tb=short --strict
xfail_strict = true
minversion = 3.0
norecursedirs = .* venv src *.egg dist build
testpaths = tests
python_classes = *Test Test* *Suit

在项目根目录下执行 tox -e dev 查看输出内容。

tox1.jpg

Jenkins 配置

  • 安装 python 插件

tox2.png

  • 创建一个多配置风格的 job

tox3.jpg

  • 源码配置

tox4.jpg

  • 配置 axes

tox5.jpg

  • 添加 python 构建脚本

tox6.png

import toxos.chdir(os.getenv("WORKSPACE"))tox.cmdline()

然后构建执行,就可以了。

这篇文章说的比较粗糙,后面会加 tox 的介绍和 Jenkins 的配置说明

  • tox
    1 引用
  • pytest
    2 引用
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    51 引用 • 37 回帖
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    534 引用 • 671 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...