跳转至

最后更新:2026-09-04 01:19

实验27 国赛备赛:性能测试(LoadRunner + JMeter)

27.1 实验目的

  1. 熟悉国赛"任务六 性能测试"的题型与要求(18 分);
  2. 掌握 LoadRunner 脚本录制(事务、检查点、集合点)、回放、参数化、场景设置与结果分析;
  3. 掌握 JMeter 脚本添加(线程组、事务、检查点、集合点)、回放、参数化、场景配置与非 GUI 运行;
  4. 掌握 A13 性能测试报告模板的编写。

27.2 实验环境

  1. 操作系统:Windows 10 / Windows 11;
  2. 工具:LoadRunner 12.55 + JMeter 5.4.3 + 监控工具;
  3. 被测系统:国赛测试系统(系统管理员/采购专员/销售专员登录);
  4. 参考报告模板:A13-性能测试报告模板。

27.3 实验重难点

重点:LoadRunner 与 JMeter 的完整流程(脚本→回放→参数化→场景→结果);事务/检查点/集合点的命名与设置。

难点:参数化的精细要求(唯一编号 uniNo 格式 %04d、随机数字、参数化文件 center.dat 按名称取值同行);场景配置的参数对应(线程数、Ramp-Up、持续时间、思考时间区间 70%-150%)。

27.4 实验内容

27.4.1 国赛"任务六 性能测试"概览

1. 任务描述 了解性能测试的评分点。

2. 实验步骤

  • 步骤 1:任务分值:任务六性能测试共 18 分,评分点:术语定义描述(1 分)、LoadRunner(测试策略 1 + 实施过程 7 + 执行结果 0.5)、JMeter(测试策略 1 + 实施过程 7 + 执行结果 0.5)。

  • 步骤 2:报告要求:根据性能测试情况,参考 A13 模板,截取性能测试过程和结果截图,完成性能测试报告。

为什么性能测试要 LoadRunner 和 JMeter 各考一遍?

LoadRunner 是企业级"收费大厨",JMeter 是开源"家常快手"——两套工具流程一样(脚本→回放→参数化→场景→结果),但操作各异,赛场两把刀都要趁手。

常见错误与排错

  • LoadRunner 部分合计约 8.5 分、JMeter 部分约 8.5 分,偏废任何一套都会丢近半分数;
  • 截图要完整:Summary Report 需截完整结果图,含下方说明和左侧树形结构。

27.4.2 题目1:LoadRunner 性能测试

1. 任务描述 完成 LoadRunner 脚本录制、回放、参数化、场景设置与结果分析。

2. 实验步骤

  • 步骤 1:脚本录制

    • 脚本一 ProductAdd:系统管理员登录 + 新增商品。要求:所有脚本存放 Action;商品名称前 2 位固定值 SP;对新增商品保存操作设事务 T_SPAdd;设检查点(新增商品成功响应正文内容);保存前加集合点 R_SPAdd;
    • 脚本二 PurAdd:采购专员登录 + 新增采购订单 + 保存并提交。仓库、供应商任意选择,商品任选一种;对保存并提交操作设事务 T_PurAdd;设检查点(提交成功响应正文内容)。
  • 步骤 2:脚本回放

    • 脚本一:商品名称前 4 位改为 SPHF,回放成功实现新增商品业务;
    • 脚本二:保存并提交若需关联,使用关联函数 web_reg_save_param_ex(),参数名称 submitId;回放成功实现新增采购订单保存并提交业务。
  • 步骤 3:参数化(脚本一): | 参数 | 类型 | 设置 | | --- | --- | --- | | uniNo | 唯一编号 | 从 1 开始,每个 Vuser 块大小 100,编号格式 %04d | | VuID | Vuser ID | 文本格式 %s | | price1 | 随机数字 | 100-200,格式 %lu | | price2 | 随机数字 | 200-300,格式 %lu |

    商品名称前 4 位固定值 SPCS,后面接 VuID 和 uniNo;脚本迭代 3 次。

  • 步骤 4:参数化(脚本二):

    • 新建参数化文件 center.dat(含 centerId、centerName 两个字段,10 条仓库 id 和名称);
    • 仓库 ID 用 centerId、仓库名称用 centerName,均用 center.dat 文件;选择列使用"按名称"方式,每次迭代顺序取值;centerName 取与 centerId 相同行
    • Amount(随机 100-200,%lu)、Price(随机 50-100,%lu);迭代 3 次。
  • 步骤 5:场景设置

    • 新增商品集合点前加思考时间 30 秒,商品名称前 4 位改 SPCJ;新增采购订单事务前加思考时间 45 秒;
    • 添加负载发生器:本机 localhost、另一台电脑 otherlg;新增商品用 localhost,新增采购订单用 otherlg;
    • 用户分配选用户组模式,场景计划方式选场景,运行模式选实际计划;
    • 思考时间:使用录制思考时间的随机百分比,区间 70%-150%
    • 集合点策略:80% 的运行用户到达时释放,超时 30 秒
    • 全局计划:每个虚拟用户运行前初始化;启动 10 用户(每 5 秒 2 个)执行 5 分钟,再启动 10 用户(每 5 秒 2 个)执行 5 分钟,执行完成停止所有用户(每 5 秒 4 个);
    • 添加性能计数器监测服务器(CPU 利用率、可用内存、硬盘)。
  • 步骤 6:图形结果分析:场景执行完成后截图(Summary Report 截图、windows Resources - RunningVusers 截图,需截完整结果图含下方说明和左侧树形结构)。

事务、检查点、集合点分别像什么?

事务像秒表(给"新增商品"这段操作掐表计时),检查点像验收员(核对响应正文里有没有"成功"字样),集合点像发令枪(等规定数量的"运动员"到齐再一起起跑)。

常见错误与排错

  • 参数化设置精细、最易丢分:uniNo 用唯一编号、格式 %04d,VuID 文本 %s,随机数字区间与 %lu 格式都要照题设置;
  • center.dat 要按名称选择列、每次迭代顺序取值,centerName 必须与 centerId 取同一行,否则仓库名和 ID 对不上;
  • 集合点策略为 80% 的运行用户到达时释放、超时 30 秒,别填错。

27.4.3 题目2:JMeter 性能测试

1. 任务描述 完成 JMeter 脚本添加、回放、参数化、场景配置与非 GUI 运行。

2. 实验步骤

  • 步骤 1:脚本添加:脚本/测试计划名称 SuppAndSale,下加两个线程组:

    • 线程组一 SupplierAdd:系统管理员登录 + 新增供应商。供应商名称前 4 位固定值 GYMC,联系人前 4 位固定值 GLXR;保存操作请求名称"新增供应商保存";事务 T_SuppAdd;检查点 Reg_SuppAdd(新增供应商成功响应正文);保存前集合点 R_SuppAdd;
    • 线程组二 SaleAdd:销售专员登录 + 新增销售订单 + 保存并提交。保存请求名称"销售订单保存"、提交请求名称"销售订单提交";事务 T_SaleAdd;检查点 Reg_SaleAdd(提交成功响应正文)。
  • 步骤 2:脚本回放

    • 线程组一:供应商名称前 4 位改 GYHF,联系人前 4 位改 LXHF,回放成功实现新增供应商业务;
    • 线程组二:保存并提交若需关联,用边界提取器,参数名称 submitId;回放成功实现新增销售订单保存并提交业务。
  • 步骤 3:参数化(线程组一):

    • 供应商名称:前 4 位固定值 GYCS,后面接函数 threadNumRandomString(长度 5,字符 abcdefghijklmnopqrst,结果变量名 ranstr2);
    • 联系人:前 4 位固定值 LXCS,后面接参数 threadNum 和 ranstr2;
    • 联系电话:只参数化后 8 位,Random string 生成长度 8 的任意数字字符串;
    • 迭代 3 次。
  • 步骤 4:参数化(线程组二):

    • 新建参数化文件 customer.dat(含 customerId、customerName,10 条客户 id 和名称);
    • CSV 数据文件设置实现参数化,客户 ID 参数名 customerId、客户名称参数名 customerName;
    • 销售数量用 Random 函数(50-100)、实际销售价用 Random 函数(150-300);
    • 迭代 3 次。
  • 步骤 5:场景配置

    • 思考时间:新增供应商保存前 25 秒、新增销售订单保存前 20 秒、其他步骤 5 秒;
    • 集合点:新增供应商集合点模拟数量 5、超时 20 秒;
    • 新增供应商场景:取样器错误后启动下一进程循环、线程数 10、Ramp-Up 20 秒、持续时间 8 分钟、启动延迟 5 秒;
    • 新增销售订单场景:取样器错误后继续、线程数 20、Ramp-Up 20 秒、循环 5 次;
    • 使用非 GUI 模式运行
  • 步骤 6:图形结果:场景执行完成后截图(Dashboard-Statistics 截图)。

JMeter 里为什么用边界提取器做关联?

保存并提交需要服务器返回的 submitId,就像先在取号机取号、再凭号办业务——边界提取器负责把"号"(submitId)取出来递给下一步。

常见错误与排错

  • 两个线程组的场景参数不同:新增供应商是"启动下一进程循环"、线程数 10、持续 8 分钟;新增销售订单是"继续"、线程数 20、循环 5 次——逐项照题核对;
  • 最后必须用非 GUI 模式运行,别在图形界面里跑正式场景。

27.4.4 编写性能测试报告(A13 模板)

1. 任务描述 按 A13 模板完成性能测试报告。

2. 实验步骤

  • 步骤 1:报告结构(六个部分):
    1. 测试基本概况:背景、目的、范围、常用术语(TPS、响应时间、并发用户数、错误率、CPU/内存利用率的大白话解释);
    2. 测试环境配置:环境说明、服务器/电脑配置(如 CPU 4 核内存 8G)、测试工具(JMeter 5.4.3、任务管理器/nmon、Excel)、测试人员与时间;
    3. 测试内容与场景设计:基础单用户测试、多用户并发测试(核心,50/100 虚拟用户运行 10 分钟)、短时间稳定性测试(30 用户运行 30 分钟);
    4. 测试结果与分析:客观记录数据、对比要求标准、简单分析原因(接口代码优化不足、数据库没加索引等);
    5. 测试结论:分点说明,简洁明了;
    6. 存在问题与优化建议:加索引、优化接口、合理设置线程数、清理冗余数据等(无明显问题则写"未发现明显性能缺陷")。

27.5 实验总结

本次实验完成了国赛"任务六 性能测试"(18 分)的备赛训练:掌握 LoadRunner 与 JMeter 两套工具的完整流程——脚本(事务/检查点/集合点)→ 回放(含关联 submitId)→ 参数化(唯一编号 %04d、随机数字、参数化文件按名称取同行的精细要求)→ 场景配置(思考时间 70%-150%、集合点策略 80%、负载发生器分配、全局计划)→ 结果分析(Summary Report、Dashboard-Statistics),并按 A13 模板完成报告。LoadRunner 和 JMeter 各 8.5 分左右,务必两套都练熟。

27.6 作业提交

  1. 提交地点:吾爱作业网
  2. 提交资料:
    • LoadRunner 场景设计界面截图 + 集合点信息及策略截图;
    • LoadRunner Summary Report + windows Resources 截图;
    • JMeter 两个线程组场景配置截图 + Dashboard-Statistics 截图。
    • 不会做时填写"心得感悟"(1~50 字)。

27.7 知识检测

  • [ ] (填空)LoadRunner 三大组件流程:VuGen(脚本)→ Controller(场景)→ Analysis(结果)。
  • [ ] (填空)脚本二回放若需关联,使用关联函数 web_reg_save_param_ex(),参数名称 submitId
  • [ ] (填空)参数 uniNo 使用唯一编号类型,从 1 开始,编号格式为 %04d
  • [ ] (选择)LoadRunner 思考时间使用录制思考时间的随机百分比,区间是( )。
    • A. 50%-100% B. 70%-150% C. 80%-120% D. 100%-200%
查看解析

正确答案:B。场景设置要求思考时间使用录制思考时间的随机百分比,区间 70%-150%。

  • [ ] (选择)JMeter 场景执行完成后,需截取的结果图是( )。
    • A. Summary Report B. Dashboard-Statistics C. Aggregate Report D. View Results Tree
查看解析

正确答案:B。JMeter 要求 Dashboard-Statistics 截图;Summary Report 是 LoadRunner 的结果图。

本课相关资源

序号 资源名称 类型 说明
1 新建 DOCX 文档.docx 任务文档 LoadRunner+JMeter 题目要求
2 A13-性能测试报告模板.doc 报告模板 报告结构
3 评分标准.docx 评分标准 任务六评分细则

实验素材下载

点击下方链接获取本节课全部资源(含课件、任务清单、安装包等): 🔗 夸克网盘

本站总访问 次 | 访客 人 | 本页阅读