Reactjs JMeter-embedded requests有Bundle.js,这反过来会触发更多的辅助请求——递归检索嵌入式资源请求

Reactjs JMeter-embedded requests有Bundle.js,这反过来会触发更多的辅助请求——递归检索嵌入式资源请求,reactjs,jmeter,embedded-resource,Reactjs,Jmeter,Embedded Resource,我的JMeter版本是apache-JMeter-5.4.1。 我正在尝试在基于react的网站上设置类似以下内容的HTTP请求: HTTP请求-获取(选中检索嵌入资源) 当我运行它时,我可以看到JMeter捕获嵌入的资源请求(辅助请求),它们类似于*.css、*.js 第二组嵌入式资源请求: 但是,其中一个名为-bundle.xxxxxxx.js的辅助请求会向服务器创建另一组嵌入式资源请求,服务器将进一步检索*.js文件,作为请求启动器链的一部分。 而这个文件本身的名称是随机生成的,比如bun

我的JMeter版本是apache-JMeter-5.4.1。 我正在尝试在基于react的网站上设置类似以下内容的HTTP请求:

  • HTTP请求-获取(选中检索嵌入资源) 当我运行它时,我可以看到JMeter捕获嵌入的资源请求(辅助请求),它们类似于*.css、*.js
  • 第二组嵌入式资源请求: 但是,其中一个名为-bundle.xxxxxxx.js的辅助请求会向服务器创建另一组嵌入式资源请求,服务器将进一步检索*.js文件,作为请求启动器链的一部分。 而这个文件本身的名称是随机生成的,比如bundle.0787f963ab0ac67dd7d4.js

    当然,浏览器会立即解析这个bundle.xxxxxxx.js并获取所有嵌入的资源/请求(包括chunk.*.js)

    我的问题是如何使用JMeter复制这种行为,因为第二组嵌入式资源请求也将被触发。目前,我只能捕获第一组嵌入式资源请求。这并没有给我真正的负载测试结果,因为第二组到服务器的流量更多。是否有一种递归检索所有嵌入资源的方法

    我们正在测试的应用程序基于React JS。

    根据:

    JMeter不是浏览器,它在协议级别工作。就web服务和远程服务而言,JMeter看起来像一个浏览器(或者更确切地说,是多个浏览器);但是JMeter并不执行浏览器支持的所有操作特别是,JMeter不会执行HTML页面中的Javascript。也不会像浏览器那样呈现HTML页面(可以将响应视为HTML等,但计时不包括在任何示例中,一次只显示一个线程中的一个示例)

    有几种启动器类型:

    • 解析器(索引、样式、字体等)-这些家伙将被嵌入式资源下载功能捕获。以下所有内容都需要以其他方式处理
    • 重定向
    • 剧本
    • 其他
    因此,如果需要模拟大量源自JavaScript的HTTP请求,则需要在JMeter中复制来自此JavaScript代码的逻辑

    您能够将JavaScript复制并粘贴到其中的可能性很小,但它很可能依赖于某些对象,例如,或者您很可能需要在Groovy中重新编写它。一旦您有足够的数据来正确构建HTTP请求采样器,您很可能需要将它们放在

    另一个选择是在测试中使用真正的浏览器,但要注意,与HTTP请求采样器相比,浏览器资源非常密集