10001a 10001a - 1 month ago 7
JSON Question

JMeter JSON Path Extractor when a JSON is inside a HTML

I want to pull all the "tcversion_id" values from a json i get in a response, but the tricky part is that the json is inside a javascript tag in a html response. Here's the json part of the response:

<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>


Can i actually use the JSON Path Extractor to get these values and if so how?

Answer

I don't think you can apply JSONPATHExtractor. Use Regular Expression Extractor with regex as follows:

"tcversion_id""(.*?)",

enter image description here

It yields in 5 values. which you access the specfic value by indexing them as follows:

ID is Reference Name specified in Regular Expression Extractor.

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