0

我有一个用于执行功能和负载测试的 jmx 脚本。

该脚本使用 1 个用户和多个线程用户测试了一个简单的订单管理系统,该系统执行以下操作:

  1. 加载系统
  2. 登录
  3. 下单(选择产品,加入购物车,结账,提交订单直到订单确认页面)
  4. 登出

这些步骤成为 jmx 脚本中的步骤。

执行脚本时,我看不到任何重大问题。JMeter 在收集性能指标和处理时间时不会报告任何错误。

但是测试后,当我们检查数据库(以及 JMeter 之外的系统本身)时 - 那些本应在我们运行 JMeter 测试时创建的订单并没有被创建。

我假设当 JMeter 以虚拟用户身份登录并在 UI 上执行任何事务时,这些事务会进入数据库。有一个端到端的交易。但这里的情况似乎并非如此。

关于可能导致这种情况的任何想法?
JMeter 是否真的将 UI 上的操作一直推送到后端?

任何帮助,将不胜感激。

4

1 回答 1

3

首先,JMeter 不是浏览器,它只通过服务器重现流量。

其次,您是否添加断言以检查响应是否正常并包含它们应该包含的内容?

第三,您说您使用 1 个用户和 N 个线程,这意味着您只有 1 个用户您的多线程然后您测试是错误的,因为它会引发缓存、事务争用......

我建议您首先使用一个用户检查您的脚本并查看结果树侦听器。然后通过以少量线程运行所有用户来检查您的用户。

最后运行真实负载测试。

于 2012-08-04T08:03:45.247 回答