我正在开发 chat 应用程序,在服务器上使用node.js socket.io模块,在客户端上使用javascript。随着它变得越来越复杂,我厌倦了通过点击浏览器来测试不同的使用场景。现在我使用不同的浏览器来分隔cookie。所以在Firefox中有一个聊天参与者,在Opera中,第二个等等。
因此我的问题是:
我能以某种方式自动化吗?
我已经听过像Phantom JS,Selenium WebDriver这样的无头测试引擎,但我不知道如何在不同的浏览器之间编写测试。事实上,我确实需要分开cookie,不同的浏览器只能用于此任务。
可能我无法向Google解释我的问题:)所有关于此类问题的答案都意味着跨浏览器开发,并测试这方面。
任何帮助都会受到很多赞赏!
答案 0 :(得分:1)
如果您尝试使用Casper / Phantom / SlimerJS路线,How to test two interacting browsers (e.g. chat app)显示的答案可能会有用。我没有将它标记为重复,因为你的问题更为通用,而那个问题正是关于如何同步两个CasperJS实例;它也没有具体关于socket.io。
注意:如果使用Phantom来测试Web套接字,你将需要获得Phantom 2.x(它仍然是实验性的,并且还没有可轻松下载的测试版),因为Phantom 1.x使用旧的WebKit。 SlimerJs总是使用最近的Gecko(即Firefox)引擎,所以很好。
PhantomJS的每个实例都可以拥有自己的cookie。 This answer(以及该问题的另一个答案)很好地解释了您的选择。
SlimerJS cookies类似,但持久性cookie存储在Mozilla配置文件中,因此如果要运行多个实例,则需要为每个实例指定显式配置文件。 (虽然您的聊天应用程序可能只使用会话cookie,但在这种情况下这并不重要。)
无论如何,当使用cookie时,我肯定会运行两个CasperJS实例,而不是尝试使用两个选项卡或两个框架。