Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在量角器中获取所有websocket消息_Javascript_Node.js_Websocket_Protractor_Webdriver Io - Fatal编程技术网

Javascript 在量角器中获取所有websocket消息

Javascript 在量角器中获取所有websocket消息,javascript,node.js,websocket,protractor,webdriver-io,Javascript,Node.js,Websocket,Protractor,Webdriver Io,我有一个react项目,在这个项目中,我与一个websocket进行通信,并根据消息做一些事情。我有时会更新UI,或者什么都不做 当我编写e2e测试时,我能够在UI中测试组件,如下所示: When(/^I update the list "(\d+)"$/, (listNumber) => { const elements = browser.$$('div.list_id')[listNumber]; browser.call(() => ( // I make t

我有一个react项目,在这个项目中,我与一个websocket进行通信,并根据消息做一些事情。我有时会更新UI,或者什么都不做

当我编写e2e测试时,我能够在UI中测试组件,如下所示:

When(/^I update the list "(\d+)"$/, (listNumber) => {
  const elements = browser.$$('div.list_id')[listNumber];
  browser.call(() => (
    // I make the websocket call based on the listNumber to update the list
  ));
});
这很有效

我的问题是,我想要一种与e2e测试相关的方法,该方法跟踪来自客户端的所有websocket消息。
我有一个自定义的轮询逻辑来跟踪UI中的更改,但在这种情况下我不能使用它

例如:考虑WebStuts

中的以下消息
{"adding_item":"ListItem 1 with id 123"}
{"adding_item":"ListItem 2 with id 345"}
{"bonus_item":"BonusItem 1 with id 1"}
{"adding_item":"ListItem 3 with id 124"}
对于所有的
添加项目
消息,我会更改UI,但是对于
奖金项目
我不会更改UI!在e2e测试中,如何检测已从websocket接收到的
奖金项目

我运行的npm命令:
“自动化”:“节点节点\模块/webdriverio/bin/wdio--host=localhost--baseUrl=http://localhost:9000 自动化/wdio.conf.js“

几件事:
我不想更改服务器/websocket逻辑。

我不想改变任何东西,但e2e的东西。这意味着我不想更改实际的应用程序。

要截获WebSocket消息,必须安装devtools(-注意,这只适用于Chrome浏览器)。 安装后,您将能够使用Chrome DevTools协议()截获websocket框架

还要注意,您必须在wdio-conf.js中激活devtools:

export.config = {
    // ...
    services: ['devtools'],
    // ...
};
希望这有帮助

export.config = {
    // ...
    services: ['devtools'],
    // ...
};