Xray与Jenkins的集成是通过Xray-Test Management for Jira插件实现的,能够把pytest自动化测试用例结果上传到Jira。

Xray仅原生地支持集成Cucumber、Behave、Robot、Xamarin等测试框架。而对于pytest而言,能够生成JUnit xml格式的report,那么Xray同样可以实现间接集成。

Xray能够将测试结果映射到对应的Test Issue上;如果不存在,Xray会将这个测试用例创建到Jira中。

安装Jenkins插件

插件的安装和配置均需要以Jenkins的administrator身份进行操作

如果通过Jenkins页面过滤直接安装,导致安装很慢,失败率很高的话,我们可以下载插件的.hpi文件手动安装。

https://plugins.jenkins.io/查找需要的plugin,获取其ID
在这里插入图片描述
http://updates.jenkins-ci.org/download/plugins/通过ID找到插件,下载到本地,注意一下插件的版本、依赖的版本和Jenkins版本的支持问题。

配置插件

在Jenkins的全局设置页面选择Manage Jenkins > Configure System > Xray configuration.进行Jira服务器相关配置。如下图:
在这里插入图片描述

Jenkins自动化测试项目配置

我们可以安装Environment Injector plugin通过它预先定义执行run pytest的环境变量
在这里插入图片描述
简单配置一个freestyle类型的Jenkins job,构建步骤如下图。在执行我们的pytest自动化测试时,要增加junitxml参数,如下命令行,生成Xray可接受的JUnit.xml文件,并在后续构建步骤中使用

pipenv run py.test --junitxml=result.xml

在这里插入图片描述

上传测试结果到Xray

在项目中增加一个名称为“Xray:Results Import Task”的构建后操作步骤(Add post-build action)。该插件通过调用“Import Execution Results” REST API,支持以Xray可接受的格式将自动化测试的执行结果导入到Xray中。
在这里插入图片描述
增加该步骤之后,我们需要进行一些配置,可配置字段如下图:
在这里插入图片描述

Pipeline语句

增加的Pipeline语法步骤示例如下:

pipeline {
    agent any
    stages {
        stage('Import results to Xray') {
            steps {
                step([$class: 'XrayImportBuilder', endpointName: '/junit', fixVersion: 'v3.0', importFilePath: 'java-junit-calc/target/surefire-reports/*.xml', importToSameExecution: 'true', projectKey: 'CALC', serverInstance: '552d0cb6-6f8d-48ba-bbad-50e94f39b722'])
            }
    }
}
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐