相关文章推荐
儒雅的红豆  ·  Bean Scopes :: Spring ...·  9 月前    · 
有情有义的日光灯  ·  angular - error ...·  1 年前    · 
八块腹肌的绿茶  ·  记录 Parameter with ...·  1 年前    · 

「这是我参与2022首次更文挑战的第3天,活动详情查看: 2022首次更文挑战 」。

咱们知道了pytest框架的强大,是不是已经有点瞧不起unittest了?觉着搭配HTMLTestRunner生成的HTML报告low了,开始嫌弃它了?觉得allure报告简直美得不可方物?python用它,java也支持,allure是不是开了绝世美颜?平心而论,各有千秋!

  • allure
  • 是不是忘了beautifulreport

    allure

    Allure下载地址 ; 在allure官网看着美丽的报表真是赏心悦目。

    安装allure 环境

  • 下载allure压缩包,解压到本地,配置环境变量:allure --version可查版本号;
  • 然后呢?就是pytest框架应用,python需要allure-pytest插件才能搭配pytest使用;
  • 最后执行测试用例,收集测试结果,生成测试报告,问题来了:怎么生成allure报告?
  • allure相关命令

    可以查看allure帮助文档,记住以下三个命令:

    C:\Users\qguan> allure serve  allure-results
    C:\Users\qguan> allure generate allure-results -o allure-report --clean
    C:\Users\qguan> allure open allure-report
    

    tips:serve是generate和open的结合,会在本地开启端口服务,同局域网可访问。

    报告的差异性

    前面说了allure需要在本地开启一个服务才能浏览,否则进入allure-report打开index.html就是如下画面⬇⬇一直loading,题主也百思不得其解!

    区别在于访问的问题,最终自动化测试框架落地需要集成jenkins,如果需要发送测试报告的话,很明显其他HTML报告直接可以就给对方,但是allure的报告就算你完整的打包丢过去,人家打开也只是loading,什么结果也看不到?

    记得之前有过类似的解决方案,在使用jenkins持续集成时,一般都会给一个view权限的账户,在测试通过之后发送邮件,都可以凭账号登录查看报告,也就是一人一个html报告,当然这没问题;要是别人不想登录呢?那么就还可以是通过代理实现了,相信咱公司的域名肯定是不缺的,注意不要用生产环境的域名哦;allure结果报告文件就是一堆静态资源而已,使用nginx代理服务器代理,那么大家就可以看到了!

  • 第一步在编辑job构建后操作,写如下脚本:
  • # 在代码中可以使用os模块调用命令生成allure-report报告
    # 将生成的allure报告打包起来
    cd allure-report && tar czf ../allure-report.tar.gz  .
    
  • 如果jenkins当前服务器有域名则在本机,脚本就是另外的写法:
  • # 如果是本机就不需要打包了
    \cp -rf allure-report/*  /usr/local/nginx/html/allure
    # 并在nginx中配置如下:
    location  /allure {
        root /usr/local/nginx/html/;
        index index.html htm;
        try_files $uri $uri/ /allure/index.html;
    
  • 如果域名在远程服务器,就需要使用SSH Publisher插件了
  • # 接着上面打包的资源,传输到远程服务器,解压放在nginx代理的目录下
    tar zxf  allure-report.tar.gz  -C  /usr/local/nginx/html/allure
    
  • 重启nginx -s reload,访问域名: 注意浏览器地址栏,已经不是ip+port的访问方式了,而是通过域名匹配找到/allure目录下的静态资源了
  • 其他方案:Anywhere

    听名字就挺牛的,任何地方,是的,你在任何地方,都能请求你、找到你;Anywhere是一个随启随用的静态服务器,它可以随时随地将你的当前目录变成一个静态文件服务器的根目录。

    它依赖于Nodejs环境,所以需要安装Nodejs

    安装后执行:npm install -g anywhere;进入allure报告目录输入:anywhere;自动就打开了

  • 验证一下,手机连的公司wifi,所以是局域网:
  • 办法总比困难多,还有什么是技术人不能解决的问题?道路千万条,能解决的只是其中一条微不足道的方法。

    我是joe,奔跑在自动化测试资源解决方案道路上的测试小兵!关注我,让你知道更多你不知道的!

    分类:
    后端
  •