当前位置: 首页 > 测试知识 > 混合场景压测之LoadRunner同时运行Web、Web Services脚本
混合场景压测之LoadRunner同时运行Web、Web Services脚本
2026-07-20 作者cwb 浏览次数68

LoadRunner进行混合场景压测就是在一个场景中同时运行不同协议的脚本,比如Web(HTTP/HTML)和Web Services(SOAP/REST)以更真实地模拟生产流量。


1. 准备

已经用VuGen录好或编写好两个独立脚本,如:

Web_Script.usr - 根据HTTP/HTML协议录制的页面浏览脚本

WS_Script.usr - 根据Web Services 协议或Web HTTP 调用REST/SOAP的接口脚本

确定脚本可在 VuGen 中正常回放,且关联、参数化已完成。


2. 创建混合场景

打开 Controller,选择Manual Scenario手动场景。

混合场景建议用手动方式,以便独立控制每个脚本组的Vuser数量、负载生成器和运行时设置。


添加脚本组

在Design标签页,找到Scenario Groups窗格,点击Add Group(或右键空白处 Add Group)。

分别添加 Web_Script.usr 和 WS_Script.usr。

每个脚本会作为一个独立的Group显示在列表中。

设置各组的Vuser数量

在Quantity列直接输入每个脚本的并发用户数。

也可以切换到百分比方式:勾选Use Percentage of Total Vusers,然后为每个组分配百分比,总Vuser数由全局设置决定。

3. 配置负载生成器

在Group的Load Generators 列,指定该组脚本运行的负载机。

如果只有本机,则选择localhost;有多台负载机时,保证网络可达并已安装Load Generator服务。

不同协议对负载机的要求相同,只要安装了完整LoadRunner组件即可。


4. 调整运行时设置(Run-time Settings)

每个脚本组都有自己的运行时设置,需要单独配置:

右键点击某个 Group - Details - Run-time Settings,或选中Group后点工具栏上的齿轮图标。


要点:

Think Time:页面浏览脚本可保留录制时的思考时间并回放;接口脚本一般设为忽略思考时间Replay as recorded 或 Ignore think time 视情况而定。

Pacing:控制每次迭代之间的间隔。可通过 Pacing 配合 Vuser 数来调节各个脚本的吞吐量比例。

Log:调试时启用扩展日志,压测时建议仅开启错误日志。

网络仿真:如需要模拟不同带宽,可在此配置,两组可不同。

超时设置:Web Services 脚本可能需要更大的请求超时,单独在该脚本的运行时设置中调整。


5. 设定场景执行计划(Schedule)

混合场景推荐使用 Scenario Schedule(按场景计划),让所有 Vuser 一起按全局时间表启动和停止:

在 Design 标签页中,找到 Schedule 区域(一般靠右)。

选择 Scenario 方式(而不是 Group)。


设置:

Ramp Up:逐步加载所有 Vuser,如每 15 秒启动 5 个。

Duration:所有 Vuser 不断运行的时间,如 10 分钟。

Ramp Down:逐步停止。

如果确实需要让两组 Vuser 有不同的启动时间如先启动接口用户,再启动页面用户,可切换为 Group Schedule,然后为每个Group独立定义Ramp Up/Down及Duration。


6. 运行和监控

切换到 Run 标签页,点击Start Scenario。

观察运行图:控制器会同时显示不同组的 Vuser 状态、事务响应时间、吞吐量等。

可添加自定义监控:

跨脚本的事务混合统计,可在 Analysis 中合并图表。

在 Run 视图中可按 Group 挑选数据,方便快速定位问题。


7. 精确控制混合比例

要模拟真实流量中 Web 和 Web Service 请求的 TPS 比例(如 70% 页面请求 + 30% 接口请求),可以通过组合 Vuser 数量、Pacing 和迭代次数来实现:

调整 Pacing 使得接口脚本平均每秒发出更多请求,从而用更少的 Vuser 达到所需 TPS。

压测前先做一轮校准:单独运行每个脚本,测量单 Vuser 的平均 TPS,然后按比例反推所需的 Vuser 数量。


8. 常见问题

协议冲突:如果两个脚本都用到 HTTP,且录制时浏览器或 API 客户端的 User-Agent、Keep-Alive 等设置不同,回放可能互相干扰。建议分别在运行时设置中模拟对应的浏览器/客户端头信息。

IP 欺骗:如果启用了 IP 欺骗,所有脚本组会共享同一个 IP 池,除非各自指定不同的生成器或专家设置,一般不影响混合压测。

日志分析:运行结束后,在 Analysis 中可通过Group Name方面拆分报告,查看 Web 和 Web Services 各自的表现。



在LoadRunner Controller中同时运行Web和Web Services脚本本质上就是多协议混合场景:

用手动场景添加不同 .usr脚本的组;

分别配置各组的运行时设置(思考时间、Pacing 等);

通过全局或分组计划统一调度;

结合 Vuser 数量和 Pacing 精确模拟混合TPS比例。


文章标签: 软件测试 测试工具 压力测试
咨询软件测试