介绍一个我最近开源的小工具,它的名字是conport,用于在回归测试,持续测试,稳定性测试等项目中自动化地生成和推送总结报告。conport 的 github 地址是https://github.com/slxiao/conport。工具开源几天以来,下载量超过 1k,star 数量也快 10 个了。欢迎大家来 STAR,提 comments,一起完善 conport

工具作用

conport 的主要功能是从持续测试平台 (例如 Jenkins) 中自动采集指定测试任务的构建结果和标准化测试结果,然后对结果进行加工,生成可视化的图形和表格,最后以 HTML 或邮件的形式展示出来。

具体来说,conport 收集和展示的数据包括:测试构建趋势图,测试构建核心指标,测试用例失败率,测试用例效率指标等。这些数据反映了一段周期内自动化测试的整体执行情况,并将高失败率的测试用例突出显示,从而指出下一步的行动方向。

conport 同时支持中文报告和英文报告

工具背景

在回归测试,持续测试,稳定性测试等场景下,我们经常需要生成一份反映测试执行情况的报告。由于这些场景一般都是周期性的,因此手动生成报告不可持续,需要的是一个自动化的报告生成器,并支持报告推送功能。

用自动化脚本实现这一需求,技术上难度不大,相信许多人在过往的项目中已有这方面的实践。但是总的来说,仍然缺乏一个开源和通用的工具。在不同项目中重复造功能类似的轮子,不是一种高效的行事方式。

conport 的目的,就是希望提供这么一个工具!

工具示例

英文报告示例

中文报告示例

安装和使用

conport 的安装命令为:

pip install conport

安装成功之后,就可以在控制台使用 conport 命令了。执行 conport -h,可以查看使用方法和命令行参数含义。具体示例可以参考 README 中的说明。

usage: conport [-h] [--job_url JOB_URL] [--report_title REPORT_TITLE]
               [--past_hours PAST_HOURS] [--send_email SEND_EMAIL]
               [--mail_host MAIL_HOST] [--mail_user MAIL_USER]
               [--mail_pwd MAIL_PWD] [--sender SENDER] [--receivers RECEIVERS]
               [--receivers_cc RECEIVERS_CC] [--pure_html PURE_HTML]
               [--version]

optional arguments:
  -h, --help            show this help message and exit
  --job_url JOB_URL     Jenkins job url
  --report_title REPORT_TITLE
                        continuous testing report title
  --past_hours PAST_HOURS
                        number of past hours to be monitored
  --send_email SEND_EMAIL
                        whether to send email or not
  --mail_host MAIL_HOST
                        email host
  --mail_user MAIL_USER
                        email user
  --mail_pwd MAIL_PWD   email password
  --sender SENDER       email sender
  --receivers RECEIVERS
                        email receivers, format is receiver1, receiver2, ...
  --receivers_cc RECEIVERS_CC
                        email receivers cc, format is receivercc1,
                        receivercc2, ...
  --pure_html PURE_HTML
                        pure html or not
  --version             print version

开发过程

在开发 conport 的过程中,得益于 Python 的强大生态,虽然踩过很多坑,但是总体顺利,难度不大。将 conport 开发环境和产品环境中所主要依赖的 Python 库列举如下:

下一步计划

最后,感谢大家阅读。欢迎和我一起完善 conport: https://github.com/slxiao/conport。谢谢!


↙↙↙阅读原文可查看相关链接,并与作者交流