【问题标题】:JMeter JSON Path Extractor when a JSON is inside a HTML当 JSON 在 HTML 中时,JMeter JSON 路径提取器
【发布时间】:2016-11-07 11:00:06
【问题描述】:

我想从响应中得到的 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 路径提取器来获取这些值吗?如果可以,如何?

【问题讨论】:

    标签: json jmeter jmeter-plugins


    【解决方案1】:

    我认为您不能应用 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)
    

    【讨论】:

    • 是的,就是这样。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2015-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多