Jenkins性能插件解析JMeter测试报告时间戳失败求助
各位大佬,我最近碰到个头疼的问题:Jenkins的Performance插件在解析JMeter的CSV测试报告时,一直报时间戳解析失败,折腾好久没搞定,来求助大家!
问题场景
我用JMeter 5.5跑了性能测试,执行的命令是:jmeter -n -t "C:\xxx\PageLoad\UI_Page_Loading.jmx" -l "C:\TestAutomation\PageLoad\Page_Loading.csv"
结果在Jenkins里用Performance插件解析这份CSV报告时,直接抛出了时间戳解析错误。
完整错误日志
Performance: Failed to parse file 'C:\Windows\system32\config\systemprofile\AppData\Local\Jenkins.jenkins\jobs\xxx\jobs\PERFORMANCE TEST\jobs\xxx\builds\1\performance-reports\JMeterCSV\PageLoading.csv': Cannot parse timestamp: ue. Please, use one of supported formats: [yyyy/MM/dd HH:mm:ss.SSS, yyyy-MM-dd HH:mm:ss.SSS, yyyy-MM-dd HH:mm:ss,SSS, yyyy/mm/dd HH:mm:ss]
java.lang.IllegalArgumentException: Cannot parse timestamp: ue. Please, use one of supported formats: [yyyy/MM/dd HH:mm:ss.SSS, yyyy-MM-dd HH:mm:ss.SSS, yyyy-MM-dd HH:mm:ss,SSS, yyyy/mm/dd HH:mm:ss]
at PluginClassLoader for performance//hudson.p...
我的环境信息
- JMeter版本:5.5
- Jenkins版本:2.472
- Jenkins Performance插件版本:962.v95a_4913d332e
我整理的排查&解决方向
结合错误提示,我自己梳理了几个可能的解决思路,也欢迎大家补充:
- 检查CSV文件的异常行:先手动打开生成的
Page_Loading.csv,逐行核对时间戳列,找有没有值是ue的行,或者格式完全不符合要求的记录。如果有这类异常行,直接删掉后再重新在Jenkins构建试试——毕竟错误里明确指出解析的是ue,大概率是某行数据损坏了。 - 强制JMeter生成兼容的时间戳格式:插件支持的时间戳格式是固定的4种,我们可以直接配置JMeter生成符合要求的格式。找到JMeter安装目录下的
user.properties文件,添加或修改配置项:jmeter.save.saveservice.timestamp_format=yyyy-MM-dd HH:mm:ss.SSS,保存后重新运行JMeter生成报告,再提交给Jenkins解析。 - 检查CSV文件编码:有时候编码不兼容会导致字符解析乱码,把CSV文件转成UTF-8无BOM格式(用记事本、WPS或Excel都能操作),再上传给Jenkins试试。
- 排查JMeter脚本异常:看看你的JMeter脚本里有没有自定义的时间戳生成逻辑,或者某个Sampler在执行时出现异常,导致没有正确生成时间戳反而输出了无效字符。可以先本地单独运行脚本,生成报告后手动检查一遍,确认没问题再交给Jenkins处理。
备注:内容来源于stack exchange,提问作者Sasitharan

