`

JMeter 压力测试使用函数和 CSV 文件参数化 json 数据

 
阅读更多

在 http Load Testing 中,json 数据的提交是个让人头疼的问题。本文详细介绍如何进行 JMeter 的 json 测试提交,以及如何将其参数化。 
        Step 1 http json 请求采样器的录制 
        这个工具很多,可以使用 JMeter 代理录制,也可以使用 Badboy。该采样器录制好以后如下图所示: 
录制好采样器 
        Step 2 为该采样器添加 HTTP 信息管理器 
        鼠标右击该采样器,右键菜单选择 "添加" -> 配置元件 -> HTTP 信息头管理器,然后信息头添加一条名称为 Content-Type,值为 application/json 即可: 
HTTP信息头管理器
        添加好 HTTP 信息管理器之后,选中该采样器,编辑其 Content encoding 为 UTF-8:
HTTP请求的content encoding设置
        Step 3 为该采样器添加响应断言 
        比如请求返还的 json 串里,"status":0 代表处理成功,status 值为其他表示各种处理失败。那么鼠标右击该采样器,右键菜单选择 "添加" -> 断言 -> 响应断言,要测试的响应字段选中 "响应文本",模式匹配规则选中 "Substring",要测试的模式添加并编辑其内容为 "status":0。 
响应断言
        Step 4 编辑采样器的 json 格式 
        选中该采样器,Parameters 叶项里复制该 json 串,然后点击 Body Data 叶项,粘贴该 json 串于其中的输入域中,最后调整 json 数据的展现格式如下图所示: 
调整json格式
        这时可以进行 http json 提交了,但是数据还都是写死的。那么怎么样把这些 json 数据参数化呢,就像其他非 json 提交的采样器一样? 
        Step 5 使用函数将 http json 数据参数化 
        像其他采样器一样使用函数助手生成一个引用字符串,比如 ${__Random(0,9,random_num_0_9)},它的作用是随机生成 0 - 9 之间的一个数字。 
        然后编辑 Body Data 里的 json 串里需要参数化的地方,使用 ${__Random(0,9,random_num_0_9)} 覆盖需要参数化的部分: 
使用函数将 http json 数据参数化 
        Step 6 使用 CSV Data Set Config 将 json 数据参数化 
        右键单击 Thread Group,右键菜单选择 "添加" -> 配置元件 -> CSV Data Set Config,Filename 输入 e:/defonds/work/20141105/json.txt(要使用绝对路径),Variable Names 输入 cityCode,cityName,subCategoryCode,subCategoryName,编辑 e:/defonds/work/20141105/json.txt 内容如下图所示: 
json.txt内容
        最后编辑 Body Data 里的 json 串里需要参数化的地方,使用 ${cityCode} 等参数覆盖需要参数化的部分: 
json中覆盖需要参数化的部分 
        这时候你就可以使用参数化的 json 串进行压力测试啦: 
可以进行压力测试了 

分享到:
评论

相关推荐

    Jmeter关联实现及参数化使用解析

    使用CSV文件可以实现参数化,用户可以通过右击线程组--添加--配置文件--csv数据文件设置,实现参数化。 五、总结 关联和参数化是Jmeter必备技能之一,必须掌握关联可以扩展到实现一些常见的业务场景,参数化可以...

    Jmeter性能测试常见问题集

    4. **参数化**:用户参数元件可以用于简单的参数化,而CSV Data Set Config适合处理大量数据或复杂数据结构。 5. **时间参数**:可以使用`__time()`函数结合格式化(如`__timeShift()`)来生成当前时间参数。 6. **...

    Jmeter性能测试进阶课件

    2. 使用CSV Data Set Config配置元件,设定文件名、编码格式和变量名,将文件内容引入到测试脚本中。 **关联(提取数据):** 1. 正则表达式提取器:通过正则表达式从响应中提取所需值,设置引用名称、正则表达式、...

    jmeter接口测试

    其中接口测试的简单操作包括做 HTTP 脚本(发 GET/POST 请求、加 Cookie、加 Header、加权限认证、上传文件)、做 WebService 脚本、参数化、断言、关联(正则表达式提取器和处理 JSON-JSON Path Extractor)和 ...

    Jmeter接口测试113【2023-05-06】

    JMeter提供多种参数化工具,如CSV Data Set Config,可以从CSV文件中读取数据,为每次迭代提供不同的输入值。此外,还可以使用属性变量、用户定义的变量或函数助手对话框来实现更复杂的参数化策略。参数化有助于提高...

    JMeter中文手册.zip

    例如,CSV Data Set Config可以从CSV文件中读取数据,用在动态参数化测试中。 5. **定时器** 定时器可以控制每个请求之间的时间间隔,模拟真实用户的操作延迟。常见的定时器有固定延迟定时器、均匀随机定时器等。 ...

    jmeter测试脚本

    2. 参数化:使用CSV Data Set Config或者函数助手对话框,可以将静态值替换为动态输入,实现数据驱动测试,增加测试的覆盖率和真实性。 3. 正则表达式提取器:用于从服务器响应中提取信息,例如Session ID或验证码,...

    Jmeter 学习资料

    JMeter支持CSV Data Set Config,可以读取数据文件,用于参数化请求。这份文档将详细解释如何设置和使用数据驱动测试。 5. **Jmeter-HTTP请求之content-type.docx**: 在进行HTTP请求时,Content-Type头非常重要,...

    Jmeter入门与高级示例 #用代码,改变世界#.pdf

    CSV数据文件常用于参数化测试,可以为每个请求提供不同的输入值。在Jmeter中,首先创建CSV文件,然后添加“CSV Data Set Config”配置元件,设置相关参数,如文件路径、变量名等。在Sampler中使用`${var}`引用CSV...

    Jmeter 5.4.1 性能 接口 软件测试

    2. **参数化测试**:使用CSV Data Set Config或函数助手,实现接口请求参数的动态化,进行多轮测试。 3. **响应验证**:通过断言组件(如响应断言、JSON Path断言)验证接口返回数据的正确性。 4. **数据提取**:...

    JMeter核心技术全集

    - 参数化设置:通过CSV Data Set Config等组件动态传递参数。 - 断言验证:确保返回的数据格式正确无误。 - 负载测试:逐渐增加并发用户数量,观察系统表现。 #### 五、性能调优与问题排查 - **调优策略**: -...

    jmeter3.3安装包

    8. **变量和函数**:JMeter支持使用变量和函数来动态地创建测试计划,增强了测试的灵活性和复用性。 9. **测试计划录制和回放**:JMeter的代理服务器功能可以记录真实用户的浏览器行为,生成测试脚本,然后在后续的...

    Jmeter接口测试+压力测试

    5. **参数化**:对于动态参数,可以使用用户定义的变量、函数生成器或读取文件。例如,通过CSV Data Set Config配置元件从文件读取数据,实现参数的随机化或多样化。 6. **断言**:断言用于验证响应结果是否符合...

    那些年,追寻Jmeter的足迹--第1版本-unlocked.pdf

    - **从 txt 取数,在请求中中文乱码**:确保数据文件和 JMeter 都使用相同的编码。 **10.6 CSV 使用技巧** - **技巧**: - **csv 中发现取值不完整**:检查 CSV 文件的格式。 - **从 csv 中获取带引号的数据和...

    apache-jmeter-3.1

    对于需要动态数据的场景,可以使用CSV Data Set Config或者JMeter的内置函数来提供参数。 为了验证API响应,可以添加响应断言,例如断言响应状态码是否为200,或者响应体是否包含预期的数据。监听器如聚合报告、...

    求职有道-python相关题目

    使用Python编写代码,我们可以自由地实现任何我们需要的功能,如参数化、数据驱动,支持多种数据格式(JSON、CSV、Excel、YAML等),并能进行复杂的断言检查,包括条数、正确性和准确性。 2. Python接口自动化框架...

    1_1_1_1_1_1_1_1_1_1_1_1_1_2_1_1_1_1_面试问题以及答案.doc

    【知识点详解】 1. 软件测试行业经历:面试者提到自己... - 使用CSV数据文件 - 函数生成器配合实现参数化 以上就是面试中涉及的软件测试相关知识点,涵盖了个人技能、项目经验、测试流程、接口测试方法等多个方面。

    jmeter零基础入门到精通

    15. 配置元件之CSV Data Set Config参数化? ?16. 函数助手参数化??17. HTTP请求之xml格式数据请求??18. HTTP请求之json格式数据请求? ?19. 配置元件之HTTP信息头管理器??20. 配置元件之HTTP Cookie管理器? ?21. 前置...

    接口测试100%这样问

    - **参数化**:支持多种方式,如CSV数据文件驱动、函数助手等。 - **线程组作用**:控制并发用户数量。 - **正则表达式**:用于提取响应中的关键信息。 - **函数使用**:如__int、__time等内置函数。 - **测试...

Global site tag (gtag.js) - Google Analytics