XML响应:
String[] str = new String[] {"Value", "Sum3", "121", "data8input", "in:21::7", "7.00,9.01"};
StringBuilder longStringBuilder = new StringBuilder();
for (String s : str) {
longStringBuilder.append(s).append(" ");
}
String longString = longStringBuilder.toString();
String onlyNumbers = " " + longString.replaceAll("[^0-9.]", " ") + " ";
onlyNumbers = onlyNumbers.replaceAll(" \\. ", "").trim();
while (onlyNumbers.indexOf(" ") > 0) {
onlyNumbers = onlyNumbers.replaceAll(" ", " ");
}
String[] array = onlyNumbers.split(" ");
Double[] doubleArray = new Double[array.length];
for (int i = 0; i < array.length; i++) {
try {
doubleArray[i] = Double.parseDouble(array[i]);
} catch (NumberFormatException e) {
e.printStackTrace();
doubleArray[i] = 0.0;
}
}
Arrays.sort(doubleArray);
int numbersCount = doubleArray.length;
Double[] finalArray;
if (numbersCount >= 2) {
finalArray = new Double[]{doubleArray[numbersCount - 2], doubleArray[numbersCount - 1]};
} else if (numbersCount == 1) {
finalArray = new Double[]{ doubleArray[0]};
} else {
finalArray = new Double[]{};
}
for (Double number : finalArray) {
System.out.println(number);
}
JMeter响应断言: 模式匹配规则:包含 测试模式:无声
失败原因:
<silent><send-sss destination="*1234">TEST mId=dev oId=XXXXXXXXX</send-sms></silent>
任何人都可以让我知道应该发生什么,但是断言它应该失败。我尝试使用几种模式,但对我而言不起作用。
答案 0 :(得分:0)
在Response Assertion中查找字符串的一部分,您需要在模式匹配规则中选择Substring
包含,匹配:Perl5样式的正则表达式
等于,子字符串:纯文本,区分大小写
如果您选择包含(表示正则表达式),则需要转义*
,然后使用
\*1234
答案 1 :(得分:0)
对于XML响应类型,更适合使用XPath Assertion,它允许使用任意XPath queries检查响应。
如果要测试<silent>
标记的存在,则只有相关的XPath查询将像//silent
一样简单。
关于响应断言,其包含模式为PatternMatcher.contains(),因此它需要正则表达式,而不是简单的String,因此您应该使用类似.*silent.*
作为模式。
有关使用JMeter断言定义自定义通过/失败标准的更多信息,请参见How to Use JMeter Assertions in Three Easy Steps文章。