当 JSON 在 HTML 中时,JMeter JSON 路径提取器
JMeter JSON Path Extractor when a JSON is inside a HTML
我想从我收到的 json 中提取所有 "tcversion_id" 值,但棘手的部分是 json 在 javascript 中html 响应中的标记。这是响应的 json 部分:
<script type="text/javascript">
treeCfg.root_name='Test Project / First Plan (4)(<span
class=\"light_not_run\" title=\"Not Run\">0,
<\/span><span class=\"light_passed\" title=\"Passed\">4,
<\/span><span class=\"light_failed\" title=\"Failed\">0,
<\/span><span class=\"light_blocked\" title=\"Blocked\">0<\/span>)';
treeCfg.root_id=6;
treeCfg.root_href='javascript:SP(6,
0)';
treeCfg.children=
[
: {
: : "spec_order":"1",
: : "node_order":"1",
: : "id":"8",
: : "parent_id":"6",
: : "name":"First Suite",
: : "node_type_id":"2",
: : "tcversion_id":"0",
: : "node_type":"testsuite",
: : "node_table":"testsuites",
: : "children":
: : [
: : : {
: : : : "spec_order":"100",
: : : : "node_order":"1",
: : : : "id":"9",
: : : : "parent_id":"8",
: : : : "name":"First Case",
: : : : "node_type_id":"3",
: : : : "tcversion_id":"10",
: : : : "node_type":"testcase",
: : : : "node_table":"testcases",
: : : : "leaf":true,
: : : : "external_id":"1",
: : : : "version":"1",
: : : : "testlink_node_name":"First Case",
: : : : "testlink_node_type":"testcase",
: : : : "text":"<span class=\"light_passed\" title=\"Passed\" alt=\"Passed\"><b>JM2-1<\/b>:First Case<\/span>",
: : : : "position":"1",
: : : : "href":"javascript:ST(9,10)"
: : : },
: : : {
: : : : "spec_order":"101",
: : : : "node_order":"1",
: : : : "id":"11",
: : : : "parent_id":"8",
: : : : "name":"Second Case",
: : : : "node_type_id":"3",
: : : : "tcversion_id":"12",
: : : : "node_type":"testcase",
: : : : "node_table":"testcases",
: : : : "leaf":true,
: : : : "external_id":"2",
: : : : "version":"1",
: : : : "testlink_node_name":"Second Case",
: : : : "testlink_node_type":"testcase",
: : : : "text":"<span class=\"light_passed\" title=\"Passed\" alt=\"Passed\"><b>JM2-2<\/b>:Second Case<\/span>",
: : : : "position":"1",
: : : : "href":"javascript:ST(11,12)"
: : : },
: : : {
: : : : "spec_order":"102",
: : : : "node_order":"1",
: : : : "id":"17",
: : : : "parent_id":"8",
: : : : "name":"Third Case",
: : : : "node_type_id":"3",
: : : : "tcversion_id":"18",
: : : : "node_type":"testcase",
: : : : "node_table":"testcases",
: : : : "leaf":true,
: : : : "external_id":"3",
: : : : "version":"1",
: : : : "testlink_node_name":"Third Case",
: : : : "testlink_node_type":"testcase",
: : : : "text":"<span class=\"light_passed\" title=\"Passed\" alt=\"Passed\"><b>JM2-3<\/b>:Third Case<\/span>",
: : : : "position":"1",
: : : : "href":"javascript:ST(17,18)"
: : : },
: : : {
: : : : "spec_order":"103",
: : : : "node_order":"1",
: : : : "id":"21",
: : : : "parent_id":"8",
: : : : "name":"Fourth",
: : : : "node_type_id":"3",
: : : : "tcversion_id":"22",
: : : : "node_type":"testcase",
: : : : "node_table":"testcases",
: : : : "leaf":true,
: : : : "external_id":"4",
: : : : "version":"1",
: : : : "testlink_node_name":"Fourth",
: : : : "testlink_node_type":"testcase",
: : : : "text":"<span class=\"light_passed\" title=\"Passed\" alt=\"Passed\"><b>JM2-4<\/b>:Fourth<\/span>",
: : : : "position":"1",
: : : : "href":"javascript:ST(21,22)"
: : : }
: : ],
: : "failed":0,
: : "blocked":0,
: : "passed":4,
: : "not_run":0,
: : "not_available":0,
: : "unknown":0,
: : "all":0,
: : "testcase_count":4,
: : "testlink_node_name":"First Suite",
: : "testlink_node_type":"testsuite",
: : "leaf":false,
: : "text":"First Suite (4)(<span class=\"light_not_run\" title=\"Not Run\">0,<\/span><span class=\"light_passed\" title=\"Passed\">4,<\/span><span class=\"light_failed\" title=\"Failed\">0,<\/span><span class=\"light_blocked\" title=\"Blocked\">0<\/span>)",
: : "position":"1",
: : "href":""
: }
]
;
treeCfg.cookiePrefix='test_exec_build_id_2_';
</script>
我真的可以使用 JSON 路径提取器来获取这些值吗?如果可以,如何获取这些值?
我认为您不能应用 JSONPATHExtractor。将正则表达式提取器与正则表达式一起使用,如下所示:
"tcversion_id""(.*?)",
它产生 5 个值。您可以通过如下方式对它们进行索引来访问特定值:
ID
是在正则表达式提取器中指定的 Reference Name
。
Reference Name - value
ID_1 - 0 (first value)
ID_2 - 10 (second value)
ID_3 - 12 (third value)
... continue till ID_5 (matches are 5)
我想从我收到的 json 中提取所有 "tcversion_id" 值,但棘手的部分是 json 在 javascript 中html 响应中的标记。这是响应的 json 部分:
<script type="text/javascript">
treeCfg.root_name='Test Project / First Plan (4)(<span
class=\"light_not_run\" title=\"Not Run\">0,
<\/span><span class=\"light_passed\" title=\"Passed\">4,
<\/span><span class=\"light_failed\" title=\"Failed\">0,
<\/span><span class=\"light_blocked\" title=\"Blocked\">0<\/span>)';
treeCfg.root_id=6;
treeCfg.root_href='javascript:SP(6,
0)';
treeCfg.children=
[
: {
: : "spec_order":"1",
: : "node_order":"1",
: : "id":"8",
: : "parent_id":"6",
: : "name":"First Suite",
: : "node_type_id":"2",
: : "tcversion_id":"0",
: : "node_type":"testsuite",
: : "node_table":"testsuites",
: : "children":
: : [
: : : {
: : : : "spec_order":"100",
: : : : "node_order":"1",
: : : : "id":"9",
: : : : "parent_id":"8",
: : : : "name":"First Case",
: : : : "node_type_id":"3",
: : : : "tcversion_id":"10",
: : : : "node_type":"testcase",
: : : : "node_table":"testcases",
: : : : "leaf":true,
: : : : "external_id":"1",
: : : : "version":"1",
: : : : "testlink_node_name":"First Case",
: : : : "testlink_node_type":"testcase",
: : : : "text":"<span class=\"light_passed\" title=\"Passed\" alt=\"Passed\"><b>JM2-1<\/b>:First Case<\/span>",
: : : : "position":"1",
: : : : "href":"javascript:ST(9,10)"
: : : },
: : : {
: : : : "spec_order":"101",
: : : : "node_order":"1",
: : : : "id":"11",
: : : : "parent_id":"8",
: : : : "name":"Second Case",
: : : : "node_type_id":"3",
: : : : "tcversion_id":"12",
: : : : "node_type":"testcase",
: : : : "node_table":"testcases",
: : : : "leaf":true,
: : : : "external_id":"2",
: : : : "version":"1",
: : : : "testlink_node_name":"Second Case",
: : : : "testlink_node_type":"testcase",
: : : : "text":"<span class=\"light_passed\" title=\"Passed\" alt=\"Passed\"><b>JM2-2<\/b>:Second Case<\/span>",
: : : : "position":"1",
: : : : "href":"javascript:ST(11,12)"
: : : },
: : : {
: : : : "spec_order":"102",
: : : : "node_order":"1",
: : : : "id":"17",
: : : : "parent_id":"8",
: : : : "name":"Third Case",
: : : : "node_type_id":"3",
: : : : "tcversion_id":"18",
: : : : "node_type":"testcase",
: : : : "node_table":"testcases",
: : : : "leaf":true,
: : : : "external_id":"3",
: : : : "version":"1",
: : : : "testlink_node_name":"Third Case",
: : : : "testlink_node_type":"testcase",
: : : : "text":"<span class=\"light_passed\" title=\"Passed\" alt=\"Passed\"><b>JM2-3<\/b>:Third Case<\/span>",
: : : : "position":"1",
: : : : "href":"javascript:ST(17,18)"
: : : },
: : : {
: : : : "spec_order":"103",
: : : : "node_order":"1",
: : : : "id":"21",
: : : : "parent_id":"8",
: : : : "name":"Fourth",
: : : : "node_type_id":"3",
: : : : "tcversion_id":"22",
: : : : "node_type":"testcase",
: : : : "node_table":"testcases",
: : : : "leaf":true,
: : : : "external_id":"4",
: : : : "version":"1",
: : : : "testlink_node_name":"Fourth",
: : : : "testlink_node_type":"testcase",
: : : : "text":"<span class=\"light_passed\" title=\"Passed\" alt=\"Passed\"><b>JM2-4<\/b>:Fourth<\/span>",
: : : : "position":"1",
: : : : "href":"javascript:ST(21,22)"
: : : }
: : ],
: : "failed":0,
: : "blocked":0,
: : "passed":4,
: : "not_run":0,
: : "not_available":0,
: : "unknown":0,
: : "all":0,
: : "testcase_count":4,
: : "testlink_node_name":"First Suite",
: : "testlink_node_type":"testsuite",
: : "leaf":false,
: : "text":"First Suite (4)(<span class=\"light_not_run\" title=\"Not Run\">0,<\/span><span class=\"light_passed\" title=\"Passed\">4,<\/span><span class=\"light_failed\" title=\"Failed\">0,<\/span><span class=\"light_blocked\" title=\"Blocked\">0<\/span>)",
: : "position":"1",
: : "href":""
: }
]
;
treeCfg.cookiePrefix='test_exec_build_id_2_';
</script>
我真的可以使用 JSON 路径提取器来获取这些值吗?如果可以,如何获取这些值?
我认为您不能应用 JSONPATHExtractor。将正则表达式提取器与正则表达式一起使用,如下所示:
"tcversion_id""(.*?)",
它产生 5 个值。您可以通过如下方式对它们进行索引来访问特定值:
ID
是在正则表达式提取器中指定的 Reference Name
。
Reference Name - value
ID_1 - 0 (first value)
ID_2 - 10 (second value)
ID_3 - 12 (third value)
... continue till ID_5 (matches are 5)