我想解析 UI 测试日志以提取由 OS Signpost Duration 表示的单个测试的平均持续时间。我已经能够从多个日志文件中提取包含OS Signpost Duration 的行。
/Users/username/Projects/uitest/uitestUITests/uitestUITests.swift:44:测试用例 '-[uitestUITests.uitestUITests test2]' 测量 [OS Signpost Duration (test 2 tapped), s] 平均值:4.001,相对标准偏差:0.017 %,值:[4.001285, 4.000268, 4.002284, 4.000665, 4.001234],performanceMetricID:com.apple.dt.XCTMetric_OSSignpost-test 2 tapped.duration,baselineName:“”,baselineAverage:,maxPercentRegression:10.000%,maxPercentRelativeStandardDeviation: maxRegression: 0.000, maxStandardDeviation: 0.000 /Users/username/Projects/uitest/uitestUITests/uitestUITests.swift:33: 测试用例'-[uitestUITests.uitestUITests testExample]' 测量 [OS Signpost Duration (test 1 tapped), s] 平均值: 2.001,相对标准偏差:0.017%,值:[2.001135, 2.001209, 2.000610, 2.000730, 2.000262], performanceMetricID:com.apple.dt.XCTMetric_OSSignpost-test 1 tapped.duration, baselineName: "", baselineAverage: , maxPercentRegression: 10.000 %,最大百分比相对标准偏差:10。 000%, maxRegression: 0.000, maxStandardDeviation: 0.000 /Users/username/Projects/uitest/uitestUITests/uitestUITests.swift:54: 测试用例'-[uitestUITests.uitestUITests testLaunchPerformance]' 测量 [OS Signpost Duration (AppLaunch), s] 平均值: 0.463, 相对标准偏差: 12.413%, 值: [0.539167, 0.385542, 0.463822, 0.512382, 0.415148], performanceMetricID:com.apple.dt.XCTMetric_OSSignpost-AppLaunch.duration, baselineName: "", baselineAverage: , maxPercentRegression: 10.00% , maxPercentRelativeStandardDeviation: 10.000%, maxRegression: 0.000, maxStandardDeviation: 0.000 /Users/username/Projects/uitest/uitestUITests/uitestUITests.swift:44: 测试用例 '-[uitestUITests.uitestUITests test2]' 测量 [OS Signpost Duration (test 2 tapped ), s] 平均值:4.001,相对标准偏差:0.018%,值:[4.000617, 4.000975, 4.002513, 4.000692, 4.001549], performanceMetricID:com.apple.dt.XCTMetric_OSSignpost-test 2 tapped.duration, baselineName: "",基线平均: , maxPercentRe gression: 10.000%, maxPercentRelativeStandardDeviation: 10.000%, maxRegression: 0.000, maxStandardDeviation: 0.000 /Users/username/Projects/uitest/uitestUITests/uitestUITests.swift:33: 测试用例'-[uitestUITests.uitestUITests testExample]' 测量 [OS Signpost Duration (test 1 tapped), s] 平均值: 2.001, 相对标准偏差: 0.020%, values: [2.000350, 2.001232, 2.000362, 2.001022, 2.000259], performanceMetricID:com.apple.dt.XCTMetric_OSSignpost-test 1 tapped.duration, baselineName : "", baselineAverage: , maxPercentRegression: 10.000%, maxPercentRelativeStandardDeviation: 10.000%, maxRegression: 0.000, maxStandardDeviation: 0.000 /Users/username/Projects/uitest/uitestUITests/uitestUITests.swift:54: 测试用例'-[uitestUITests.uitestPeriTests testLaunch ]' 测量 [OS Signpost Duration (AppLaunch), s] 平均值:0.416,相对标准偏差:15.702%,值:[0.495147, 0.413174, 0.378256, 0.478277, 0.317015], performanceMetricID:com.apple.dt.XCTMetric_OSSignpost-AppL aunch.duration, baselineName: "", baselineAverage: , maxPercentRegression: 10.000%, maxPercentRelativeStandardDeviation: 10.000%, maxRegression: 0.000, maxStandardDeviation: 0.000 /Users/username/Projects/uitest/uitestUITests/uitestUITests.swift:44: 测试用例'- [uitestUITests.uitestUITests test2]' 测量 [OS Signpost Duration (test 2 tapped), s] 平均值:4.002,相对标准偏差:0.010%,值:[4.002300, 4.001725, 4.001849, 4.001945, 4.001093], performanceMetricID:com.apple .dt.XCTMetric_OSSignpost-test 2 tapped.duration, baselineName: "", baselineAverage: , maxPercentRegression: 10.000%, maxPercentRelativeStandardDeviation: 10.000%, maxRegression: 0.000, maxStandardDeviation: 0.000 /Users/username/Projects/uitest/uitestUITests/uitestUITests.swift :33: 测试用例 '-[uitestUITests.uitestUITests testExample]' 测量 [OS Signpost Duration (test 1 tapped), s] 平均值:2.000,相对标准偏差:0.020%,值:[2.001171, 2.000079, 2.000173, 2.000237, 2.000132 ],执行manceMetricID:com.apple.dt.XCTMetric_OSSignpost-test 1 tapped.duration, baselineName: "", baselineAverage: , maxPercentRegression: 10.000%, maxPercentRelativeStandardDeviation: 10.000%, maxRegression: 0.000, maxStandardDeviation: 0.000 /Users/username/Projects/uitest/ uitestUITests/uitestUITests.swift:54: 测试用例 '-[uitestUITests.uitestUITests testLaunchPerformance]' 测量 [OS Signpost Duration (AppLaunch), s] 平均值:0.598,相对标准偏差:31.034%,值:[0.888853, 0.613004, 0.690106, 0.402929,0.395714],performanceMetricID:com.apple.dt.XCTMetric_OSSignpost-AppLaunch.duration,baselineName:“”,baselineAverage:,maxPercentRegression:10.000%,maxPercentRelativeStandardDeviation:10.000%,maxRegression:0.000,maxStandardDeviation:0.000
结果是多个匹配行的组合文本。
现在,如果你注意到上面的文字,你可以看到类似的数据
- [OS 路标持续时间(已点击测试 2),s] 平均:4.001
- [OS 路标持续时间(已点击测试 1),s] 平均:2.001
- [OS Signpost Duration (AppLaunch), s] 平均:0.463
现在我想做的是,提取一些像字典(或哈希图)一样迭代的东西(忽略重复项)
[
“测试 2”:4.001,
“测试 1”:2.001,
“应用启动”:0.463
]
我想这样提取,以便我可以迭代变量并将此数据发送到 API。
任何帮助,将不胜感激 ????
谢谢你:)