当前位置: 首页 > news >正文

JMeter---BeanShell实现接口前置和后置操作

在JMeter中,可以使用BeanShell脚本来实现接口的前置和后置操作。

下面是使用BeanShell脚本实现接口前置和后置操作的步骤:

1、在测试计划中添加一个BeanShell前置处理器或后置处理器。

右键点击需要添加前置或后置操作的接口请求,选择"Add" -> “Pre Processors” 或 “Add” -> “Post Processors” -> “BeanShell PostProcessor”。

在这里插入图片描述

2、在BeanShell脚本中编写前置或后置操作逻辑。

可以使用Java语法来编写脚本。在前置处理器中,可以使用变量来设置请求参数或设置全局变量。在后置处理器中,获取响应结果并进行相应的处理。

例如,通过vars.put(“myVariable”, “value”);你可以将一个变量设置为"value"。还可以使用prev.getResponseDataAsString()来获取前一次请求的响应结果。

运行测试计划。在每个请求执行前或执行后,BeanShell脚本都会被执行。

需要注意的是,BeanShell脚本在每个请求执行前或执行后都会被执行一次。因此,如果在前置处理器中设置了某个变量,在后置处理器中可以获取到该变量的值。

下面是一些常见的编写自定义的脚本来执行使用示例:

1、前置处理器示例:设置请求参数

// 在前置处理器中设置请求参数 
String username = "testuser"; 
String password = "password123"; 
vars.put("username", username); 
vars.put("password", password);

这个示例中,将用户名和密码设置为变量,并使用vars.put()方法将它们存储在JMeter的变量中。在接口请求中,你可以使用 u s e r n a m e 和 {username}和 username和{password}引用这些变量。

2、后置处理器示例:提取响应结果

// 在后置处理器中提取响应结果 
String response = prev.getResponseDataAsString(); 
log.info("Response Data: " + response);

这个示例中,使用prev.getResponseDataAsString()方法获取前一个请求的响应结果,并将结果打印出来。你可以使用log.info()方法将结果记录到JMeter的日志中。

3、前置处理器示例:设置全局变量

// 在前置处理器中设置全局变量 
String token = "abcdef123456"; 
props.put("token", token);

这个示例中,将一个全局变量设置为固定的值,并使用props.put()方法将它存储在JMeter的全局属性中。全局变量可以在整个测试计划中共享和访问。

4、后置处理器示例:验证响应结果

// 在后置处理器中验证响应结果 
String response = prev.getResponseDataAsString(); 
if (response.contains("success")) { vars.put("result", "Pass"); 
} else { vars.put("result", "Fail"); 
}

这个示例中,将前一个请求的响应结果转换为字符串,并根据响应结果的内容进行验证。根据不同的验证结果,将一个名为"result"的变量设置为"Pass"或"Fail"。

以上示例只是演示了BeanShell脚本在前置和后置处理器中的一些用法。可以根据具体的需求编写更复杂的脚本来实现想要的操作。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

http://www.lryc.cn/news/241819.html

相关文章:

  • 【Linux】共享内存
  • 五、双向NAT
  • P1028 [NOIP2001 普及组] 数的计算
  • 浅析三相异步电动机控制的电气保护
  • Java设计模式系列:单例设计模式
  • 开拓新天地:探讨数位行销对医药产业医病连结的影响
  • [tsai.shen@mailfence.com].faust勒索病毒数据怎么处理|数据解密恢复
  • Peter算法小课堂—前缀和数组的应用
  • 线性表之链式表
  • [Docker]十.Docker Swarm讲解
  • 相机机模组需求示例
  • Uniapp 微信登录流程解析
  • 红旗Asianux Server Linux V8 安装万里数据库(GreatSQL)
  • 一文2000字使用JMeter进行接口测试教程!(建议收藏)
  • Spark---介绍及安装
  • uni-app:实现request请求的递归(设置request请求的访问次数),并且调用自定义方法给出返回值
  • 数据结构-归并排序+计数排序
  • Qml使用cpp文件的信号槽
  • 聚类笔记:HDBSCAN
  • 【Python】批量将PDG合成PDF,以及根据SS号重命名秒传的文件
  • 2023亚太杯数学建模A题思路 - 采果机器人的图像识别技术
  • 3、LeetCode之无重复字符的最长子串
  • CONDITIONS EVALUATION REPORT-解决方案
  • 计算机网络——路由
  • python+requests+pytest+allure自动化框架
  • css3
  • 超级应用平台(HAP)起航
  • cocos2dx ​​Animate3D(二)
  • 基于java技术的社区交易二手平台
  • (Matalb回归预测)GA-BP遗传算法优化BP神经网络的多维回归预测