Jenkins Pipeline如何将Pytest和Allure集成到centos7.4中

本博文主要介绍jenkins中pipeline如何和allure做对接生成测试报告;

至于如何安装jenkins,pytest以及allure,allure command,由于篇幅限制,安装配置就不做解释了,网上很多这种详细博客,只要思路和顺序做对了就成功了;

 上图是我集成后,自动提交代码执行一系列的步骤,最后生成测试用例;

1,想好你的代码是在window中还是在linux中,如果是windows中转移到linux中,需要注意路径问题 (路径问题)可参考: ImportError: attempted relative import with no known parent package

2,Jenkins的安装和配置,能在浏览器中打开你安装的jenkins,在你的jenkins当中插件管理中心,安装Allure Jenkins Plugin 我的版本是2.29.0;pipeline方式是不需要在jenkins中的全局工具配置那里配置allure的路径的;

3,Jenkins的Pipeline书写规则,可参考官方文档:Jenkins Pipeline官网文档

4,Pytest测试用例的代码开发完毕

5,在你的python环境中安装allure,以及在你的电脑环境中安装allure-command,配置环境变量,注意版本,有时候生成的报告内容为空,就是版本不匹配导致的

我的环境:

    windows:
        python版本:3.7.10
        pytest 版本:6.2.5
        电脑系统中的 allure-command 版本:2.15.0
        python环境中 allure-pytest 版本:2.9.44 (pip安装这个 下面的会自动安装,如果没有再手动安装)
        python环境中的allure-python-commons 版本:2.9.44 
    

    CentOs7.4:
        Python版本:3.7.4
        pytest版本:6.2.5
        服务器系统中的allure-command 版本:2.15.0
        Python环境中的allure-pytest版本:2.9.45
        Python环境中的allure-python-commons版本:2.9.45
    

6,假设你前面五个步骤都ok了,在linux中你的测试用例代码也可以跑通(python3 pytestmain.py),allure运行也是正常的,而且运行测试用例的脚本可以生成报告了;

那么就可以开始将pytest生成的测试用例数据(以及被allure生成的报告)集成到jenkins中【linux环境】,首先你要知道pipeline是需要编写脚本的,同时你也要知道groovy的一些语法;使用过pipeline语法的都熟悉这个界面吧?

每个stage在jenkins中显示的时候就会显示为对应的方框,以及对应的执行脚本日志,在你的*.groovy 脚本文件中,编写如下代码:

            // Test cases
                stage('execute test cases'){
                    steps{
                        script{

                            sh("echo -----即将开始,执行测试用例,生成测试报告-----")
                          sh("  cd /home/进入你的测试用例所在目录 ; python3 test_main.py beta")

                          allure([
                    includeProperties: false,
                    jdk: '',
                    properties: [],
                    reportBuildPolicy: 'ALWAYS',
                    report: '/var/lib/jenkins/workspace/BetaBranchPipeline/allure-report', 
                    results: [[path: '/var/lib/jenkins/workspace/BetaBranchPipeline/allure-results']]
                  ])                       
                        }
                    }
                }

注意的你report的路径以及results的路径,需要在你的pytest中也要对应的上,不然jenkins会找不到allure报告的数据,显示空白;如下为在我的pytest中指定的生成数据目录,以及指定allure的目录;

 pytest.main(['-s', '--alluredir', '/var/lib/jenkins/workspace/BetaBranchPipeline/allure-results'])
 os.system('allure generate /var/lib/jenkins/workspace/BetaBranchPipeline/allure-results  -o /var/lib/jenkins/workspace/BetaBranchPipeline/allure-report  --clean')

 在这里我没有保存历史记录,每次都会清空上次的数据,但是在jenkins当中不必考虑这个问题,因为每次构建都会在一个单独的构建历史记录里面,这个历史记录可以在你的jenkins当中配置;

在我这里设置的是总共保持最近八次的构建记录

  

 到这里就基本结束了,每次运行结束自动运行测试用例,自动生成测试报告,会看到每次构建的历史记录那里多了个彩色的圆圈,点击那里会跳转到你当次测试用例的详细信息;

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
pytest是一个用于Python编写的测试框架,它结合了unittest和nose等测试工具的优点,具有简单易用、灵活且可扩展的特点。pytest允许我们使用简洁的语法编写测试用例,并提供了丰富的断言库和丰富的插件支持,方便我们编写高效、可维护的自动化测试脚本。 而Allure是一种生成漂亮报告的测试结果框架,它支持多种编程语言,并提供了美观直观的图表、图标和饼状图,可以展示测试结果的统计数据,以及失败和通过测试的详细信息。通过Allure的报告,我们可以更加直观地查看测试结果,方便问题的定位和分析。 Jenkins是一个流行的持续集成和持续交付工具,它可以帮助我们自动化构建、测试和部署软件项目。Jenkins提供了丰富的插件生态系统,可以与各种测试框架和工具集成,如pytestAllure。通过与Jenkins集成,我们可以实现自动化的测试和报告生成,减少了人工操作和提高了测试效率。 因此,结合pytestAllureJenkins,我们可以实现一个完整的自动化测试和报告系统。我们可以通过编写pytest脚本编写测试用例,并使用pytest插件生成Allure报告。然后,我们可以将这些脚本配置到Jenkins,形成一个定期执行的自动化测试任务。Jenkins会自动运行测试脚本,并生成带有Allure报告的测试结果。我们可以通过Jenkins的UI界面,方便地查看测试结果,帮助我们及时发现和解决问题。 总结起来,pytestAllureJenkins的结合为我们的自动化测试提供了全方位的支持,能够让我们更加高效地进行软件测试,并通过直观的报告帮助我们更好地理解测试结果。这样,我们可以更加准确地判断软件质量,提高软件开发的效率和质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值