2

在针对 Web 应用程序编写 JMeters 测试时使用的最佳策略是什么,其中某些查询字符串和发布变量的值将在每次运行时发生变化。

快速,常见,示例

  1. 你去一个网页
  2. 在表格中输入一些信息
  3. 点击保存
  4. 在后台,在数据库中输入了一条新记录
  5. 您想编辑刚刚输入的记录,因此您转到另一个网页。在幕后,它向页面传递了一个带有您刚刚创建的行的数据库 ID 的参数

当您运行上述测试的第 5 步时,页面参数/数据库 ID 每次都会发生变化。

我目前使用的工作流程/策略是

  1. 使用上述操作记录测试
  2. 记下查询字符串变量可能因运行而变化的每个地方
  3. 使用 XPath 或正则表达式提取器将值从响应中提取到 JMeter 变量中
  4. 用上述变量替换硬编码参数的所有适当实例。

这是可行的,并且可以在一定程度上实现自动化。但是,它可能会变得乏味、容易出错且脆弱。是否有更好/普遍接受的方式来处理这种情况?(或者这就是为什么大多数人只使用 JMeter 来回放日志的原因?(-;)

4

2 回答 2

3

在我看来,你在正确的轨道上。JMeter 可以实现的最佳效果是使用正则表达式或 xpath 后处理器提取页面变量。但是,您绝对正确,因为这不是一个可扩展的解决方案,并且维护或增长变得越来越棘手。

如果您已经达到目的,那么您可能需要考虑一种更专门用于解决此类问题的工具。看看Watir之类的web测试工具,它会自动处理变化的post参数;但是如果您需要进行数据库更新,您仍然需要提取参数,但是使用 Watir 可以更好地重用代码,从而减少问题的痛苦。

于 2009-05-20T08:09:25.587 回答
2

通过将参数存储在 JDBC 断言中的 JMeter 变量中,我们在使用 JMeter 测试类似场景方面取得了巨大成功。然后我们执行我们的 http get/post 并使用 BSF 断言和 javascript 对响应进行复杂的验证。希望能帮助到你

于 2009-04-09T21:54:30.120 回答