【问题标题】:Why the application is throwing error when I execute a search transaction via Jmeter proxy, but not when I manually execute the transaction?为什么当我通过 Jmeter 代理执行搜索事务时应用程序会抛出错误,但当我手动执行事务时不会?
【发布时间】:2021-07-23 23:32:08
【问题描述】:

我正面临这个问题,我怀疑它与安全有关。

我正在使用 Jmeter 关联记录器来记录我的脚本以进行测试, 我尝试在我的应用程序中记录搜索事务,这是一个文档管理系统,一旦我搜索(登录后),它就会抛出一个错误,而当我手动运行该功能时它运行良好。

我是否应该尝试强制 Jmeter 使用我的本地代理进行录制甚至回放(我已经开发了带有 Blazemeter 扩展的脚本,因为 Jmeter 代理录制不起作用)?但是脚本无法回放搜索事务,服务器返回 500 错误。

我还看到 Blazemeter 扩展记录搜索事务没有问题,这让我怀疑,当我尝试通过 Jmeter 代理记录时可能缺少安全证书。

【问题讨论】:

    标签: proxy jmeter certificate


    【解决方案1】:

    在识别动态元素并提出适当的正则表达式来处理它们时,相关记录器没有任何魔力,您仍然需要在开始记录之前手动完成。

    关于JMeter录音失败:是的,需要将JMeter的证书导入浏览器,这样JMeter才能拦截和解密HTTPS流量,见HTTPS录音和证书章节JMeter 在HTTP(S) Test Script Recorder 上的文档了解更多详情。

    如果您添加 View Results Tree listener 并查看响应,很可能您的登录在某处失败,因此由于您的虚拟用户无法登录而导致搜索失败。

    所以请确保

    鉴于上述所有标准均已实施,您应该不会遇到任何问题。

    有一个第 3 方解决方案:BlazeMeter Proxy Recorder,如果您不熟悉这个概念,它似乎能够自动检测和关联动态参数 - 即使它不能完全解决您的问题,至少它会给你一些线索。

    【讨论】:

    • 记录(通过 Jmeter 代理)登录和其他事务很好,只有搜索失败。但是,当我使用 Blazemeter Chrome 扩展程序时,录制工作有效。该脚本是相关的,我从 LDAP 日志中验证我通过脚本登录成功。验证了 Jmeter 和 Fiddler 发送的内容是一样的,甚至 Content header 都是一样的(我也尝试过其他内容头)。通过脚本登录工作正常,验证 LDAP 日志显示登录成功。
    • 在播放搜索事务期间我在服务器上的错误表明,脚本正在尝试执行不允许的“全文”搜索,因此引发错误。我怀疑我的系统代理(和 Blazemeter Chrome 扩展)正在使用某些设置或证书组件,但在播放和录制期间(通过 Jmeter 代理)没有被 Jmeter 使用。搜索请求正在提交一个 XML,我尝试了各种内容标题但徒劳无功。
    • 这个问题也一样,看来:stackoverflow.com/questions/62875799/…
    • 在服务器端检查了错误,发现我通过Jmeter代理记录搜索时的错误与播放时搜索失败时的错误完全相同。让我想到通过 Jmeter 代理和 Blazemeter 扩展、代理记录之间的区别可能是什么,但还有什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-08
    • 1970-01-01
    • 2018-03-02
    • 2020-08-23
    • 2019-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多