如何重现"多用户并发问题"在资源有限的测试环境中

时间:2014-12-22 13:11:45

标签: spring-mvc testing concurrency automation manual-testing

情景:

如果多个用户同时使用,基于cookie的登录有时会被覆盖,导致一个用户看到其他用户信息。

会话完全基于cookie,每个服务器请求都通过cookie中的编码值对数据库进行身份验证,以确保有效的用户和会话。

应用程序使用spring MVC框架。除了数百名用户同时访问网站外,应用程序运行良好。并发问题很少。一个用户的数据正在与另一个用户交换。

我们在重现这个问题时遇到了麻烦。我们的测试资源有限,这是我们应该遵循的工具/方法来复制问题。

1 个答案:

答案 0 :(得分:1)

此方案适用于安全漏洞。

我在进行系统测试时已经重现了这种情况,但不太确定在您的情况下也适用。 希望以下步骤对您的情况有所帮助。

重现的步骤:

  1. 使用一个浏览器上的用户ID A和另一个浏览器上的用户ID B登录系统。
  2. 在用户A的现有屏幕上进行一些修改操作,不要对用户B进行任何操作。
  3. 保存/提交用户A的最近编辑的数据。
  4. 不要注销现有用户的(A)会话。
  5. 针对用户A检查后端数据库中最近修改的数据和时间戳。

      

    此时,DB必须按原样重置原始参数。

    现在尝试对用户B进行任何数据修改。

  6. 检查后端数据库是否有针对用户B的最近修改的数据和时间戳。
  7. 数据库必须要求重置原始参数值

    第二个user B的会话共享行为不应该发生,第二个user B应该具有与第一个user A不同的会话ID。