Python实现解析LR Analyse Result并生成汇总性能指标数据报告

前言

在性能测试框架开发中,需要将场景执行完成后的测试报告进行处理,汇总报告中关注的性能指标数据,然后写入报告并邮件发送相关人员。因而,其中一个环节就是,如何从测试报告中抓取关心的各个指标数据(如,tps,响应时间,并发用户数等)?

问题分析

LR生成测试报告时会将报告数据保存到目录,目录里有类似各个指标的汇总结果,如下图所示。但,如果想通过解析该html获取各个指标数据,这个想法会让你失望的!因为分析该html源码发现,指标数据其实并不在该页面,而是在该页面的定义的frameset。通俗的讲,就是一个页面嵌套另外的页面,实际数据要通过访问内嵌页面获得。熟悉selenium的同学,一定清楚这类情况,毕竟想要定位其中的元素,首先要做的操作就是switch_to_frame嘛。此处不多扯,后续会出selenium相关的系列文章。

22.png

解决思路

经过对html源码分析,可以发现每个指标数据对应存储在Report目录下的一个html文件,只要使用pythonhtml解析技术获取到,然后对数据稍加修改,增加一些标签形式html格式的字符串,最后写入到.html的文件即可。

Python html解析技术总结

Python是非常擅长解析html的,方法众多,归纳以下几种:

1. lxml.html

2. BeautifulSoup

3. SGMLParser

4. HTMLParaer

5. Requests-HTML

6. 正则表达式

在本次实现中,采用的是 BeautifulSoup,一款用于HTMLXML文件中提取数据的Python库,API清晰、简洁。其中,lr报告中的表格样式和获取表格数据的代码分别如下:

lr报告的样式表格

44.png

部分代码如下:

33.png 


实现效果

最后,分析场景执行结果,提取TPS、响应时间,并发用户数等指标数据,并生成汇总报告的样式如下:

55.png


其他资源:

python入门课程:http://i.youku.com/weiworld521


猜你喜欢

转载自blog.51cto.com/2681882/2129801