当JSON在HTML中时,JMeter JSON Path Extractor

时间:2016-11-07 11:00:06

标签: json jmeter jmeter-plugins

我想从响应中获取json中的所有“tcversion_id”值,但棘手的部分是json在html响应中的javascript标记内。这是响应中的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路径提取器来获取这些值,如果是这样的话?

1 个答案:

答案 0 :(得分:1)

我认为你不能申请JSONPATHExtractor。使用正则表达式提取器与正则表达式如下:

"tcversion_id""(.*?)",

enter image description here

它产生5个值。您可以通过索引来访问specfic值,如下所示:

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)

enter image description here