使用生产数据的瓶颈性能测试应用程序

标签 performance testing webserver weblogic load-testing

我的任务是为我们在 Weblogic 服务器上运行的一个 Java 应用程序寻找性能测试解决方案。要求是记录生产请求(包括 POST 数据的 GET 和 POST),然后使用生产数据库的副本在性能测试环境中运行这些请求。

使用生产请求而不是测试脚本的原因是:

  1. 这是一个没有现有测试脚本的大型应用程序,因此编写脚本以覆盖整个应用程序需要大量工作。
  2. 一些性能问题仅在用户按特定顺序执行多项操作时才会出现。
  3. 使用与系统的实际用户交互进行测试,而不是估计用户与系统的交互方式。我们都知道用户会做出我们没有想到的事情。
  4. 我希望能够修复性能问题并在发布到生产环境之前针对修复的代码重新运行请求。

我看过使用 JMeters Access Log Sampler使用服务器访问日志,但是访问日志不包含 POST 数据,并且访问日志采样器仅查看请求 URL,因此它无法模拟用户提交表单数据。

我也看过使用 JMeter HTTP 代理服务器,但是这只能记录一个用户的操作,并且需要用户配置他们的浏览器以使用代理。 Tsung 和 The Grinder 也存在同样的限制。

我看过使用 Wireshark 和 TCReplay,但在数据包级别的记录过多,不会在请求级别提供任何有用的报告。

考虑到我需要能够在发布到生产环境之前测试修复,是否有更好的方法来分析生产性能?

最佳答案

这将是一个很难的问题。我使用 Visual Studio Test Edition 对我的应用程序进行负载测试,我们只能“估计”站点上的用户事件。

可以查看日志并收集有关通过您的应用的某些路径的可能性的信息。然后,您可以查看生产数据库以查看在任何发布请求中输入的可能值。由此,您将必须进行接近生产站点使用模式的负载测试。

我认为使用任何当前的工具都无法记录和回放实际的用户交互。

可以更改您的网络应用程序,以便记录每个请求并根据 session 和日期时间发布。然后可以使用此自定义日志记录来生成针对测试网站的负载测试请求。这将是对您现有网站的一些严重代码更改,并且可能会影响性能。

也就是说,我曾使用过执行此级别日志记录的网络应用程序,并且分析导致错误的确切页面帖子/请求系列的能力对开发人员来说非常有值(value)。

总而言之:这是可能的,但我还没有听说过任何现成的工具可以做到这一点。

关于使用生产数据的瓶颈性能测试应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1718286/

相关文章:

c - 解释 getaddrinfo( ) 的参数

java - 在Java/Clojure中处理大型数据集: littleBig data

Java - JUnit 测试生成器

unit-testing - 如何为数学优化程序编写测试?

testing - 哪些版本控制软件与 remedy 兼容?

重新加载页面时,asp.net session 丢失(ispostback = false)

android: 查看进程的cpu使用情况

mysql - 如何在低规范系统的大表上提高 MySQL 性能?

javascript - react 大数据 block 的非阻塞渲染

iphone - 从 iphone 将 XML 数据发布到 Web 服务器