• 【Pytest实战】Pytest+Allure+Jenkins自动化测试框架搭建


    😄作者简介:
    小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD
    如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。😊
    座右铭:不想当开发的测试,不是一个好测试✌️。
    如果感觉博主的文章还不错的话,还请点赞、收藏哦!👍

    之前分享过 Pytest 基础知识,可参考Pytest 实战专栏,今天手把手教大家如何借助Pytest与Jenkins做持续集成,具体步骤如下:

    1. 安装Allure插件
      在Jenkins中安装 Allure 插件,如果你没有Jenkins的话,可自行安装,具体的安装步骤也可以参考小编的Jenkins实战专栏
      在这里插入图片描述
      如果你在安装插件过程中出现安装失败的问题,可以通过换下载镜像来解决。如果你遇到Jenkins忘记密码,或者Jenkins打开失败问题,可以参考Jenkins疑难杂症问题

    2. Allure 配置
      在Manage Jenkins—> Global Tool Configuration—> Allure Commandline中选择对应的 allure 对应的版本,选择自动安装,我安装的是allure v2.13.2版本,Allure的名字可以根据版本号进行命令,这样便于区分。
      在这里插入图片描述

    3. 创建Jenkins job
      Post-build Actions 模块,选择Allure Report配置
      在这里插入图片描述
      其中,主要配置测试报告所在路径,可以参考下面图中的写法。
      在这里插入图片描述

    4. build Steps
      当从github拉取代码之后,该如何运行?我们通过脚本运行,在build Step中,选择shell 脚本,输入以下内容。

      rm -rf allure-results || true
      /usr/local/bin/pytest -sv testcase01 --alluredir=./allure-results
      
      • 1
      • 2

      rm -rf allure-results || true先判断allure-result文件是否存在,如果存在则删除,如果不存在,则继续执行脚本。

    5. 运行 job
      当运行job之后,会看到主页中有Allure Report,点击 Allure Report之后,会跳转到Allure主页,即可看到测试报告详情。
      在这里插入图片描述
      在这里插入图片描述

    6. Jenkins自动发送测试报告。
      Editable Email Notification中 编写所要发送的信息,如何填写和参考下图,如果你在Jenkins中找不到这个插件的话,则需要先安装Email相关的插件,之后再配置中进行配置,即可使用。
      在这里插入图片描述
      在这里插入图片描述
      具体通知中要输入哪些信息,代码也贴了,有需要的话,可以自行拿去。

      DOCTYPE html>    
      <html>    
      <head>    
      <meta charset="UTF-8">    
      <title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志title>    
      head>    
          
      <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"    
          offset="0">    
          <table width="95%" cellpadding="0" cellspacing="0"  style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">    
              <tr>    
                  本邮件由系统自动发出,无需回复!<br/>            
                  各位同事,大家好,以下为${PROJECT_NAME }项目构建信息br> 
                  <td><font color="#CC0000">构建结果 - ${BUILD_STATUS}font>td>   
              tr>    
              <tr>    
                  <td><br />    
                  <b><font color="#0B610B">构建信息font>b>    
                  <hr size="2" width="100%" align="center" />td>    
              tr>    
              <tr>    
                  <td>    
                      <ul>    
                          <li>项目名称 : ${PROJECT_NAME}li>    
                          <li>构建编号 : 第${BUILD_NUMBER}次构建li>    
                          <li>触发原因: ${CAUSE}li>    
                          <li>构建状态: ${BUILD_STATUS}li>    
                          <li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}consolea>li>    
                          <li>构建  Url : <a href="${BUILD_URL}">${BUILD_URL}a>li>    
                          <li>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}wsa>li>    
                          <li>项目  Url : <a href="${PROJECT_URL}">${PROJECT_URL}a>li>    
                           <li>测试报告: <a href="${PROJECT_URL}allure">${PROJECT_URL}allurea>li> 
                      ul>    
      
      <h4><font color="#0B610B">失败用例font>h4>
      <hr size="2" width="100%" />
      $FAILED_TESTS<br/>
      
      <h4><font color="#0B610B">最近提交(#$SVN_REVISION)font>h4>
      <hr size="2" width="100%" />
      <ul>
      ${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %mli>"}
      ul>
      详细提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changesa><br/>
      
                  td>    
              tr>    
          table>    
      body>
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
      • 33
      • 34
      • 35
      • 36
      • 37
      • 38
      • 39
      • 40
      • 41
      • 42
      • 43
      • 44
      • 45
      • 46
      • 47
      • 48
      • 49

      邮件通知如下

      在这里插入图片描述

  • 相关阅读:
    GBASE 8S内存管理
    数商云:跨境美妆步入下半场,跨境电商商城系统助力企业打好“出海”攻坚战
    3.无重复字符的最长子串
    python基础:循环的总结
    docker安装和使用
    HBase Meta 元信息表修复实践
    接口自动化测试框架(pytest+allure+aiohttp+ 用例自动生成)
    MySQL第一讲-mysql的基本框架和查询命令流程
    【FLY】Android IO性能优化
    AttributeError: ‘NoneType‘ object has no attribute ‘shape‘
  • 原文地址:https://blog.csdn.net/weixin_42182599/article/details/131341082