BeanShell 是一种轻量级的脚本语言,嵌入在 Java 中运行,允许开发者动态执行和调试 Java 代码。它在 JMeter 等工具中常用于编写脚本以增强测试功能。BeanShell 提供了一个 Java 语法的脚本环境,支持标准的 Java 语法和特性,同时也允许更灵活和动态的脚本编写。用户可以使用 BeanShell 直接操作 JMeter 的上下文变量,执行自定义的逻辑判断和数据处理。对于熟悉 Java 的用户,BeanShell 是一种方便且强大的扩展工具,可以简化测试自动化和动态配置。
比如在上一篇文章【日出日落时间本地化的坑】中,提到了一个接口返回的日出日落时间戳有问题,实际修复后需要验证测试不同场景是否正确修复,在使用Jmeter做功能测试时,就可以利用 BeanShell 来完成。
 
比如接口返回值如下
 
使用JSON提取器获取日出日落参数
notion image
 
再使用 BeanShell 脚本进行本地化日期的判断
notion image
 
这里有几个注意项
  1. Java 8 的时间类 (Instant, ZoneId, ZonedDateTime, DateTimeFormatter) BeanShell 中可能无法直接使用。可以使用 SimpleDateFormatCalendar 来替代这些类。
  1. 在 JMeter 中,可以通过 vars 对象来获取上下文变量和进行日志记录。
  1. 在 BeanShell 断言失败,可以通过设置 FailureFailureMessage 来标记。
 
验证实际不同经纬度的日出日落时间戳是否正确结果如下。
修复前的接口在北京时间晚上11点多调用接口,-7、-10、+12时区返回结果都有问题,修复后都是正常的。
notion image
 
BeanShell 提供了一个灵活且强大的工具,使我们能够编写动态脚本,以增强测试的灵活性和精确性。无论是对变量进行操作、执行条件判断,还是进行复杂的逻辑处理,BeanShell 都可以满足我们的需求。特别是对于熟悉 Java 编程的用户,BeanShell 的使用将变得非常直观和便捷。希望本文的内容能够帮助读者更好地理解和使用 BeanShell,提升测试自动化的能力和水平。
Java 时间本地化,时区数据库更新日出日落时间本地化的坑
Loading...