I'm sorry that I don't have an answer to your question, but instead a question of my own. Could you share a bit more about how you defined custom signposts in your app and then measure those signposts in XCUITests? I'm trying to do the same thing to measure performance of my own app, but the documentation for measuring custom signposts in XCUITest seems to be non-existent.Any help or sample code you could provide would be greatly appreciated.
Post
Replies
Boosts
Views
Activity
Thanks for confirming that the app runs in a separate process. That's good to know.So is there a way to get XCTNSNotificationExpectations to work in UI tests, or are they only supported in unit tests?
Update: Here's an example of one of the errors we're seeing when we run multiple performance XCUITests consecutively:*** Assertion failure in -[MXMOSSignpostMetric _constructProbe], /BuildRoot/Library/Caches/com.apple.xbs/Sources/MetricKit/MetricKit-60.60.1/MetricMeasurement/MetricMeasurement/metrics/MXMOSSignpostMetric.m:702020-04-02 10:51:51.779 PerformanceUITests-Runner[347:11285] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: _startDate'Again, the failure is occuring when using measure(metrics:block:) to gather signpost metrics.Any help would be greatly appreciated! Thanks!
I've seen something similar when trying to manipulate the app after clearing a dialog. We use the following code to handle typing in such cases:extension XCUIElement {
func tapAndWaitForKeyboardToAppear() {
let waitTime = 0.5
let retryMaxCount = 20
let keyboard = XCUIApplication().keyboards.element
for _ in 0..< retryMaxCount {
tap()
if keyboard.waitForExistence(timeout: waitTime) {
return
}
}
XCTAssert(false, "keyboard failed to appear")
}
}In our tests, we'll call element.tapAndWaitForKeyboardToAppear()
element.typeText("this is some text")Hope this helps.
Update: I have also opened a Developer Technical Support ticket for this issue. The latest update from the DTS Engineer is that the MetricMeasurement Engineering team is still investigating the issue, and that there's currently not a workaround. :(
I noticed some additional signpost metrics are being added in the upcoming Xcode/iOS, so maybe this issue will be fixed with those changes? I hope...