jmeter 创建100个现场组,每个线程组里面有1个http请求,并针对每个http请求响应头进行断言

news/2025/11/2 16:12:40/文章来源:https://www.cnblogs.com/ychun/p/19176205

View Post

jmeter 创建100个现场组,每个线程组里面有1个http请求,并针对每个http请求响应头进行断言

 

import org.apache.jmeter.control.LoopController
import org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy
import org.apache.jmeter.testelement.TestPlan
import org.apache.jmeter.threads.ThreadGroup
import org.apache.jorphan.collections.HashTree
import org.apache.jmeter.save.SaveService
import org.apache.jmeter.testelement.TestElement
import org.apache.jmeter.assertions.ResponseAssertion
import java.io.FileOutputStreamtry {log.info("开始创建符合规范的JMX文件...")// 初始化SaveService
    SaveService.loadProperties()// 创建测试计划 - 使用JMeter的标准方式def testPlan = new TestPlan("标准测试计划")testPlan.setEnabled(true)testPlan.setProperty(TestElement.GUI_CLASS, "TestPlanGui")testPlan.setProperty(TestElement.TEST_CLASS, "TestPlan")def testPlanTree = new HashTree()testPlanTree.add(testPlan)def threadGroupsTree = new HashTree()// 创建3个线程组(1..3).each { i ->// 创建循环控制器def loopController = new LoopController()loopController.setEnabled(true)loopController.setName("Loop Controller")loopController.setLoops(1)loopController.setContinueForever(false)loopController.setProperty(TestElement.GUI_CLASS, "LoopControlPanel")loopController.setProperty(TestElement.TEST_CLASS, "LoopController")// 创建线程组def threadGroup = new ThreadGroup()threadGroup.setEnabled(true)threadGroup.setName("线程组-${i}")threadGroup.setNumThreads(1)threadGroup.setRampUp(1)threadGroup.setScheduler(false)threadGroup.setProperty(TestElement.GUI_CLASS, "ThreadGroupGui")threadGroup.setProperty(TestElement.TEST_CLASS, "ThreadGroup")threadGroup.setProperty("ThreadGroup.on_sample_error", "continue")threadGroup.setSamplerController(loopController)// 创建HTTP请求def httpSampler = new HTTPSamplerProxy()httpSampler.setEnabled(true)httpSampler.setName("HTTP请求-${i}")httpSampler.setDomain("10.52.1.60")httpSampler.setPort(8443)httpSampler.setProtocol("https")httpSampler.setPath("/download/195")httpSampler.setMethod("GET")httpSampler.setFollowRedirects(true)httpSampler.setUseKeepAlive(true)httpSampler.setProperty(TestElement.GUI_CLASS, "HttpTestSampleGui")httpSampler.setProperty(TestElement.TEST_CLASS, "HTTPSamplerProxy")// 创建响应断言 - 检查响应头是否包含attachmentdef responseAssertion = new ResponseAssertion()responseAssertion.setEnabled(true)responseAssertion.setName("检查响应头attachment")responseAssertion.setProperty(TestElement.GUI_CLASS, "AssertionGui")responseAssertion.setProperty(TestElement.TEST_CLASS, "ResponseAssertion")// 设置断言属性 - 使用正确的方法名responseAssertion.setTestFieldResponseHeaders()  // 测试响应头responseAssertion.setToContainsType()            // 包含匹配// 添加测试模式 - 使用正确的方法responseAssertion.addTestString("attachment")    // 匹配模式// 构建HTTP请求的子树(包含断言)def httpSamplerTree = new HashTree()httpSamplerTree.add(responseAssertion)  // 将断言添加到HTTP请求的子树中// 构建循环控制器的子树def loopTree = new HashTree()loopTree.add(httpSampler, httpSamplerTree)  // HTTP请求和它的断言子树
        def tgTree = new HashTree()tgTree.add(loopController, loopTree)threadGroupsTree.add(threadGroup, tgTree)log.info("创建线程组-${i} 并添加attachment断言")}testPlanTree.add(threadGroupsTree)// 保存文件def outputFile = new File("30_standard_test_plan_with_assertion.jmx")FileOutputStream fos = new FileOutputStream(outputFile)SaveService.saveTree(testPlanTree, fos)fos.close()def result = "✅ 带attachment断言的JMX文件创建成功: ${outputFile.absolutePath}"log.info(result)SampleResult.responseData = resultSampleResult.successful = true} catch (Exception e) {def error = "❌ 创建失败: ${e.message}"log.error(error, e)SampleResult.responseData = errorSampleResult.successful = false
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/950577.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3步法让小程序体验更高级:兰亭妙微分享小团队也能做到的设计优化技巧

3步法让小程序体验更高级:兰亭妙微分享小团队也能做到的设计优化技巧第一步:信息架构重塑,搭建清晰 “导航图” 信息架构就像是小程序的 “隐形骨架”,支撑着整个用户体验的大厦。兰亭妙微团队深知,一个混乱无序的…

Redis key 消失之谜

本文从一次生产环境业务服务报错,逐步对问题进行定位,深入分析之后发现导致问题的原因,给出相应的优化方法,提升业务可用性。作者:vivo 互联网存储团队 - Lin Haiwen、Xu Xingbao 本文从一次生产环境业务服务报错…

Blazor 感觉回到了ASP时代?

大家好,我是码农刚子。前几天分享的文章:《ASP.NET Core Blazor简介和快速入门三(布局和路由)》下面,有朋友评论说:这blazor 感觉回到了asp 时代。回想一下ASP时代是什么时候,大家还有没有印象。我2019年出来工…

2025年靠谱的FFU龙骨优质厂家推荐榜单

2025年靠谱的FFU龙骨优质厂家推荐榜单 在洁净室、电子制造、医疗等高端领域,FFU(风机过滤单元)龙骨作为核心支撑结构,其质量直接影响空气净化系统的稳定性和使用寿命。选择一家技术成熟、产能稳定、售后服务完善的…

2025年比较好的三维调节阻尼托底轨TOP品牌厂家排行榜

2025年比较好的三维调节阻尼托底轨TOP品牌厂家排行榜 随着家具行业对功能性与品质要求的不断提升,三维调节阻尼托底轨作为高端抽屉系统的核心部件,其市场需求持续增长。优质的托底轨不仅能实现静音开合、缓冲防夹,…

父子组件联动出现问题的一个bug记录

父子组件联动出现问题的一个bug记录这是Bug是这样,父组件有个部门的树,子组件有个饼图。 初始状态下,部门树默认是查询全部部门,饼图是有数据的,切换不同的部门后,饼图也是有数据的。 但是当部门切回全部时候,饼…

ArkTS语言入门:HarmonyOS应用开发的新基石

ArkTS是HarmonyOS应用开发的推荐语言,它基于TypeScript,并扩展了声明式UI语法。本文将带你全面了解ArkTS语言的基础语法和核心特性,为HarmonyOS应用开发打下坚实基础。一、ArkTS与TypeScript的关系 ArkTS是TypeScri…

大模型越来越多,国产AI的突围之路在哪里?

一、大模型“遍地开花”,同质化的隐忧 过去两年,全球AI行业进入了「大模型百花齐放」时代。OpenAI的GPT系列、Anthropic的Claude、Google的Gemini、Mistral的开源路线……国外大厂纷纷亮剑。与此同时,中国的大模型数…

2025年靠谱的卫浴缓冲隐藏轨厂家最新权威实力榜

2025年靠谱的卫浴缓冲隐藏轨厂家最新权威实力榜在卫浴五金行业,缓冲隐藏轨作为高端橱柜、浴室柜的核心配件,其品质直接影响产品的使用寿命和用户体验。随着消费者对家居品质要求的提升,具备静音、缓冲、承重强等特点…

【2025-10-29】买了周卡

20:00人谁不顾老,老去有谁怜。身瘦带频减,发稀冠自偏。废书缘惜眼,多灸为随年。经事还谙事,阅人如阅川。细思皆幸矣,下此便偷然。莫道桑榆晚,为霞尚满天。——《酬乐天咏老见示》 唐刘禹锡今天又是焦头烂耳的一天…

鸿蒙初开:HarmonyOS 5应用开发环境搭建(DevEco Studio)全指南

鸿蒙初开:HarmonyOS 5应用开发环境搭建(DevEco Studio)全指南 本文将手把手带你完成HarmonyOS 5应用开发的第一步,也是最关键的一步——开发环境的搭建。我们将从系统要求开始,直至在模拟器上成功运行第一个“Hel…

AI智能客服机器人是怎么做出来的?

AI智能客服机器人是怎么做出来的?大家好!今天咱们来聊聊AI智能客服机器人到底是怎么做出来的。如果你好奇这些能7*24小时在线、秒回问题的“数字员工”是如何工作的,或者正考虑为企业搭建一套智能客服系统,这篇文章…

2025年方形真空干燥机工厂权威推荐榜单:圆形真空干燥机/真空干燥机/双锥回转真空干燥机源头厂家精选

在化工、制药等行业的生产线上,一台高效的方形真空干燥机正将一批热敏性物料的含水率精准降至0.5%以下,而能耗较传统设备降低了30%以上。 方形真空干燥机作为现代工业干燥技术的重要组成部分,以其空间利用率高、易于…

2025年深度解析珠海爱尔眼科医院:专业资源配置与区域服务能力评估

本文将从医院规模与硬件配置的维度出发,为读者提供一个有针对性的客观参考。珠海爱尔眼科医院作为粤港澳大湾区重要的专业眼科医疗机构,其基础设施与设备投入直接关系到区域眼健康服务的可及性与质量。随着眼科疾病谱…

2025年10月成都考公培训机构推荐榜单:五大机构综合对比分析

对于许多在成都备考公务员或事业单位的考生来说,选择一家合适的培训机构是提升备考效率的关键一步。无论是应届毕业生缺乏考试经验,还是往届生希望实现职业转型,都期望通过专业指导增强竞争力。当前成都考公培训市场…

2025年10月成都考公培训机构评价报告:多维数据与用户反馈解析

随着公务员和事业单位考试竞争日益激烈,选择一家可靠的培训机构成为许多考生备考过程中的关键环节。对于在成都备考的考生而言,无论是应届毕业生缺乏应试经验,还是往届生寻求职业转型,都需要专业指导来提升竞争力。…

搭建gitea私人服务器

gitlab太大了~~功能虽然多,但是小公司不一定用得到,这时候gitea的好处就展示出来了 二进制下载地址 https://github.com/go-gitea/gitea/releases/ 下载对应的版本的二进制,然后直接启动。正式环境记得配置守护进程…

Kafka关闭日志,启动一直打印日志

前言 本地调试过程中,Kafka一直打印日志,又不好直接关闭,所以寻求关闭日志输出方法 解决 og4j.properties文件追加一句 #设置kafka日志输出级别log4j.logger.org.apache.kafka=ERROR

[Paper Reading] UniME-V2: MLLM-as-a-Judge for Universal Multimodal Embedding Learning

目录UniME-V2: MLLM-as-a-Judge for Universal Multimodal Embedding LearningTL;DRMethodMLLM-as-a-Judge for Hard Negatives MiningMLLM Judgment Based Training FrameworkQ&A (从上面可以找到答案)Experiment…

2025年耐用的轻集料混凝土最新TOP厂家排名

2025年耐用的轻集料混凝土最新TOP厂家排名 随着建筑行业对环保、轻质、高强度材料需求的增长,轻集料混凝土因其优异的性能(如减轻结构自重、提高抗震性、改善保温隔热效果)成为市场热点。2025年,国内轻集料混凝土…