0
을 요청단일 간부, 나는 현재 다른 후 하나라고 웹 소켓 요청의 목록을 내 개틀링 시뮬레이션에서
.exec(ws("1").sendText("1").check("..."))
.exec(ws("2").sendText("2").check("..."))
.exec(ws("3").sendText("3").check("..."))
그 문제는 검사가 서로 다른 시간에 그들에 도착한다는 것입니다 테스트 실패의 원인이됩니다. wsAwait
을 통한 차단 체크를 사용하는 것은 요구 사항 때문에 불가능합니다.
내가 대신 갖고 싶습니다는 체크가 모든 응답을 수집합니다. 이상적으로 다음과 같이 보일 수 있습니다.
.exec(
ws("1").sendText("1"),
ws("2").sendText("2"),
ws("3").sendText("3")
).check(...)
이것은 현재 불가능합니다. 내가 이것을 달성 할 수있는 방법이 있습니까?
수십 개의 작은 시뮬레이션을 만들고 싶지 않기 때문에 어설 션을 사용하고 싶지 않습니다. 이러한 WS 요청은 모두 단일 WS 연결 내에서 보내고 읽어야합니다. 또한'http'와는 달리'ws '와 같이'resources'를 사용할 수 없습니다. 대답은 컴파일되지 않습니다. – xeroqu
블로킹 체크 인'wsAwait'을 사용했지만 non-blocking 체크 ('wsListen')를 사용할 수 없다는 것을 언급했습니다. 좀 더 자세하게 들어갈 수 있습니까? '기대하기 '기능도 마음에 들지만 나는 그 것에 대한 경험이 없다. – Questioning
'wsAwait'은 블로킹 연산이므로'check '가 반환 될 때까지 다음 exec()가 실행되는 것을 허용하지 않습니다. 시나리오에서는 우리가 이것을 가지고 있지 않습니다. 사용자는 요청을 보내고 비동기식으로 서버에서 응답을 다시받습니다. 한 가지 해결 방법은 내 질문에'wsListen'을 사용하고'within'을 매우 오랜 시간 동안 설정하는 것입니다. 단지'check'가 반환되는지 확인하는 것입니다. 나는 더 우아한 해결책을 찾고있다. – xeroqu