【问题标题】:Testing multiple concurrent browser sessions测试多个并发浏览器会话
【发布时间】:2010-02-17 13:57:28
【问题描述】:

我正在用 Ruby on Rails 开发一个纸牌游戏,并试图找出最好的测试方法。

当玩家加入游戏时,他们的 Player 对象存储在会话中。显然,为了让游戏正常运行,我需要在游戏中同时拥有多个玩家。由于一个浏览器中不同选项卡的会话相同,因此我目前正在通过同时在 FireFox 和 Internet Explorer 中打开该应用来测试一个 2 人游戏。

在我下载 Chrome 以测试第三个播放器之前...有没有更简单的方法?

编辑:澄清一下,我还没有到我想运行自动化测试以查看它是否中断的阶段。我正处于我希望能够破解后端数据库的阶段,然后刷新页面并查看它现在的外观,或者单击一个按钮以查看(通常)失败响应,或者行为是否正在寻找对。

【问题讨论】:

    标签: ruby-on-rails testing session browser


    【解决方案1】:

    您可以使用多个配置文件运行 Firefox。从命令行转到安装 Firefox 的目录并运行 firefox -P。为要运行的每个实例创建一个配置文件。关闭配置文件管理器,然后为每个配置文件运行 firefox -no-remote -P "profile name"。您可以根据需要运行任意数量的 Firefox 实例,并且每个实例都使用独立的配置文件运行,因此也具有独立的会话。

    【讨论】:

      【解决方案2】:

      自动化!


      你真的不想手动测试这个。您可以使用带有 curl 库的 Ruby 脚本来生成“移动”并管理包括会话 cookie 在内的响应。
      作为预告片,请参阅 API 文档中的这个 sn-p,听起来它会对您有所帮助..

      easy.cookiejar = "cookiejar.file" => "pwd string"
      
      Set a cookiejar file to use for this Curl::Easy instance. 
      This file will be used to persist cookies. 
      

      【讨论】:

      • “测试”可能是错误的词。或者在错误的范围内。我不会使用半成品应用程序并确保它不会损坏;我正在完成我的半生不熟的工作,并确保它大致完成了我想要的工作。
      • watir 看起来像摇滚,不过。好链接!
      • 最棒的是它很容易组合在一起——你可以让几个脚本相互对抗
      • 是的,但这对于我现在需要的东西来说仍然太先进了。为了清楚起见,让我去编辑我的 Q。
      【解决方案3】:

      使用http://watir.com/ 创建运行游戏的 ruby​​ 脚本。

      使用多个Watir::Browser 实例来运行多个浏览器。

      使用 Firefox 的配置文件和 -no-remote 开关将它们分开。另见this question

      【讨论】:

        【解决方案4】:

        与其打开一个新选项卡,不如在您的 Web 浏览器中创建一个新窗口。新窗口将有自己的会话。这适用于 Internet Explorer,但不适用于 Firefox。我还没有在基于 WebKit 的浏览器中测试过。

        【讨论】:

        • 在 Firefox 中不正确。我可以让它在 IE(文件-> 新会话)中工作,这很高兴知道,但我可能会选择 FF Profiles 路线以使 Firebug 可用
        • 你说得对,我已经有一段时间没有这样做了,所以我对 Firefox 的记忆很模糊。我已经编辑了我的答案。
        猜你喜欢
        • 2021-03-29
        • 2012-04-30
        • 1970-01-01
        • 2018-09-16
        • 2016-08-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多