JMeter测试和非静态GET / POST参数

时间:2008-11-19 00:09:22

标签: testing post get jmeter

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

快速,通用,示例

  1. 您转到网页
  2. 在表格中输入一些信息
  3. 点击保存
  4. 在幕后,在数据库中输入新记录
  5. 您想要编辑刚刚输入的记录,因此您将转到另一个网页。在幕后,它正在向页面传递一个参数,其中包含您刚创建的行的数据库ID
  6. 当您运行上述测试的第5步时,页面参数/数据库ID每次都会更改。

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

    1. 使用上述操作记录测试
    2. 记下查询字符串变量可能在运行中更改的每个位置
    3. 使用XPath或正则表达式提取器将值从响应中拉出并转换为JMeter变量
    4. 用上述变量替换硬编码参数的所有适当实例。
    5. 这有效并且可以在一定程度上实现自动化。但是,它可能会变得乏味,容易出错,而且很脆弱。是否有更好/普遍接受的处理这种情况的方法? (或者这就是为什么大多数人只是使用JMeter来回放日志?( - ;)

2 个答案:

答案 0 :(得分:2)

听起来像你在正确的轨道上。 JMeter可以实现的最好效果是使用正则表达式或xpath后处理器提取页面变量。然而,你绝对正确的是,这不是一个可扩展的解决方案,并且变得越来越难以维护或增长。

如果您已达到目标,那么您可能需要考虑一种更专门针对此类问题的工具。看看Watir等Web测试工具,它会自动处理更改后的参数;但是如果你需要进行数据库更新,你仍然需要提取参数,但使用Watir可以更好地重用代码,从而减少问题的痛苦。

答案 1 :(得分:1)

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