JMeter实战项目脚本录制最佳实践(含BadBoy录制方式)
- 人工智能
- 2025-09-16 20:24:02

JMeter 实战项目脚本录制最佳实践(含 BadBoy 录制方式) 一、项目背景
在软件测试过程中,使用 JMeter 进行性能测试和功能测试是常见的操作。本实战项目将详细介绍如何使用 JMeter 自带工具以及 BadBoy 进行脚本录制,并完善脚本以进行有效的压测。
二、JMeter 自带工具脚本录制流程 第一步:增加录制组件打开 JMeter,在测试计划中右键点击,选择“添加” -> “非测试元件” -> “HTTP(S) Test Script Recorder”。这一组件是实现脚本录制的核心,它将作为代理服务器来捕获浏览器发送的请求。
第二步:设置代理(把 JMeter 作为代理) 获取 JMeter 所在机器的 IP 地址。在命令提示符中输入 ipconfig 命令,得到当前机器的 IP 地址,假设为 192.168.0.17。打开“控制面板”,找到“Internet 选项”。在“Internet 选项”窗口中,切换到“连接”选项卡。点击“局域网设置”按钮,在弹出的“局域网 (LAN) 设置”窗口中,勾选“为 LAN 使用代理服务器”,并在“地址”栏中输入 JMeter 所在机器的 IP 地址 192.168.0.17,在“端口”栏中输入 JMeter 代理服务器将要使用的端口号(后续在 JMeter 中配置)。 第三步:配置 JMeter 的代理服务器 回到 JMeter 的“HTTP(S) Test Script Recorder”界面。在“端口”字段中设置一个未被占用的端口号,例如 8888。在“目标控制器”中选择一个线程组,录制的脚本将被添加到该线程组中。可以先创建一个新的线程组,例如命名为“录制线程组”。可以根据需要配置“排除模式”,用于排除一些不需要录制的请求,如静态资源(图片、CSS、JavaScript 文件等)的请求。常见的排除模式可以是 .*\.(jpg|jpeg|png|gif|css|js)。 第四步:启动服务并且访问项目进行录制 在“HTTP(S) Test Script Recorder”界面点击“Start”按钮,启动 JMeter 代理服务器。打开浏览器,访问要测试的项目。在浏览器中进行各种操作,如登录、浏览页面、提交表单等,JMeter 会自动捕获这些操作产生的请求,并将其添加到选择的线程组中。 三、使用 BadBoy 录制脚本流程 第一步:安装和启动 BadBoy从官方渠道下载 link并安装 BadBoy 工具。安装完成后,启动 BadBoy。
第二步:开始录制 在 BadBoy 的地址栏中输入要测试项目的 URL,然后按回车键访问该网站。点击 BadBoy 界面上的“Record”按钮,开始录制操作。在浏览器窗口中进行各种操作,如点击链接、填写表单、提交数据等。BadBoy 会实时记录每一个操作步骤。 第三步:停止录制并保存脚本 完成所有需要录制的操作后,点击 BadBoy 界面上的“Stop”按钮,停止录制。点击“File” -> “Save As”,将录制的脚本保存为 .bbb 格式的文件。 第四步:将 BadBoy 脚本导入 JMeter 打开 JMeter,在测试计划中右键点击,选择“添加” -> “非测试元件” -> “BadBoy 录制的脚本导入器”。在“BadBoy 录制的脚本导入器”界面中,点击“浏览”按钮,选择之前保存的 .bbb 格式的文件。点击“导入”按钮,BadBoy 录制的脚本将被导入到 JMeter 中。 四、完善脚本 1. 调试接口直到完成无论是使用 JMeter 自带工具还是 BadBoy 录制的脚本,录制完成后都需要检查线程组中的请求,删除一些不必要的请求(如之前排除模式未过滤掉的静态资源请求)。对每个请求进行调试,确保请求的参数、请求方法等设置正确。可以通过“查看结果树”监听器查看每个请求的详细信息,包括请求的 URL、请求头、请求参数和响应内容等。
2. 接口关联:正则,JSONPath 正则表达式提取器:如果前一个接口的响应中包含后一个接口需要使用的数据,可以使用正则表达式提取器进行关联。例如,前一个接口的响应内容为 {"token": "abc123"},要提取 token 的值,可以在该接口下添加“后置处理器” -> “正则表达式提取器”,在“引用名称”中填写 token,“正则表达式”填写 "token": "([^"]+)",“模板”填写 $1$,“匹配数字”填写 1。JSONPath 提取器:对于 JSON 格式的响应,使用 JSONPath 提取器更为方便。例如,要提取上述 JSON 响应中的 token 值,可以在该接口下添加“后置处理器” -> “JSON 提取器”,在“名称”中填写 token,“JSON 路径表达式”填写 $.token,“匹配数字”填写 1。在后续接口中,使用 ${token} 来引用提取的值。 3. 用【用户定义的变量】或【HTTP 请求默认值】提取 IP 或端口 用户定义的变量:在测试计划中添加“配置元件” -> “用户定义的变量”,在“名称”列中填写 server_ip 和 server_port,在“值”列中分别填写服务器的 IP 地址和端口号。在后续的 HTTP 请求中,使用 ${server_ip} 和 ${server_port} 来引用这些值。HTTP 请求默认值:在测试计划或线程组中添加“配置元件” -> “HTTP 请求默认值”,在“服务器名称或 IP”字段中填写服务器的 IP 地址,在“端口号”字段中填写端口号。这样,后续的 HTTP 请求将默认使用这些值。 4. 需要对登录做 CSV 参数化处理:可以用少量的用户 创建一个 CSV 文件,例如 users.csv,内容格式如下: username,password user1,pass1 user2,pass2 user3,pass3 在登录接口所在的线程组中添加“配置元件” -> “CSV 数据文件设置”。在“CSV 数据文件设置”界面中,“文件名”填写 users.csv,“文件编码”选择合适的编码(如 UTF-8),“变量名称”填写 username,password。在登录接口的请求参数中,使用 ${username} 和 ${password} 来引用 CSV 文件中的数据。 5. 加聚合报告或者其他的报告在测试计划中添加“监听器” -> “聚合报告”,它可以统计每个请求的响应时间、吞吐量、错误率等信息。还可以根据需要添加其他监听器,如“图形结果”、“汇总报告”等,以更直观地展示测试结果。
6. 增加【事务控制器】(注意打勾),【仅一次控制器】,有可能要加【吞吐量控制器】 事务控制器:在需要统计一组请求的总响应时间和吞吐量的地方添加“逻辑控制器” -> “事务控制器”,勾选“生成父样本”。例如,将登录和进入主页的请求放在一个事务控制器中,用于统计整个登录流程的性能指标。仅一次控制器:在需要某个请求只执行一次的地方添加“逻辑控制器” -> “仅一次控制器”。例如,登录请求通常只需要执行一次,将登录请求放在仅一次控制器中。吞吐量控制器:如果需要控制某个请求或一组请求的执行频率,可以添加“逻辑控制器” -> “吞吐量控制器”。设置“目标吞吐量”和“计算模式”,以实现对吞吐量的精确控制。 五、增加断言为了确保接口的响应符合预期,需要添加断言。例如,在登录接口中添加“响应断言”,设置“要测试的响应字段”为“响应文本”,“模式匹配规则”为“包含”,“测试模式”为“登录成功”。这样,当登录接口的响应文本包含“登录成功”时,断言通过;否则,断言失败。
六、开始做压测:并发为了模拟大量用户同时访问系统的情况,需要设置并发用户数。可以使用“同步定时器”来实现并发。
在需要并发执行的请求所在的线程组中添加“定时器” -> “同步定时器”。在“同步定时器”界面中,设置“集合点数量”为要并发的用户数,例如 100。当达到指定数量的线程到达集合点时,这些线程将同时释放,模拟并发访问。调整线程组的“线程数”、“循环次数”和“Ramp - Up Period(秒)”等参数,以控制测试的规模和持续时间。例如,设置“线程数”为 100,“循环次数”为 10,“Ramp - Up Period(秒)”为 10,表示在 10 秒内启动 100 个线程,每个线程循环执行 10 次请求。通过以上步骤,可以完成一个完整的使用 JMeter 自带工具和 BadBoy 进行脚本录制、完善和压测的过程,对项目的性能和功能进行有效的测试。
JMeter实战项目脚本录制最佳实践(含BadBoy录制方式)由讯客互联人工智能栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“JMeter实战项目脚本录制最佳实践(含BadBoy录制方式)”