JMeter 报告监听器导入.jtl结果文件报错解决方案
JMeter 報告監聽器導入.jtl結果文件報錯解決方案
?
by:授客 QQ:1033553122
?
?
1.?問題描述
把jmeter壓測時生成的 .jtl結果文件導入監聽器報告中,彈出如下錯誤提示 error loadding results file -see log file
?
?
?
2.? 原因分析與解決方案
打開logger view,查看出錯日志,下,提示沒有足夠的列用于解析
?
?
?
文件比較大,windows下查看打不開,,所以在Linux上用vim命令打開,定位到那行,結果發現如下截圖,數據缺失導致
?
?
JMeter解析 .jtl文件時,如果報錯,那么僅僅會統計報錯之前的記錄,所以即便是出錯了,也可以看到部分統計數據,如果數據缺失行為文件最后一行,那還好,基本不太影響,但是如果數據缺失行出現在開頭或者中簡位置,則會很影響統計結果
?
解決方案
方案1,linux上直接編輯,去掉數據缺失行記錄,導入后沒再報錯
?
?
?
方案2
如果數據缺失行記錄比較多,那么行一就難辦了,得不斷的去試才知道哪里出錯了,可以考慮代碼遍歷,不過文件大的話,也挺耗費時間的
?
#!/usr/bin/env/ python
# -*- coding:utf-8 -*-
?
__author__ = 'shouke'
?
?
?
class JtlDataParser:
????def __init__(self):
????????pass
?
?
????def parse_jtl_data(self):
????????with open('E:/PerformanceTest/result.jtl', 'r', encoding='utf-8') as f1:
????????????with open('E:/PerformanceTest/dirty.jtl', 'w', encoding='utf-8') as f2:
????????????????f3 = open('E:/PerformanceTest/newResult.jtl', 'w', encoding='utf-8')
?
????????????????count_for_normal = 0
????????????????count_for_dirty = 0
?
????????????????for line in f1:
????????????????????temp = line.split(',')
????????????????????if len(temp) != 16: # 默認.jtl結果文件,每行包含16個逗號分隔的值
????????????????????????f2.write(line)
????????????????????????f2.flush()
????????????????????????count_for_dirty += 1
????????????????????????print('寫入數據缺失行:', count_for_dirty)
????????????????????else:
????????????????????????f3.write(line)
????????????????????????f3.flush()
????????????????????????count_for_normal += 1
????????????????????????print('已寫入正常數據行:', count_for_normal)
????????????????f2.write('正常數據行總數:%s' % str(count_for_normal))
????????????????f3.write('數據缺失行總數:%s' % str(count_for_dirty))
????????????????f3.close()
?
JtlDataParser().parse_jtl_data()
?
?
?
最后說明
根據JMeter聚合報告生成原理來看,不管是使用?方案1 還是 方案2,如果數據缺失行、數據格式不對的數據行,數量比較多的話,會很影響統計結果,暫時沒有好的解決方案
?
轉載于:https://www.cnblogs.com/shouke/p/10157479.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的JMeter 报告监听器导入.jtl结果文件报错解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: atitit.短信 验证码 破解 v
- 下一篇: luogu P1762 偶数