CukeTest Python执行工具

提供了一个Python包,用于在快速启动一个或多个CukeTest测试项目。以便在其它Python程序或测试平台中集成CukeTest功能。

介绍

由于CukeTest的测试项目主要采用JavaScript语言编写,但大部分测试人员往往更熟悉Python,因此提供了一个Python包,用于启动CukeTest测试项目,通过这个包用户可以快速编写脚本将CukeTest的测试项目集成到现有的持续集成/测试平台中去。

用法

引入模块

Python
from cuketest_runner import run

使用

run(path, args=[], env={}, outdir='')

运行测试项目,可以指定运行选项和环境变量,并且可以通过指定输出目录来收集运行报告。

  • path:String类型,CukeTest项目路径;
  • args:(可选)List类型,用于CukeTest命令行的参数,支持的参数可以查看命令行界面
  • env:(可选)Dict类型,用于项目运行的环境变量;
  • outdir:(可选)String类型,项目运行报告的生成路径。如果同时指定了args--out选项,会忽略该选项的值。
  • 返回值:Number类型,为退出码exitcode。当项目中的场景和步骤全部通过时返回0,否则返回1。

参考用法

Python
def main():
    project_dir = join(dirname(__file__),'./test/math') # 目标项目路径
    out_dir = join(dirname(__file__),'./test/temp/another_specific') # 报告生成的目标文件夹
    args = []
    # 追加下面的配置使报告另外生成json格式的副本
    args.extend(['--format', "json"])
    # 追加下面的配置使得带`fail`标签的场景或步骤不执行
    args.extend(['--tags', "not @fail"])
    # 追加下面的配置录制运行过程
    args.extend(['--video'])
    env = {"TEST_VERSION": "debug"} # 环境变量,为字典类型

    exitcode = run(project_dir, args, env, out_dir)
    # 指定了--tags "not @fail"条件后应该全部通过,退出码为0
    assert exitcode == 0

runDetach(path, args=[], env={}, outdir='')

分离的运行测试项目,当需要并行运行API测试、无头Web测试时,可以通过这种方式分离出多个进程运行项目,提高运行效率。使用方式与run()方法一致。

样例

一、直接运行测试项目

指定项目目录直接运行,这样运行后不会生成报告:

Python
project_dir = join(dirname(__file__),'./test/math') # 目标项目路径
exitcode = run(project_dir) # 指定项目可以直接运行,但不会生成报告,需要配置--format选项,如下

二、设置输出报告格式为html,使用环境变量传递参数

通过传入--format选项来指定生成报告的格式,并且可以传入环境变量:

Python
project_dir = join(dirname(__file__),'./test/math') # 目标项目路径
args = ["--format", "html"] # 运行配置,可以通过CukeTest运行配置快速生成
env = {"TEST_VERSION": "debug"} # 环境变量,为字典类型
exitcode = run(project_dir, args, env)

三、追加运行参数,并指定报告的输出路径

通过指定out_dir参数将项目运行生成的报告输出到指定路径中,以便收集多个项目的运行结果:

Python
project_dir = join(dirname(__file__),'./test/math') # 目标项目路径
out_dir = join(dirname(__file__),'./test/temp/another_specific') # 报告生成的目标文件夹
args = []
# 追加下面的配置使报告另外生成json格式的副本
args.extend(['--format', "json"])
# 追加下面的配置使得带`fail`标签的场景或步骤不执行
args.extend(['--tags', "not @fail"])
# 追加下面的配置录制运行过程
args.extend(['--video'])
env = {"TEST_VERSION": "debug"} # 环境变量,为字典类型
exitcode = run(project_dir, args, env, out_dir)

results matching ""

    No results matching ""