J-Meter给出了错误的结果

时间:2015-10-01 17:39:29

标签: automation jmeter performance-testing

我正在努力学习J-Meter。

当我运行使用有效/无效凭据登录站点的示例脚本时,如果使用无效登录凭据并且登录未记录在数据库中,则不会停止执行线程。

它是否实际登录到网站或仅创建虚拟登录以创建类似的环境。有没有办法使用Samplers实现这一目标?

3 个答案:

答案 0 :(得分:1)

JMeter是/ headless browser

无论您使用UI的浏览器是什么,JMeter也可以这样做 - 除了执行javascript。因此,如果您已正确记录脚本 - JMeter也可以登录到实际应用程序。

Jmeter与QTP / Selenium不同。它不知道它是否是有效的凭证/无效凭证。它根据HTTP代码传递/失败请求。如果来自服务器的HTML响应带有200个http代码,则为JMeter传递。如果服务器以代码500响应,则JMeter会使请求失败。但JMeter还提供了一种验证所得响应的方法 - Assertion。您可以使用Response Assertion查看是否正在查看主页,以确认用户是否已成功登录。

要停止错误测试,请在thread Group属性中选择相应的选项。

enter image description here

JMeter是一个非常好的工具&已经使用它2年没有问题。

祝你好运!

答案 1 :(得分:1)

您的脚本是否有Config Element -> HTTP Cookie Manager?它需要用于登录功能的cookie。

如果您的脚本与登录事务具有相同级别的许多事务,并且您在线程组中选择的选项为Continue,则无论登录事务是否通过或失败,都将执行所有事务。

如果您希望在登录失败时不执行其他事务,请添加Regular Expression Extractor作为登录事务的子项以检索文本Dashboard,将其他事务放入{{1 }}。假设Logic Controller -> If Controller的名称为Regular Expression ExtractorDashboardDefault value,则NotFound的条件为If Controller

答案 2 :(得分:1)

JMeter会自动成功处理2xx和3xx HTTP响应代码,因此除非您明确告诉它检查响应数据中是否存在某些特定内容,否则它将无法检测失败的登录。

因此,如果您添加Response Assertion,您将能够有条件地使采样器失败,并通过Thread Group级别上的“采样器错误后采取的措施”选择在发生故障时应采取的措施。

有关断言域的更多详细信息,请参阅How to Use JMeter Assertions in Three Easy Steps指南。

如果您不确定JMeter Sampler正在做什么,您可以通过View Results Tree监听器检查请求和响应详细信息。如果在大多数情况下无法模拟登录事件,则是由于缺少HTTP Cookie Manager和/或动态强制参数(如Viewstate,CSRF令牌等)的相关性失败。