Appium+Python自动化测试:使用HTMLTestRunner生成可视化报告
本文详细介绍如何在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(详细模式):输出每个测试用例的所有相关信息,包括详细的执行日志。
生成的测试报告效果如下图所示:

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









