我需要登录JMeter。在Firefox中,我转到网站,输入用户名和密码,然后按登录按钮。然后我在控制台中检查显示哪些POST。我从xml获取登录数据并将其作为JMeter中的参数传递给HTTPRequest。而现在我有一个问题。在登录后进入第一页之前,该网站向JS PopUp显示警告(是或否选择)。此弹出窗口的JS代码在控制台中显示为此POST方法中的响应。此弹出窗口被阻止进一步 - 来自此POST的URL的内容是" Acces Denied"。
如何解决?我正在考虑一些如果控制器,但我没有任何具体的想法。
我会很高兴; - )
答案 0 :(得分:0)
忘掉JavaScript吧。 JMeter is not a browser。
就Web服务和远程服务而言,JMeter看起来像浏览器(或者更确切地说,是多个浏览器);但是JMeter不会执行浏览器支持的所有操作。特别是,JMeter不执行HTML页面中的Javascript。
因此JMeter无法看到""弹出窗口或"键入"其中的任何东西。但是,JMeter可以模仿相关请求,就像它来自浏览器一样。因此,我建议不要手动构建您的请求,而是建议 record 。甚至记录2次,如果由动态参数引起任何差异,您可以识别并处理它们。
同样由于JMeter不是浏览器,它需要一些额外的配置才能更像浏览器,即:
有关上述配置建议的详细说明以及更多提示,请参阅How To Make JMeter Behave More Like A Real Browser文章。
答案 1 :(得分:0)
谢谢!我录了它,它对我很有帮助。但现在还有一个问题: 此弹出窗口是可选的,当使用相同的用户名登录多个用户时会显示该弹出窗口。如果发生这种情况 - 我作为POST响应得到一个js代码,如“new Popup(.... etc ......”。但是当PopUp不会出现时 - 我得到一段URL(POST响应)当只有一个用户登录时,到一个正常的URL。现在我想考虑这两种情况。如何在JMeter中做到这一点?我做了一个响应断言和一个测试模式我把这个URL。如果这第二个条件一切都很好但是当这个PopUp apers时 - 我想把这段URL粘贴到主要地址并继续前进。 我试图记录它,但它只是一个JavaScript操作,我在JMeter录音中找不到这一刻。正如你所说 - 我必须忘记JavaScript;) 那么,有没有可能做到这一点?