news 2026/4/3 4:42:16

第三方手机应用CNAS/CMA软件测试机构【Gatling的三个错误处理机制:tryMax、exitBlockOnFail和exitHereIfFailed】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第三方手机应用CNAS/CMA软件测试机构【Gatling的三个错误处理机制:tryMax、exitBlockOnFail和exitHereIfFailed】

Gatling性能测试的tryMax、exitBlockOnFail和exitHereIfFailed是三个用来控制虚拟用户执行流程的函数,在处理预期可能失败的操作时比较重要。区别是错误处理和失败后的流程走向。

Gatling DSL描述的是虚拟用户的行为链,这些机制是在行为链上设定的流程控制规则。

tryMax:重试机制。为一段可能失败的操作提供“多次尝试”的机会。块级作用域。控制其包裹的整个代码块。如果块内所有尝试都失败,则继续执行tryMax之后的链式步骤。处理不稳定但可恢复的操作,如获取一个可能过期的Token、重试一个偶发失败的支付请求。 只能对链式元素(如HTTP请求、动作)生效。不能直接包装纯Scala控制流代码(如if判断)。

exitBlockOnFail:快速失败和退出。将一段代码块声明为“重点区块”,其内的首个失败会立即跳出该区块。 块级作用域。控制其包裹的整个代码块。一旦失败,立即退出该代码块,并继续执行exitBlockOnFail之后的步骤。保护前置重点步骤。如,登录失败后,后续的查询、下单等操作无需也不应再执行。常和tryMax结合使用,实现“重试直到成功,否则提前退出重点流程”。

exitHereIfFailed:立即结束用户。检查至此虚拟用户是不是已失败,如果失败则立即优雅地结束该虚拟用户实例。点状检查。它是一个检查点,影响的是整个虚拟用户的存续。如果检查点之前存在未处理的失败,则结束该用户会话,不再执行后续任何步骤。在业务流程的重点节点进行最后检查,避免无意义的后续操作浪费资源。如,重要购物车加载失败后,直接结束用户,而不是继续“模拟”结账。检查的是用户状态,而不是前一步骤的简单结果。一般和tryMax和exitBlockOnFail组合,用于处理经过重试后仍无法恢复的致命失败。

组合使用

tryMax的重试思路

// 尝试最多3次来执行这个HTTP请求链 tryMax(3) { // 重试块开始 exec(http("Get Token") .get("/api/token") .check(jsonPath("$.token").saveAs("authToken"))) } // 重试块结束 // 不管重试成功和否,虚拟用户都会继续执行到这里

重点:每次重试都会完整执行块内所有步骤。某次尝试成功,就立即跳出tryMax块,继续执行后续步骤。

文章来源:卓码软件测评

精彩推荐:点击蓝字即可
软件负载测试API自动化测试软件测试第三方软件测试软件性能测试软件测试机构

exitBlockOnFail的区块保护

exitBlockOnFail { // 重点区块开始:任何失败都将导致退出本区块 exec(login) // 登录 .exec(loadDashboard) // 加载仪表板 } // 重点区块结束 // 只有在重点区块完全成功的情况下,才会执行到这里的“浏览商品”步骤 exec(browseProducts)

这是要么全做,要么到此为止的思路。保证了后续步骤(如browseProducts)的执行。

exitHereIfFailed的检查

exitHereIfFailed本身不执行任何操作,只做状态检查。功能是和错误处理机制结合的。

val scn = scenario("My Scenario") .exec(login) .exitBlockOnFail { exec(addToCart) .exec(checkout) } // 检查点:如果之前exitBlockOnFail块因失败而退出,则用户在此结束 .exitHereIfFailed // 只有重点购物流程完全成功的用户,才会继续执行支付步骤 .exec(makePayment)

在这个组合中exitBlockOnFail负责在失败时跳过checkout,而exitHereIfFailed就保证跳过checkout的用户不会去执行makePayment。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/12 23:41:31

Vue.js 3.0 终极发展指南:现代前端框架的完整进化路线

Vue.js 3.0 终极发展指南:现代前端框架的完整进化路线 【免费下载链接】animateplus A animation module for the modern web 项目地址: https://gitcode.com/gh_mirrors/an/animateplus Vue.js 3.0 作为现代前端开发的核心框架,以其卓越的性能和…

作者头像 李华
网站建设 2026/3/30 3:51:31

SEMIONE芯电元 PED3008MA PDFN3.3*3.3-8L 电源管理

PED3008MA采用先进的沟槽技术&#xff0c;提供优异的Rds(on)(氧)和低栅极电荷。它可用于多种应用。 通用特性 Vos-30V,lo-35A 导通电阻(开启)<10m2VGs-10V 导通电阻(开启)<15毫欧VGs-4.5伏 高功率与电流处理能力 已获得无铅产品认证 表面贴装封装 应用领域 PWM应用 负载开…

作者头像 李华
网站建设 2026/3/31 18:59:28

如何构建2025年人工智能实施路线图?

据调查&#xff0c;70%的企业的人工智能&#xff08;AI&#xff09;投入都只带来了微不足道的回报。问题的根源并非技术本身&#xff0c;而是缺乏一套结构化的落地方法。 高德纳咨询公司预测&#xff0c;到 2026 年&#xff0c;30% 的生成式人工智能项目会在概念验证阶段后被搁…

作者头像 李华
网站建设 2026/3/31 4:56:26

利用PyTorch-CUDA-v2.7镜像实现YOLOv11模型的GPU加速推理

利用PyTorch-CUDA-v2.7镜像实现YOLOv11模型的GPU加速推理 在智能安防摄像头实时识别行人、工业质检产线毫秒级缺陷检测的背后&#xff0c;一个共通的技术挑战浮出水面&#xff1a;如何让越来越复杂的深度学习模型&#xff0c;在保证高精度的同时依然跑得足够快&#xff1f;特别…

作者头像 李华
网站建设 2026/4/2 22:06:54

2025年底总结!北京AI薪酬报告大揭秘:AI领域高薪秘诀全曝光,零基础程序员大模型入局指南!

北京人社局发的《2025 年北京市人力资源市场薪酬状况报告》 大家看到了吗&#xff1f;人工智能领域真的太高薪了&#xff0c;也难怪越来越多的程序员找到我们提升自己。 最近很多程序员朋友都已经学习或者准备学习 AI 大模型&#xff0c;后台也经常会有小伙伴咨询学习路线和学习…

作者头像 李华
网站建设 2026/3/31 17:20:24

东莞非标自动化设备工厂研发部门10个SolidWorks设计如何共享一台云服务器

在东莞非标自动化设备工厂的研发部门中&#xff0c;SolidWorks设计团队的协同工作效率直接影响项目进度和产品质量。随着工业4.0的推进&#xff0c;10名设计师共享云服务器实现三维模型协同开发已成为行业趋势。若要让10个SolidWorks设计人员共享一台云服务器&#xff0c;可通过…

作者头像 李华