java - 字符串 `matches` 似乎在 JSR223 断言中不起作用

标签 java jmeter

我有以下断言代码...

Boolean result = prev.getResponseDataAsString().matches(".*Close.*")
System.out.println(result)
if(!result){
    BufferedWriter writer = null;
    try{
        writer = new BufferedWriter( new FileWriter("I:\\failedpayload.txt"))
          writer.write(prev.getResponseDataAsString())
     }
     catch(Exception ex){
        System.out.println(ex.getMessage())
     }
     finally{
        writer.close()
     }
    // System.out.println("Response:"+prev.getResponseDataAsString());
}
AssertionResult.setFailure(!result); 

测试失败,结果为假。但是,当我查看创建的文件时,我会看到那里的搜索字符串。

为什么在创建的文件中Close而不是在创建 boolean 值时Close

最佳答案

这最终成功了......

import java.util.regex.*
...
Pattern aPattern = Pattern.compile(".*Close.*",Pattern.MULTILINE);
Matcher aMatcher = aPattern.matcher(prev.getResponseDataAsString());
Boolean result = aMatcher.find();

基本上,正如评论建议的那样,匹配不适用于多行。

关于java - 字符串 `matches` 似乎在 JSR223 断言中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50358062/

相关文章:

java - 如何从 Java 在 BigQuery 中创建分区表?

jmeter - 如何在 JMeter 中由单个用户读取 csv 的每一行?

java - 在 Beanshell 中获取 RFC1123_time (使用 JMeter)

jmeter - 有没有办法检查某个断言是否失败

cookies - MalformedCookieException : Invalid 'expires' attribute

java - 使用java在内存中创建一个excel文件并作为字节传递以供下载

java - 使用java获取计算机中硬盘的真实序列号

java - Graphics2D:设置颜色时出现空指针异常

java - 使用 JSch 运行 here-doc 命令

java - Jmeter - 无法每秒运行 1000 个并发用户