本文介紹微服務壓測中的參數文件URL和動態參數調用規則。
參數文件URL:提供一個公網可下載的文件地址
平臺會把該參數文件分發到每一個施壓機,應用每一次調用參數就在該文件中按順序讀取一行。文件中也支持動態函數參數。
參數文件填寫格式:
方法參數類型:填寫的內容是一個字符串類型的JSON數組,數組的每一位代表對應位置的參數類型。除了Java基本類型,其余類型需要填寫完整的類路徑。
方法參數:填寫的內容是一個字符串類型的JSON數組,數組的每一位代表對應位置的參數。
如下所示:
方法 | 參數類型填寫方式 | 文件參數格式 |
|
|
|
|
|
|
|
|
|
|
|
|
動態參數
PTS微服務壓測內置了若干函數,可實現簡單的隨機參數。
平臺每一次調用接口時,通過動態參數模板,先生成實際參數,然后再調用此參數。動態參數以標識符${__
開頭,并以標識符}
結束。運行時,平臺會將標識符及其中間所有的字符串,替換成動態生成的字符串。其余字符串保持不變。
生成隨機數
用戶填寫示例
轉換結果
說明
${__Random(1,1000)}
第一次:3454
第二次:67
第三次:53
隨機1~1000中的一個數字。
["Tom",463${__Random(5,10)}]
第一次:
["Tom",4635]
第二次:
["Tom",4637]
第三次:
["Tom",4638]
隨機5~10中的一個數字。動態參數之外的字符串,["Tom",和463]會保持原樣。
生成不同格式的當前時間
用戶填寫示例
轉換結果
說明
${__time(,)}
1450056496991
獲取1970年1月1日到當前的毫秒數。
${__time(yyyyMMdd,)}
20151214
當前時間格式化成年月日。
${__time(HHmmss,)}
092816
當前時間格式化成時分秒。
${__time(yyyyMMdd-HHmmss,)}
20151214-092816
當前時間格式化成年月日-時分秒。
["time":"${__time(HHmmss,)}.log"]
["time":"053816.log"]
動態參數之外的字符串,
["time","和.log"]
會保持原樣。隨機字符串
用戶填寫示例
轉換結果
說明
${__RandomString(5)}
faAfg
隨機5個英文字母,包含大小寫。
${__RandomString(5,abcd)}
aabdc
隨機5個英文字母,隨機范圍是abcd四個英文字母。
["name":"${__RandomString(5)}"]
["name":"abddc"]
動態參數之外的字符串,
["name","和"]
會保持原樣。隨機指定字符串或者數字
用戶填寫示例
轉換結果
說明
${__RandomSpecifiedString(aaa;;;bbb;;;ccc)}
bbb
隨機從aaa、bbb或ccc中取一個字符串。
${__RandomSpecifiedString(111;;;222;;;333)}
333
隨機從111、222或333中取一個字符串。
["name":"${__RandomSpecifiedString(aaa;;;bbb;;;ccc)}"]
["name":"ccc"]
動態參數之外的字符串,
["name","和"]
會保持原樣。MVEL表達式
用戶填寫示例
轉換結果
說明
${__Expression(3+5)}
8
獲取表達式3+5的值。
${__Expression(${__RandomSpecifiedString(100;;;200;;;300)}+5)}
105
表達式嵌套,隨機取100、200或者300中的一個數字加上5,實際結果可能是105、205或者305中的一個。
["time":"${__Expression(3*5)}"]
["time":"15"]
動態參數之外的字符串,
["time","和"]
會保持原樣。
一個復雜參數填寫示例:
調用接口函數:
String sayHello(String name)
動態參數填寫格式:
["${__RandomString(4,abcdefg)}-${__RandomSpecifiedString(aaa;;;bbb;;;ccc)}-${__Expression(3+5)}]
實際參數:
["adag-ccc-8"]