问题
最近有一个需求,想把性能测试也加到我们的CI流程中去。
我们之前的性能测试是基于JMeter去做的,而自动化框架是基于RobotFramework,于是开始调研RF调用JMeter相关的技术。
解决
可以通过Robot-Framework-JMeter-Library这个库解决。
安装
|
|
依赖
Java
JMeter 2.12
python-2.7.5
使用
执行JMeter任务
解析测试结果
遇到的问题
在解析测试结果过程中报错,提示:
这个问题研究了好久都没搞定,改JMeter配置文件的默认编码、加BeanShell PostProcessor等等方法都试过,仍然不行。
后来突然想到,之前自己写RF的Library的时候好像也遇到过类似的问题,是由于Python默认的编码是ASCII,输出的时候会将原始数据转成ASCII,所以报错。于是尝试了下之前的方法,完美解决。
具体方法如下:
修改JMeterLIb.py文件
# 文件开头增加
import sys
...
class LogAnalysisInitiator(object):
def __init__(self, filePath, createSqlReport=False, createHtmlReport=False, disableReports=None):
# line 291, 增加如下两行
reload(sys)
sys.setdefaultencoding('utf-8')
...