JavaFaker在Katalon中生成英国邮编抛出无法解析指令错误如何解决
根因说明
该报错是JavaFaker与Katalon内置依赖版本不兼容导致的:英国邮编的生成规则使用了复杂度较高的正则表达式,JavaFaker处理该正则的regexify功能依赖3.5及以上版本的commons-lang3库,而Katalon内置的commons-lang3版本低于要求,无法解析对应正则。其他地区邮编正则规则更简单,所以可以正常生成。
可用解决方案
- 方案1:优先加载高版本
commons-lang3依赖- 下载版本≥3.5的
commons-lang3jar包,放入项目的Drivers文件夹 - 打开Katalon项目设置,进入「外部库」页面,添加刚放入的jar包,勾选优先加载项目内依赖
- 若仍不生效,可在Katalon启动参数中添加
-Djava.endorsed.dirs=./Drivers,重启Katalon后运行原有代码即可
- 下载版本≥3.5的
- 方案2:直接调用正则生成方法绕过内置规则
不需要修改依赖,直接使用如下代码生成英国邮编即可:import com.github.javafaker.Faker Faker faker = new Faker() String ukPostcode = faker.regexify("[A-PR-UWYZ]([A-HK-Y][0-9][ABEHMNPRVWXY0-9]?|[0-9][ABCDEFGHJKPSTUW0-9]?) [0-9][ABD-HJLNP-UW-Z]{2}") println(ukPostcode) - 方案3:升级JavaFaker到1.0.2及以上版本
新版JavaFaker已修复英国邮编正则的兼容问题,导入对应jar包后,在Katalon的测试用例VM参数中添加--add-opens java.base/java.lang=ALL-UNNAMED即可正常运行原有代码。
内容的提问来源于stack exchange,提问作者DanUK
相关产品推荐
相关产品推荐

