我不信,谁能给出Allure报告在其他服务器正常访问的解决方案

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

前言

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

  • allure

在这里插入图片描述

  • HTML

在这里插入图片描述

  • 是不是忘了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,奔跑在自动化测试资源解决方案道路上的测试小兵!关注我,让你知道更多你不知道的!

Supongo que te gusta

Origin juejin.im/post/7062739785328099358
Recomendado
Clasificación