默認情況下,Xcode性能測試運行十次,我的結果是這十次測試的平均值。問題是每次運行它時平均結果差異很大,所以我必須至少運行五次測試才能獲得收斂結果。這既乏味又費時。有沒有辦法配置XCode或單元測試本身運行10次以上?我如何運行我的性能測試超過十次?
18
A
回答
8
XCTestCase的一類轉儲公開此方法:
- (void)_recordValues:(id)arg1 forPerformanceMetricID:(id)arg2 name:(id)arg3 unitsOfMeasurement:(id)arg4 baselineName:(id)arg5 baselineAverage:(id)arg6 maxPercentRegression:(id)arg7 maxPercentRelativeStandardDeviation:(id)arg8 maxRegression:(id)arg9 maxStandardDeviation:(id)arg10 file:(id)arg11 line:(unsigned long long)arg12;
當這種方法被交叉混合的第一個參數(ARG1)具有10周的持續時間:
["0.003544568",
"0.003456569",
"0.003198263",
"0.003257955",
"0.003508724",
"0.003454298",
"0.003461192",
"0.00423787",
"0.003359195",
"0.003335757"]
我加入4-新值(1.0 ,2.0,3.0,4.0)到該列表的末尾,然後將其傳遞迴原始實現,但不幸的是,觀察到的不同類別XCTestLog
具有內部完整性檢查,其被觸發:
Assertion failure in +[XCTestLog _messageForTest:didMeasureValues:forPerformanceMetricID:name:unitsOfMeasurement:baselineName:baselineAverage:maxPercentRegression:maxPercentRelativeStandardDeviation:maxRegression:maxStandardDeviation:file:line:]
caught "NSInternalInconsistencyException", "Performance Metrics must provide 10 measurements."
一旦XCTestLog
方法也被覆蓋,所以它不會斷言,額外的4個值可以添加沒有任何抱怨。不幸的是,這個視圖仍然只顯示了10個結果。
但它確實更新了迷你視圖中的總時間+標準偏差值。
前交叉混合
人們可能必須調整Xcode的運行時告訴該表顯示更多項目。
4
簡短的回答:不,沒有暴露,以允許十次測量塊更沒有電流接口。
更長的回答:不,但有一個接口暴露在修改度量塊的某些指標。默認指標位於從defaultPerformanceMetrics
返回的字符串數組中。目前似乎只支持一項指標:XCTPerformanceMetric_WallClockTime
。這僅指定一個性能指標,記錄調用性能測試的startMeasuring()
和stopMeasuring()
方法之間的時間(以秒爲單位),而不記錄該塊運行的次數。
相關問題
- 1. 我如何運行我的耙測試兩次?
- 2. 如何運行我的代碼測試
- 3. 如何在Chrome中運行我的測試50次?
- 4. 我的功能正在運行超過一次,當我調整頁面
- 5. 我如何運行symfonys測試?
- 6. 我該如何運行基準測試?
- 7. 我如何「運行」dbunity測試?
- 8. 我如何每5分鐘運行一次硒測試?
- 9. 我如何平行運行我的serenityJS測試?
- 10. 如何通過另一個測試才能運行測試類?
- 11. 防止運行工具窗口彈出每次我運行我的測試
- 12. 如何在我們的網站進行性能測試
- 13. 我如何測試我的網頁的性能
- 14. PHPUnit性能/測試超時
- 15. 如何通過測試讓我的SQL Server Express連接第一次超時?
- 16. 如何讓我的NancyFX單元測試運行我的驗證?
- 17. 測試運行時,我可以跳過JUnit測試嗎?
- 18. 我如何通過SBT實際運行Gatling測試
- 19. 我不能運行我的測試用案與robotium
- 20. 我不能運行我的JUnit測試了
- 21. 我如何爲測試方法運行很多測試用例
- 22. 我如何運行ng測試,然後在測試通過Angular後ng build
- 23. TheIntern功能測試:我如何測試我自己的網站?
- 24. 如何依次運行Jest測試?
- 25. 我如何讓TeamCity拿起我從Rake運行的NUnit測試?
- 26. 我應該如何每十分鐘運行一次網頁?
- 27. 爲什麼我的網站超時運行JMeter負載測試
- 28. 爲什麼我的代碼運行for循環超過5次?
- 29. 我無法在Play測試運行器上運行測試1.2.7
- 30. 性能測試。如何增加硬盤運行穩定性
這是否工作正常?對於三個新條目,從0.003秒增加到0.717秒似乎有點多。 – Deco
是的,這工作正確。原始10個值的平均值爲0.00348,並且14(在加入1,2,3,4後)值的平均值爲0.71677 – Casey
(0.003544568 + 0.003456569 + 0.003198263 + 0.003257955 + 0.003508724 + 0.003454298 + 0.003461192 + 0.00423787 + 0.003359195 + 0.003335757 + 1 + 2 + 3 + 4)/ 14 – Casey