- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 JMeter 从网页中检索内容。
我正在寻找的数据在一个 javascript block 中:
(...)
<map id="id1">
<script type="text/javascript">
var name="Lionel Richie";
var song="Hello";
var lyrics="Is it me you're looking for ?";
</script>
(...)
<script type="text/javascript">
var name="Waldo";
</script>
</map>
(...)
假设我想在 map id=id1 的脚本 block 中获取 name
变量的值,
其中还有一个song
变量。
我使用 XPath 提取器来获取脚本内容(CSS/Jquery 不会获取 javascript 内容,因为它不是纯 HTML):
.//map[@id='id1']/script[contains(.,'song')]
XPath 找不到数据,因为我的 HTML 很脏(一些缺少标记结尾的乱七八糟的东西等等......)所以我需要使用 Jtidy 清理它(使用 “Tidy(容错解析器) " 选项)
备注:
- 我不拥有我正在处理的网页。我必须处理这个可怕的 HTML。
- 网页中有许多 maps
元素,每个元素都有一个带有 song
变量的脚本:我不能直接使用正则表达式(据我所知)
问题:
问题是:我的 HTML 包含奇怪的国际字符 wé hà bêêê...(是的,法语,对此感到抱歉)并且 Jtidy 无法正确处理这种特殊情况:bug #205 StringIndexOutOfBoundsException while lexing script content
结果 Xpath 提取器失败,我的整个测试计划都被卡住了。
我设计了一个自定义解决方案,但我发现它有点复杂。也许我可以用更好的方式处理这件事。
我的解决方案:
我使用 tagsoup java 库来清理 HTML 输出并将其存储在 JMeter 变量中,然后通过 Xpath 处理该变量(勾选“应用到”中的“JMeter 变量”选项),最后我使用正则表达式来获取我的 Lionel Richie 东西工作...
JMeter
|->HTTP请求
|->BeanShell 后处理器->tagsoup > var RESPONSE
|->Xpath 提取器,应用于 var RESPONSE > var XPATH_OUTPUT
|->正则表达式提取器,应用于 var XPATH_OUTPUT
要让 tagsoup 与 JMeter 一起工作,只需将 jar 放在 lib 目录中,然后使用 BeanShell PostProcessor。
使用的 BeanShell 代码:
import org.xml.sax.*;
import org.ccil.cowan.tagsoup.*;
// getting response data of previous sampler
String rep=prev.getResponseDataAsString();
XMLReader r = new Parser();
HTMLSchema theSchema = new HTMLSchema();
r.setProperty(Parser.schemaProperty, theSchema);
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
Writer w = new OutputStreamWriter(outStream);
XMLWriter x = new XMLWriter(w);
x.setPrefix(theSchema.getURI(), "");
r.setContentHandler(x);
r.parse(new InputSource(new StringReader(rep)) );
String encodedRep=outStream.toString("UTF-8");
vars.put("RESPONSE", encodedRep);
最佳答案
关于java - Jmeter 中的 Jtidy StringIndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39099654/
我正在编写一个程序,该程序从文件“items.txt”获取输入,并根据“changes.txt”添加或删除行,然后输出到另一个文件。 这是“items.txt”文件: 101,Nail #1 102,
我创建了一个应该清理String的方法。它必须删除 [a,z] 范围内的每个字符。 但我收到此异常:StringIndexOutOfBoundsException。当我插入超出条件的数字时,就会弹出此
我正在制作的这个程序编译不正确,我不断收到错误:线程“main”中的异常 java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-9 在 java.l
在输入整数后输入字符串“s”时出现此错误。 Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String i
当我按下 Android 应用程序的“提交”按钮时,我遇到了应用程序崩溃的情况。该应用程序负责发送输入的数据,将其作为事件添加到用户的日历中。仅当日期字段留空时应用程序才会崩溃。我注意到存储日期分割部
我正在解决一个问题,如果相邻字符具有相同的值,我必须从字符串中删除字符。这是我的代码: import java.util.Scanner; public class SuperReducedStrin
我必须创建一个数字内存游戏,但如果用户输入错误的数字,我会收到 StringIndexOutOfBoundsException。我看了很多例子,但仍然不知道如何解决它。这发生在 actionPerfo
我编写了一个静态方法,旨在获取字符串并将其打乱。 当您输入给定的字符串,例如“四分七”时,您应该得到输出 “f rneosedvuc eroasn”,因为字符串被打乱到下面的网格中。 row 1:
我有以下代码 public class test{ public static void main(String[] args){ String one = "x";
当我尝试放置一个带有十六进制颜色的字符串变量来设置我的适配器类上的 edittext 的 setbackgroundcolor(Color.parseColor(String s)) 时,它说 Str
import java.io.* ; class Specimen { public static void main(String[] args) throws IOException
我在 Java 中收到以下错误消息 Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String i
我有这个代码: String input = JOptionPane.showInputDialog("Enter text"); StringBuilder forward = new String
我有以下代码 while (input.hasNextLine()) { String line = input.nextLine(); System.out.println(line
在 stackoverflow 和其他论坛上寻找解决方案一个小时后,我放弃了。 您知道我为什么会遇到异常吗? public Stack einlesen(){ Scanner sc =
为什么下面的 Java 代码片段在第三行代码中抛出 StringIndexOutOfBoundsException? String str = "1234567890"; String sub1 =
这个问题不太可能对任何 future 的访客有帮助;它只与一个较小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于全世界的互联网受众。如需帮助使此问题更广泛适用,visit the
这应该隔离姓名和分数,然后计算分数的平均值。输出应如下所示: Student Name Test 1 Test 2 Test 3 Final Avera
这个错误是在子字符串方法上抛出的,我发现很多线程都在处理这个问题,但我遇到的问题似乎有所不同。我知道如果您的字符串短于子字符串(开始,结束)大小,它会抛出此错误,但在任何内容传递到方法调用之前都会抛出
我正在使用 java 编写一个密码学/密码分析程序作为我主人的家庭作业。无论如何,我使用一种方法来删除无用的空格并使我显示的字符串正确地显示在 JTextArea 中。此方法非常适合小文本,但当我使用
我是一名优秀的程序员,十分优秀!