Appium+Python自动化测试:使用HTMLTestRunner生成可视化报告

七月
七月
发布时间:2026-10-14| 5人浏览过
原创

本文详细介绍如何在Appium+Python自动化测试中生成直观的HTML测试报告。通过引入HTMLTestRunner_PY3库,替代默认的文本格式报告,实现包含时间戳、测试套件管理及详细执行结果的可视化展示。文章涵盖库文件配置、代码示例解析及verbosity参数设置,帮助开发者快速掌握测试报告的高级应用。

Appium+Python测试报告生成概述

在自动化测试流程中,测试用例执行完毕后,如何生成一份既直观又美观的测试报告是提升测试效率的关键环节。

针对这一问题,我们需要对现有的报告生成机制进行分析。

首先,Python自带的unittest单元测试框架提供了textTestRunner类,该类能够生成txt格式的文本报告。然而,这种纯文本格式的报告在可视化效果和交互性上较为欠缺,不够直观。

为了解决上述问题,我们可以引入第三方库,例如广泛使用的HTMLTestRunner类。该库支持生成HTML格式的测试报告,能够以网页形式展示测试结果,视觉效果更佳。

HTMLTestRunner库配置与导入

具体实施步骤如下:首先下载HTMLTestRunner_PY3.py脚本文件(本文以Python 3.7环境为例),将其放置于Python安装路径下的Lib目录中。在使用时,需要通过import语句导入该模块(即import HTMLTestRunner_PY3)。

测试报告生成代码示例与解析

以下是具体的代码实现示例:


if __name__ == "__main__":
  #实例化测试套件
   suite = unittest.TestSuite()
   #加载测试用例
   suite.addTest(TestCase("test_login"))
  #生成测试报告
  # 选择指定时间格式
  timestr = time.strftime('%Y-%m-%d%H%M%S', time.localtime(time.time()))
  # 定义测试报告存放路径和报告名称
  Report = os.path.join(
    PATH('E://testing_code/code/SmartSiteTestScript/report/test_report_') +
    timestr +
    '.html')
  with open(Report, 'wb') as f:
    runner = HTMLTestRunner_PY3.HTMLTestRunner(stream=f, 
                         verbosity=2,
                         title='XXXX自动化测试报告',
                         description='执行人:丹姐') 
  runner.run(suite) 

  # 关闭测试报告 
  f.close()

接下来对代码关键部分进行详细解析。

第一,在测试报告文件名中嵌入当前时间。这需要引入time模块,具体代码为:timestr=time.strftime("%Y-%m-%d-%H_%M_%S",time.localtime(time.time()))。

其中,time.time()函数用于获取当前的时间戳。

time.ctime()函数用于获取当前时间的字符串表示形式。

time.localtime()函数返回当前时间的struct_time结构化时间对象。

time.strftime("%Y-%m-%d-%H_%M_%S",time.localtime())函数则根据指定格式字符串将时间转换为字符串,这是生成带时间戳文件名时常用的方法。

第二,TestSuite是一个容器对象,通过调用addTest()方法可以将具体的测试用例添加到该容器中。

第三,Report变量用于定义测试报告保存的具体路径以及生成的文件名。

open()函数用于打开一个文件并创建一个file对象,只有创建了该对象,才能调用相关方法进行文件的读写操作。

open()函数的语法格式为:open(name[, mode[, buffering]])。

  • name参数是一个字符串值,指定需要访问的文件名称。
  • mode参数决定了打开文件的具体模式,如只读、写入或追加等。该参数非强制,默认值为只读模式('r')。
  • buffering参数控制缓冲行为。若设为0,则无缓冲;若设为1,则按行缓冲;若设为大于1的整数,则表示缓冲区的大小;若设为负值,则使用系统默认缓冲区大小。

在生成HTML报告时,通常使用open(Report,'wb')以二进制写入模式打开文件Report。

第四,runner对象定义了测试报告的格式,stream参数指定报告写入的二进制文件流,title参数设置报告标题,description参数提供报告的说明文字。最后调用runner.run()执行测试用例,并务必使用f.close()关闭文件句柄。

此外,verbosity参数用于控制测试结果输出的信息复杂度,它有三个可选值。

  • 值为0(静默模式):仅显示总的测试用例数量及结果统计,例如“总共100个,失败20个,成功80个”。
  • 值为1(默认模式):与静默模式类似,但在每个成功的用例前显示一个“.”,每个失败的用例前显示一个“F”。
  • 值为2(详细模式):输出每个测试用例的所有相关信息,包括详细的执行日志。

生成的测试报告效果如下图所示:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。