日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

接口出參

更新時(shí)間:

在實(shí)際壓測場景中,您可以使用出參功能來提取壓測接口的返回信息作為下一個(gè)請求的輸入。在一個(gè)壓測請求API中可以定義多個(gè)出參。本文介紹如何提取出參。

出參配置

出參定義

出參的配置項(xiàng)說明如下。

配置項(xiàng)

說明

出參名

可包含英文字母、數(shù)字、下劃線(_)和短劃線(-),并且只能以字母開頭。

來源

標(biāo)記Response的解析方式,可選擇以下類型:

  • Body : JSON :以JSON格式解析Response Body。

  • Body : TEXT:以TEXT格式解析Response Body。

  • Header : K/V :以鍵值對格式解析Response Header。

    說明

    當(dāng)來源使用Header : K/V時(shí),解析表達(dá)式的格式必須是標(biāo)準(zhǔn)的MIME類型。

  • Cookie : K/V :以鍵值對格式解析Cookie。

  • 響應(yīng)狀態(tài)碼:提取Response中的狀態(tài)碼。

解析表達(dá)式

從Response截取需要的內(nèi)容,對應(yīng)到當(dāng)前變量。

第幾個(gè)匹配項(xiàng)

僅用于來源Body : TEXT時(shí)。若上一步定義的解析表達(dá)式在Response中有多個(gè)匹配時(shí),指定第幾個(gè)字符串作為出參。從0開始,-n表示倒數(shù)第n個(gè),取值區(qū)間為 [-99,99]。如果想要取隨機(jī)匹配項(xiàng),請?zhí)顚?b data-tag="uicontrol" id="uicontrol-855-376-kzx" class="uicontrol">random。

Body : JSON類型

JSON格式解析支持兩種類型的返回信息:application/json和text/json。

PTS目前支持新舊版本兩種JSONPath的寫法,為了說明新版與舊版JSONPath之間的區(qū)別,下面分別給出兩者的使用示例。

建議您使用新版JSONPath寫法。

JSONPath表達(dá)式(新版)

以此處提供的JSON示例為例,您可以在下方表格中查看新版JSONPath的語法及說明。

單擊展開JSONPath完整示例

{
    "menu":{
        "header":"SVG Viewer",
        "items":[
            {
                "id":0
            },
            {
                "id":1,
                "label":"Open New"
            },
            null,
            {
                "id":2,
                "label":"Zoom In"
            },
            {
                "id":3,
                "label":"Zoom Out"
            },
            {
                "id":4,
                "label":"Original View"
            },
            null,
            {
                "id":5
            },
            {
                "id":6
            },
            {
                "id":7
            },
            null,
            {
                "id":8,
                "label":"Find..."
            },
            {
                "id":9,
                "label":"Find Again"
            },
            {
                "id":10
            },
            {
                "id":11,
                "label":"Copy Again"
            },
            {
                "id":12,
                "label":"Copy SVG"
            },
            {
                "id":13,
                "label":"View SVG"
            },
            {
                "id":14,
                "label":"View Source"
            },
            {
                "id":15,
                "label":"Save As"
            },
            null,
            {
                "id":16
            },
            {
                "id":17,
                "label":"About Adobe CVG Viewer..."
            }
        ]
    }
}

JSONPath

說明

$

根對象,例如$.menu.header對應(yīng)的值為SVG Viewer

[num]

數(shù)組訪問,其中num是數(shù)字。例如$.menu.items[0]對應(yīng)的值為{"id":0}

[num0,num1,num2...]

數(shù)組多個(gè)元素訪問,其中num是數(shù)字,返回?cái)?shù)組中的多個(gè)元素。例如$.menu.items[0,3],返回結(jié)果是長度為2的數(shù)組,第2個(gè)元素為 {"id":2,"label":"Zoom In"}

[start:end]

數(shù)組范圍訪問,其中start和end是開始下標(biāo)和結(jié)束下標(biāo),返回?cái)?shù)組中的多個(gè)元素。例如$.menu.items[0:3],返回結(jié)果是長度為3的數(shù)組,第1個(gè)元素為{"id":1,"label":"Open New"} ,第2個(gè)元素為null

[?(@.key)]

對象屬性非空過濾。例如$.menu.items[?(@.label)],返回結(jié)果是長度為12的數(shù)組,第1個(gè)元素為{"id":1,"label":"Open New"}

[?(@.key > 123)]

數(shù)值類型對象屬性比較過濾,比較操作符支持=、!=、>、>=、<、<=。例如$.menu.items[?(@.id > 5)],返回結(jié)果是長度為12的數(shù)組,第1個(gè)元素為{"id":6}

[?(@.key = '123')]

字符串類型對象屬性比較過濾,比較操作符支持=、!=、>、>=、<、<=。例如$.menu.items[?(@.label = 'Copy Again')],返回結(jié)果是長度為1的數(shù)組,第1個(gè)元素為 {"id":11,"label":"Copy Again"}

[?(@.key like 'aa%')]

字符串類型like過濾,通配符只支持%,支持not like。例如$.menu.items[?(@.label like 'Copy%')],返回結(jié)果是長度為2的數(shù)組,第1個(gè)元素為{"id":11,"label":"Copy Again"}$.menu.items[?(@.label not like 'Copy%')]返回結(jié)果是長度為10的數(shù)組,第1個(gè)元素為{"id":1,"label":"Open New"}

[?(@.key rlike 'regexpr')]

字符串類型正則匹配過濾,正則語法為jdk,支持not rlike。例如$.menu.items[?(@.label rlike 'Copy ([A-Z]+)')]返回結(jié)果是長度為1的數(shù)組,第1個(gè)元素為{"id":12,"label":"Copy SVG"}$.menu.items[?(@.label not rlike 'Copy ([A-Z]+)')]返回結(jié)果是長度為11的數(shù)組,第1個(gè)元素為{"id":1,"label":"Open New"}

[?(@.key in ('v0', 'v1'))]

IN過濾,支持字符串和數(shù)值類型,支持not in。例如$.menu.items[?(@.id in (1, 2))],返回結(jié)果是長度為2的數(shù)組,第1個(gè)元素為{"id":1,"label":"Open New"}$.menu.items[?(@.id not in (1, 2))]返回結(jié)果是長度為16的數(shù)組,第1個(gè)元素為{"id":0}

[?(@.key between 234 and 456)]

BETWEEN過濾,支持?jǐn)?shù)值類型,支持not between。例如:$.menu.items[?(@.id between 0 and 3)],返回結(jié)果是長度為4的數(shù)組,第1個(gè)元素為{"id":0}i返回結(jié)果是長度為15的數(shù)組,第1個(gè)元素為{"id":0}

length() 或者 size()

數(shù)組長度。例如$.menu.items.size()$.menu.items.length()均返回22。

..

深度屬性訪問。例如$.menu.items..id返回結(jié)果是長度為18的數(shù)組,數(shù)組元素為每個(gè)ID對應(yīng)的值。

*

對象的所有屬性。例如$.menu.items.*返回結(jié)果是items對應(yīng)的值。

randomIndex()

數(shù)組中的隨機(jī)元素。例如$.menu.items[randomIndex()]返回items對應(yīng)數(shù)組的隨機(jī)元素。

['key']

屬性訪問。例如$['menu']['items'],返回結(jié)果是items對應(yīng)的值。

['key0','key1']

多個(gè)屬性訪問。例如$['menu']['items'][3]['id', 'label']返回結(jié)果是長度為2的數(shù)組,其中第2個(gè)元素為"Zoom In"

說明

$.store.book[0].title$['store']['book'][0]['title']兩種寫法的語義是相同的。

JSONPath表達(dá)式(舊版)

以此處提供的JSON示例為例,您可以在下方表格中查看舊版JSONPath的語法及說明。

{
    "info": "success",
    "message": "處理成功",
    "data": {
        "id":13509, "code":0,
        "items": [
            {"name": "name1", "value": "1234"},
            {"name": "name2", "value": "8448"},
            {"name": "name3", "value": "1298"},
            {"name": "name4", "value": "3049"},
            {"name": "name5", "value": "7648"}
        ]
    }
}
            

期望獲取出參的位置

舊版解析表達(dá)式

新版解析表達(dá)式(供對比參考)

獲取info的值

info

$.info

獲取data的ID的值

data.id

$.data.id

獲取items第一個(gè)對象(支持相對位置)的value的值

data.items[0].value

$.data.items[0].value

獲取items倒數(shù)第二個(gè)對象(支持相對位置)的value的值

data.items[-2].value

不支持

獲取items整個(gè)數(shù)組

data.items[ALL]

$.data.items[*]

獲取items數(shù)組中隨機(jī)一個(gè)對象

data.items[RANDOM]

$.data.items[randomIndex()]

Body : TEXT類型

TEXT格式解析支持任意文本格式且可使用正則表達(dá)式提取。當(dāng)一個(gè)正則表達(dá)式有多個(gè)匹配項(xiàng)時(shí),可指定第幾個(gè)匹配項(xiàng),默認(rèn)用0表示匹配第一個(gè)。

API的Response示例如下:

<input name="id" value="34729XXXX">
<input name="token" value="acdfo4dfopasdf44dXXXX">
...
<script>
    var planId=4587;
    var planId=5689;
    var planId=8906;
</script>
            

出參的值

解析表達(dá)式

匹配數(shù)字

獲取name為ID的value

<input name="id" value="([0-9]*)">

0

獲取name為Token的value

name="token" value="([A-Za-z0-9]*)"

0

獲取第三個(gè)PlanID的值

var planId=([0-9]*);

2

隨機(jī)PlanID的值

var planId=([0-9]*);

random

格式規(guī)范:

  • 順序匹配原則:按照順序匹配出參信息。一旦匹配到之后即賦予該出參變量值,不會再匹配后續(xù)的信息,故需保證解析表達(dá)式的唯一性(除非多個(gè)中選第一個(gè)即可)。

  • 被匹配的文本內(nèi)容不能包含大括號({})、小括號(())等特殊字符。

  • 使用正則表達(dá)式提取JSON類型的Response時(shí),無需在K/V間隔的冒號后面加空格(JSON格式化展現(xiàn)中加入空格是為了展現(xiàn)優(yōu)化)。可查看Response原文信息,參考下圖:

    response_body

Cookie : K/V和Header : K/V類型

Cookie : K/V和Header : K/V分別用于提取Cookie字段和Header字段,解析表達(dá)式中直接寫需要提取的Key即可。例如,Cookie信息為token=1234;path=/,需要提取Token的值,則解析表達(dá)式直接填寫token即可。

響應(yīng)狀態(tài)碼類型

響應(yīng)狀態(tài)碼支持提取請求的狀態(tài)碼,一般情況下用于檢查點(diǎn)或者條件跳轉(zhuǎn)(不同狀態(tài)碼返回不同頁面信息)。

JDBC節(jié)點(diǎn)出參

從SQL查詢結(jié)果提取出參,需要選擇上文介紹的Body : JSON類型,查詢結(jié)果對應(yīng)JSON數(shù)據(jù)結(jié)構(gòu)關(guān)系如下:

{
    "data": [
        
         {
             "列名1": "value",
             "列名2": "value"
           },
         
           {
              "列名1": "value",
              "列名2": "value"
           }
           ...
  ]
}

示例:SQL查詢結(jié)果如下,希望解析第一行name列的值“name1”作為出參。

id

name

1

name1

2

name2

出參表達(dá)式為:

$.data[0].name

出參調(diào)試

若您不能判斷解析表達(dá)式是否正確時(shí),可以在場景調(diào)試中測試解析表達(dá)式并設(shè)置出參。操作步驟如下:

  1. 單擊創(chuàng)建PTS場景頁面下方的調(diào)試場景,然后在彈出的場景調(diào)試對話框中單擊場景名稱,對話框右側(cè)將顯示詳細(xì)信息,在右側(cè)對話框中,選中某條API,單擊點(diǎn)此去測試出參正則表達(dá)式

  2. 在彈出的對話框,選擇來源格式,填寫正則表達(dá)式,指定為第幾個(gè)匹配項(xiàng),填寫出參參數(shù)名,單擊測試表達(dá)式。通過響應(yīng)詳情匹配結(jié)果,預(yù)判提取的內(nèi)容是否符合預(yù)期。

  3. 若需重新設(shè)置出參,則單擊同步出參配置,將此正則表達(dá)式同步到該API的出參列表中。

    說明

    場景調(diào)試結(jié)束后,如有同步的出參,需返回壓測場景配置頁簽,在對應(yīng)的API出參定義頁簽下,設(shè)置出參名。

出參示例

在理財(cái)業(yè)務(wù)中,需要根據(jù)用戶的消費(fèi)能力,推薦適當(dāng)產(chǎn)品。則需要在前置接口中提取出消費(fèi)能力等級作為出參,在當(dāng)前的產(chǎn)品推薦接口中,使用該出參。

操作步驟如下:

  1. 登錄PTS控制臺,在左側(cè)導(dǎo)航欄選擇性能測試 > 創(chuàng)建場景,然后單擊PTS壓測

  2. 創(chuàng)建PTS場景頁面,添加消費(fèi)能力(含出參)產(chǎn)品推薦API,并填寫對應(yīng)的URL。

  3. 消費(fèi)能力(含出參)API中,基于請求的響應(yīng)詳情,提取消費(fèi)能力信息作為出參。填寫出參名(如output)和具體的解析表達(dá)式(如data.items[0].value)。

  4. 單擊創(chuàng)建PTS場景頁面左下角的參數(shù)列表,在彈出的自定義參數(shù)頁簽可查看已創(chuàng)建的出參。單擊出參參數(shù)名稱(如output)或復(fù)制圖標(biāo)圖標(biāo),系統(tǒng)將自動復(fù)制參數(shù)內(nèi)容。

  5. 產(chǎn)品推薦API的Body中帶入已提取的出參,在Body定義編輯框內(nèi),粘貼參數(shù)內(nèi)容。ex_config_body

    此外,您也可以對Body內(nèi)容進(jìn)行編輯,如組合字符串、參數(shù)或函數(shù)等。