您的位置:

Jmeter录制脚本详解

一、录制脚本的基本概念

Jmeter是一款免费、开源的性能测试工具,可用于测试静态或动态资源的请求,包括静态文件、动态页面、Web服务、FTP服务等。其中录制脚本是Jmeter的重要特性之一。

Jmeter的录制脚本是将HTTP请求转换为Jmeter测试脚本的一种方式,它可以记录用户与Web应用程序之间交互的HTTP请求和响应,以便实现在后续测试中模拟这些请求和响应。录制脚本包括3部分:HTTP代理服务器、浏览器和Web应用程序。

具体来说,HTTP代理服务器收集和转发浏览器通过Jmeter进行的HTTP请求。Jmeter使用代理服务器截获HTTP请求,浏览器从代理服务器接收响应,然后Jmeter通过代理服务器记录HTTP请求和响应,从而生成测试脚本。

二、录制脚本的使用方法

使用Jmeter录制脚本的步骤如下:

1. 配置HTTP代理服务器

在Jmeter的“Workbench”下找到“HTTP(S)代理服务器”,右键选择“添加”并设置端口号和Target Controller。Target Controller可以设置成根节点或者是任意一个现有节点下面的子节点。配置完成后,在“Test Plan”中保存HTTP代理服务器的设置。

<HTTPProxyControl>
  <stringProp name="port">8080</stringProp>
  <stringProp name="domain"></stringProp>
  <stringProp name="target">/</stringProp>
  <boolProp name="captureHttpHeaders">true</boolProp>
  <boolProp name="addAssertions">false</boolProp>
  <boolProp name="useRegexForSamplerName">false</boolProp>
  <boolProp name="responseBasedActionNaming">false</boolProp>
  <boolProp name="assumeHttpVersion">true</boolProp>
  <boolProp name="embeddedUrlRE"></boolProp>
  <boolProp name="includeScope">false</boolProp>
  <elementProp name="agreements">
    <collectionProp>
      <stringProp name="-1">on</stringProp>
      <stringProp name="-241414560">on</stringProp>
    </collectionProp>
  </elementProp>
  <elementProp name="exclude_list">
    <stringProp name="-1"></stringProp>
  </elementProp>
  <stringProp name="filename"></stringProp>
  <boolProp name="auto_redirects">true</boolProp>
  <boolProp name="follow_redirects">true</boolProp>
  <stringProp name="proxyChain"></stringProp>
</HTTPProxyControl>

2. 配置浏览器

在浏览器中设置代理服务器。这里以Chrome为例,进入“设置”-“高级”-“系统”-“打开代理设置”,在“代理服务器”中输入“localhost:8080”,保存后关闭设置。

注:在配置完成后,要确保代理服务器已启动,可通过Jmeter工具中的“Start”按钮来开启,或者通过命令行“jmeter -n -t /path/to/script.jmx”来启动。

3. 录制脚本

打开浏览器,访问需要测试的Web应用程序。Jmeter将记录所有的HTTP请求和响应。在录制测试期间,请注意避免浏览其它网站,因为这些请求也会被记录下来,与当前所需的脚本无关。

4. 查看并编辑脚本

打开Jmeter的“Recording Controller”,可看到已经录制到的请求和相关信息。可以对请求进行编辑,例如添加断言、修改请求头等。编辑完成后,可保存测试脚本,以备后续使用。

<RecordingController guiclass="RecordController" testclass="RecordingController" testname="Test" enabled="true">
  <boolProp name="gui.recording&controller.disabled">false</boolProp>
  <stringProp name="TestPlan.comments"></stringProp>
  <boolProp name="TestPlan.functional_mode">false</boolProp>
  <boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
  <elementProp name="HTTPsampler.HTTPsampler-Proxy" elementType="HTTPSamplerProxy" guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" enabled="true">
    <boolProp name="HTTPSampler.postBodyRaw">false</boolProp>
    <elementProp name="HTTPArgument.paramstyle" elementType="HTTPArgument"></elementProp>
    <elementProp name="HTTPSampler.method">
      <stringProp name="HTTPSampler.method">POST</stringProp>
    </elementProp>
    <elementProp name="HTTPSampler.follow_redirects">true</elementProp>
    <elementProp name="HTTPSampler.auto_redirects">false</elementProp>
    <elementProp name="HTTPSampler.use_keepalive">true</elementProp>
    <elementProp name="HTTPSampler.DO_MULTIPART_POST">false</elementProp>
    <elementProp name="HTTPSampler.monitor">false</elementProp>
    <elementProp name="HTTPSampler.embedded_url_re"></elementProp>
    <elementProp name="HTTPSampler.ignore_failed_embedded_resources">false</elementProp>
    <elementProp name="HTTPSampler.useMultipartForPost">false</elementProp>
    <elementProp name="HTTPSampler.connect_timeout"></elementProp>
    <elementProp name="HTTPSampler.response_timeout"></elementProp>
    <elementProp name="HTTPSampler.protocol">
      <stringProp name="http.protocol.version">HTTP/1.1</stringProp>
    </elementProp>
    <>...
  </elementProp>
</RecordingController>

三、录制脚本的注意事项

在使用Jmeter录制脚本时,需要注意以下事项:

1. 避免浏览其它网站

在录制测试期间,要避免在浏览器中访问其它网站。因为这些请求也会被记录下来,与当前所需的脚本无关。

2. 检查测试脚本的正确性

录制测试脚本后,要对其进行检查,确保没有错误和缺陷。可以使用Jmeter内置的调试工具,查看脚本中每个请求和响应之间的关系是否正确。

3. 添加断言和验证器

测试脚本中加入断言和验证器,可用于检查是否所有请求和响应都正确,包括HTTP代码、响应时间、响应内容等。这是测试脚本的基本要求,以便达到准确测试的目的。

4. 尽量避免不必要的处理

Jmeter的录制脚本会记录所有的HTTP请求和响应,包括一些不必要的请求,例如广告请求、跟踪请求等。这些请求需要在后续的编辑中删除,以避免影响测试结果。

5. 适时保存测试脚本

在录制过程中适时保存测试脚本,避免遗失重要的测试数据。同时也避免了在一次录制中测试脚本过于臃肿,难以管理的问题。

四、总结

本文详细介绍了使用Jmeter录制脚本的基本概念、使用方法以及注意事项。通过录制脚本,可以快速生成测试用例并进行性能测试。同时也需要注意脚本的准确性和可读性,在后续的测试中可以快速定位问题和改进。