首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

jmeter录制时过滤js

在使用JMeter进行性能测试时,有时需要录制HTTP请求,但可能会遇到JavaScript文件被录制的情况,这会增加不必要的负载并影响测试结果。为了过滤掉JavaScript文件,可以按照以下步骤操作:

基础概念

JMeter的HTTP(S) Test Script Recorder允许用户录制浏览器与服务器之间的交互,并将其转换为JMeter脚本。然而,默认情况下,它会录制所有类型的请求,包括JavaScript文件。

优势

  • 减少不必要的请求:过滤掉JavaScript文件可以减少录制的请求数量,使测试脚本更加简洁。
  • 提高测试效率:减少请求次数可以加快测试执行速度。
  • 更准确的性能数据:专注于业务逻辑相关的请求,可以获得更准确的性能数据。

类型

  • 基于文件类型的过滤:通过配置JMeter的代理服务器来过滤特定类型的文件,如JavaScript文件。
  • 基于URL的过滤:通过正则表达式或其他模式匹配来过滤特定的URL。

应用场景

  • 性能测试:在进行性能测试时,通常只关心业务逻辑相关的请求,而不是静态资源文件。
  • 负载测试:在模拟大量用户访问时,过滤掉静态资源可以更真实地模拟实际用户行为。

解决方法

  1. 配置JMeter代理服务器
    • 打开JMeter,添加一个“HTTP(S) Test Script Recorder”。
    • 在代理服务器设置中,找到“URL Patterns to Exclude”字段。
    • 添加以下正则表达式来过滤JavaScript文件:
    • 添加以下正则表达式来过滤JavaScript文件:
  • 使用命令行参数
    • 如果通过命令行启动JMeter,可以使用-J参数来设置排除模式:
    • 如果通过命令行启动JMeter,可以使用-J参数来设置排除模式:
  • 手动编辑录制脚本
    • 如果已经录制了脚本,可以手动删除或注释掉与JavaScript文件相关的请求。

示例代码

以下是一个简单的JMeter脚本示例,展示了如何配置代理服务器以过滤JavaScript文件:

代码语言:txt
复制
<jmeterTestPlan>
  <hashTree>
    <TestPlan enabled="true">
      <stringProp name="TestPlan.comments"></stringProp>
      <boolProp name="TestPlan.functional_mode">false</boolProp>
      <boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp>
      <boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
      <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="TestPlan.user_define_classpath"></stringProp>
    </TestPlan>
    <hashTree>
      <HTTPSamplerProxy enabled="true">
        <stringProp name="HTTPSampler.domain">example.com</stringProp>
        <intProp name="HTTPSampler.port">80</intProp>
        <stringProp name="HTTPSampler.protocol">http</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"></stringProp>
        <stringProp name="HTTPSampler.path">/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTP代理服务器 enabled="true">
        <stringProp name="HTTP代理服务器.port">8888</stringProp>
        <stringProp name="HTTP代理服务器.targetcontroller">Test Plan</stringProp>
        <boolProp name="HTTP代理服务器.ignore_ssl_errors">true</boolProp>
        <collectionProp name="HTTP代理服务器.url_patterns_to_exclude">
          <stringProp name="1">.*\.js</stringProp>
        </collectionProp>
      </HTTP代理服务器>
      <hashTree/>
    </hashTree>
  </hashTree>
</jmeterTestPlan>

通过上述配置,JMeter在录制时将自动过滤掉所有JavaScript文件,从而提高测试效率和准确性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券