KarateUI多浏览器WebSocket交互测试可行性及自定义实现问询
KarateUI 多浏览器WebSocket实时交互测试问题
我一直在使用KarateUI测试Spring MVC Web应用,该工具在单用户场景或多模拟用户轮流操作的场景中表现优异,可验证其他用户操作的生效情况;但我希望测试当部分用户执行特定操作后,其他用户能通过WebSockets即时收到通知的场景(例如包含井字棋游戏的Web应用中,玩家通过WebSockets接收对手操作通知)。目前通过用户反复登录登出验证游戏状态的测试方式无法还原真实体验,因此提出以下技术问询:
- 是否可通过KarateUI有效驱动2个及以上独立浏览器测试该场景?
- 是否存在无需修改Web应用(包括JS代码)的外部测试方案?
- 若暂无合适的现成工具,自行实现同步感知测试用例语法有何建议?我设想了一种语法示例(如下),希望得到相关指导:
scenario: start multiplayer game in lobby, see new game pop up * browser a * call read('login.feature@login_a') * submit().click("{button}new game") * markTime "game created" * exists('#game_of_a') * browser b * call read('login.feature@login_b') * submit().click("{button}lobby") * var gameExists = exists('#game_of_a') * if (gameExists) karate.fail('game should not exist before it is created') * atTime "game created" * delay(1000) * exists('#game_of_a')
该语法可通过browser nameOfInstance切换浏览器实例,通过markTime nameOfMark和atTime nameOfMark标记并同步测试场景中的时间节点,确保所有提及该时间点的浏览器实例均到达后再继续执行。
内容的提问来源于stack exchange,提问作者tucuxi
相关产品推荐
相关产品推荐

