在jmeter中使用javascript脚本

工作上遇到一个压力测试的需求,需要测试几个考试相关的接口。其中有一个获取试题详情的接口,和一个提交答题信息的接口。后一个接口以上一接口的返回内容为参数,添加上用户的答案即可。jmeter提供了非常多的方式可以实现该需求,这里只记录如何使用javascript来处理。

取出请求响应内容

在获取试题详情的接口上添加post processor,将返回的内容保存到变量questionItem上,以便进行后续处理
官方文档:https://jmeter.apache.org/usermanual/component_reference.html#JSON_Extractor
在这里插入图片描述

在这里插入图片描述

使用javascript代码处理

还是在该接口上添加post processor,注意需要在上一步添加的提取器的后面
官方文档:https://jmeter.apache.org/usermanual/component_reference.html#JSR223_PostProcessor
在这里插入图片描述
语言这里选择javascript
在这里插入图片描述
填写如下代码,代码中的vars.get("questionItem")是取出第一步中提取出来的变量的内容,字符串格式。使用JSON.parse转成对象后即可进行操作了。处理完成后,再使用JSON.stringify序列化成字符串后更新questionItem的值
需要注意可能没法使用ES6语法,如果报错,可以点击jmeter右上角的三角形图标打开log窗口查看报错原因。
在这里插入图片描述
官方文档说提供了很多的参数,这里只使用了vars这个对象,且只作字符串的存取,方便后面的使用
在这里插入图片描述

使用

由于先前已经使用JSON.stringify序列化成字符串了,所以提交请求的参数中直接使用这个变量即可
在这里插入图片描述

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
JMeter提供了多种脚本编写方式,其最常用的两种是BeanShell和JSR223。下面分别介绍这两种方式: 1. BeanShell BeanShell是一种基于Java的脚本语言,与Java语法类似,但比Java更加灵活。在JMeter,可以使用BeanShell PreProcessor或Sampler来编写自定义脚本。 例如,可以在BeanShell PreProcessor编写一个脚本,将请求参数的某个字段值修改为指定的值,示例代码如下: ``` String originalValue = vars.get("originalValue"); String newValue = "new value"; String requestBody = sampler.getArguments().getArgument(0).getValue(); requestBody = requestBody.replaceAll(originalValue, newValue); sampler.getArguments().getArgument(0).setValue(requestBody); ``` 其,`originalValue`是需要替换的原始值,`newValue`是替换后的新值,`requestBody`是请求体内容。 2. JSR223 JSR223是Java语言规范的一部分,允许在Java虚拟机运行脚本。在JMeter,可以使用JSR223 PreProcessor或Sampler来编写自定义脚本。与BeanShell相比,JSR223支持的脚本语言更多,例如Groovy、JavaScript等。 例如,可以在JSR223 Sampler编写一个Groovy脚本,获取当前时间并保存到JMeter变量,示例代码如下: ``` import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime now = LocalDateTime.now(); String currentTime = now.format(formatter); vars.put("currentTime", currentTime); ``` 其,`DateTimeFormatter`是Java 8新加入的日期时间格式化类,`vars`是JMeter提供的变量存储对象,可以用来保存脚本计算得到的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水晶心泉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值