# Timestamp format - this only affects CSV output files
# legitimate values: none, ms, or a format suitable for SimpleDateFormat
#jmeter.save.saveservice.timestamp_format=ms
jmeter.save.saveservice.timestamp_format=yyyy/MM/dd HH:mm:ss.SSS
import datetime
import math
import re
# Define a method which uses Epoch converter (Unix timestamp, counted in seconds, not milliseconds)
def my_replace(match):
result = match.group().replace("\"", "") # remove quotes
timestamp = math.floor(int(result) / 1000) # remove millis
timestamp = datetime.datetime.fromtimestamp(timestamp)
timestamp = str(timestamp) + "." + result[-3:] # add millis
return "\"" + timestamp + "\"" # put quotes back
# First we'll start an undo action, then Ctrl-Z will undo the actions of the whole script
editor.beginUndoAction()
# retrieve possible Unix timestamps in milliseconds
# they have to be between quotes and in range between
# from Sunday 09/09/2001 01:46:40.000 ("1000000000000")
# to Friday 11/06/2128 08:53:19.999 ("4999999999999")
# then it converts to readable dates format
editor.rereplace(r'\"[1-4]\d{12}\"', my_replace)
# End the undo action, so Ctrl-Z will undo the above two actions
editor.endUndoAction()
2条答案
按热度按时间lf5gs5x21#
开箱即用,您可以更改时间戳输出格式,仅用于CSV输出(将“查看表中的结果”保存为csv格式,而不是xml格式)。XML格式目前不支持除毫秒以外的任何格式。
如果在这种情况下CSV代替XML是可接受的,您只需在jmeter.properties(%JMETER_HOME%/bin/jmeter.properties)中设置1个属性:
或者,对于非GUI模式,提供与命令行选项相同的选项:
如果仍然需要XML,则可能必须使用任何脚本来处理生成的jtl/xml,以将所有类似Unix的时间戳转换为所需的格式。
例如,对于GMT时间:
还可以查看this article以了解详细信息和可能的方法。
thigvfpy2#
你可以用Excel打开它,创建一个新的列来进行从Unix到Excel的时间戳转换,并每次将格式设置为date
aaaa-mm-gg h:mm;@
,正如上面另一个答案所建议的那样。或者用支持Python脚本的文本编辑器打开它,然后创建一个Python脚本来转换所有的时间戳。
我使用记事本++与Python脚本插件。然后在
Plugin -> Python Script -> New Script
我创建了以下脚本:(Note
editor
是Python Script用来定义Notepad++源代码的专用示例,因此,如果你在不同的编辑器中创建脚本,你必须弄清楚它是如何在Phython Scripts工具中识别源代码的。)然后我按照插件的建议将脚本保存为
TimestampToDate.py
,之后我可以每次使用Plugin -> Python Script -> Scripts -> TimestampToDate
将所有xml时间戳替换为可读日期,它还自动添加了本地时区,Python默认是这样。如果你喜欢用文本编辑器而不是Excel来阅读它,这是第一次使用一个更长的方法,但是一旦你保存了脚本,每次从菜单中执行它就只是一个方法了。