关于Jmeter中的函数和变量用法
以下內(nèi)容來自官方頁(yè)面,鏈接:Apache JMeter - User's Manual: Functions and Variables
github
20. 函數(shù)和變量
JMeter 函數(shù)是可以填充測(cè)試樹中任何采樣器或其他元素的字段的特殊值。函數(shù)調(diào)用如下所示:
${__functionName(var1,var2,var3)}
其中“__functionName”與函數(shù)的名稱匹配。
括號(hào)括住發(fā)送給函數(shù)的參數(shù),例如${__time(YMD)}?實(shí)際參數(shù)因函數(shù)而異。不需要參數(shù)的函數(shù)可以省略括號(hào),例如${__threadNum}。
如果函數(shù)參數(shù)包含逗號(hào),那么一定要用“?\?”轉(zhuǎn)義,否則JMeter會(huì)將其視為參數(shù)分隔符。例如:
<span style="color:#000000"><span style="color:orange">${__time(EEE\, d MMM yyyy)} </span></span> 如果逗號(hào)未轉(zhuǎn)義 - 例如${__javaScript(Math.max(2,5))}?- 您將收到如下錯(cuò)誤: <span style="color:#000000"><span style="color:orange">錯(cuò)誤 - jmeter.functions.JavaScript:錯(cuò)誤處理 Javascript:[Math.max(2] org.mozilla.javascript.EvaluatorException: missing) 在參數(shù)列表 (<cmd>#1) 之后</span></span> 這是因?yàn)樽址?Math.max(2,5)?”被視為 __javascript 函數(shù)的兩個(gè)參數(shù):Math.max(2和5)
其他錯(cuò)誤消息是可能的。
變量引用如下:
${變量}如果引用了未定義的函數(shù)或變量,JMeter 不會(huì)報(bào)告/記錄錯(cuò)誤 - 引用原樣返回。例如,如果UNDEF未定義為變量,則 ${UNDEF} 的值為$?{UNDEF}。?變量、函數(shù)(和屬性)都區(qū)分大小寫。?JMeter 在使用前會(huì)從變量名中刪除空格,例如?${__Random(1,63, LOTTERY )}將使用變量“?LOTTERY?”而不是“??LOTTERY??”。
屬性與變量不同。變量是線程本地的;屬性對(duì)所有線程都是通用的,需要使用__P或__property函數(shù)來引用。 在Windows 路徑的變量之前?使用\時(shí),例如C:\test\${test},請(qǐng)確保轉(zhuǎn)義\?否則 JMeter 不會(huì)解釋變量,例如:?C:\\test\\${test}。或者,只需使用/代替路徑分隔符 - 例如C:/test/${test}?- Windows JVM 將根據(jù)需要轉(zhuǎn)換分隔符。
功能列表,松散地分組為類型。
| 信息 | 線程數(shù) | 獲取線程號(hào) | 1.X |
| 信息 | 線程組名 | 獲取線程組名 | 4.1 |
| 信息 | 采樣器名稱 | 獲取采樣器名稱(標(biāo)簽) | 2.5 |
| 信息 | 機(jī)器IP | 獲取本機(jī)IP地址 | 2.6 |
| 信息 | 機(jī)器名 | 獲取本地機(jī)器名 | 1.X |
| 信息 | 時(shí)間 | 以各種格式返回當(dāng)前時(shí)間 | 2.2 |
| 信息 | 時(shí)移 | 返回各種格式的日期,并添加指定的秒數(shù)/分鐘數(shù)/小時(shí)數(shù)/天數(shù) | 3.3 |
| 信息 | 日志 | 記錄(或顯示)消息(并返回值) | 2.2 |
| 信息 | 登錄 | 記錄(或顯示)一條消息(空返回值) | 2.2 |
| 輸入 | 字符串從文件 | 從文件中讀取一行 | 1.9 |
| 輸入 | 文件到字符串 | 讀取整個(gè)文件 | 2.4 |
| 輸入 | CSV讀取 | 從 CSV 分隔文件讀取 | 1.9 |
| 輸入 | XPath | 使用 XPath 表達(dá)式從文件中讀取 | 2.0.3 |
| 輸入 | 字符串到文件 | 將字符串寫入文件 | 5.2 |
| 計(jì)算 | 柜臺(tái) | 生成一個(gè)遞增的數(shù)字 | 1.X |
| 格式化 | 日期時(shí)間轉(zhuǎn)換 | 將日期或時(shí)間從源格式轉(zhuǎn)換為目標(biāo)格式 | 4.0 |
| 計(jì)算 | 消化 | 生成摘要(SHA-1、SHA-256、MD5...) | 4.0 |
| 計(jì)算 | 整數(shù) | 添加整數(shù) | 1.8.1 |
| 計(jì)算 | 長(zhǎng)和 | 添加長(zhǎng)數(shù)字 | 2.3.2 |
| 計(jì)算 | 隨機(jī)的 | 生成一個(gè)隨機(jī)數(shù) | 1.9 |
| 計(jì)算 | 隨機(jī)日期 | 在特定日期范圍內(nèi)生成隨機(jī)日期 | 3.3 |
| 計(jì)算 | RandomFromMultipleVars | 從由|分隔的一組變量的值中提取一個(gè)元素 | 3.1 |
| 計(jì)算 | 隨機(jī)字符串 | 生成隨機(jī)字符串 | 2.6 |
| 計(jì)算 | UUID | 生成隨機(jī)類型 4 UUID | 2.9 |
| 腳本 | 時(shí)髦的 | 運(yùn)行 Apache Groovy 腳本 | 3.1 |
| 腳本 | 豆殼 | 運(yùn)行 BeanShell 腳本 | 1.X |
| 腳本 | 腳本 | 處理 JavaScript (Nashorn) | 1.9 |
| 腳本 | jexl2 | 評(píng)估 Commons Jexl2 表達(dá)式 | jexl2(2.1.1) |
| 腳本 | jexl3 | 評(píng)估 Commons Jexl3 表達(dá)式 | jexl3 (3.0) |
| 特性 | isPropDefined | 測(cè)試屬性是否存在 | 4.0 |
| 特性 | 財(cái)產(chǎn) | 讀取屬性 | 2.0 |
| 特性 | 磷 | 讀取屬性(速記方法) | 2.0 |
| 特性 | 設(shè)置屬性 | 設(shè)置 JMeter 屬性 | 2.1 |
| 變量 | 分裂 | 將字符串拆分為變量 | 2.0.2 |
| 變量 | 評(píng)估 | 計(jì)算變量表達(dá)式 | 2.3.1 |
| 變量 | 評(píng)估變量 | 計(jì)算存儲(chǔ)在變量中的表達(dá)式 | 2.3.1 |
| 特性 | isVarDefined | 測(cè)試變量是否存在 | 4.0 |
| 變量 | 五 | 評(píng)估變量名 | 2.3RC3 |
| 細(xì)繩 | 字符 | 從數(shù)字列表中生成 Unicode 字符值 | 2.3.3 |
| 細(xì)繩 | 變更案例 | 改變大小寫遵循不同的模式 | 4.0 |
| 細(xì)繩 | 轉(zhuǎn)義HTML | 使用 HTML 編碼對(duì)字符串進(jìn)行編碼 | 2.3.3 |
| 細(xì)繩 | escapeOroRegexpChars | 引用 ORO 正則表達(dá)式使用的元字符 | 2.9 |
| 細(xì)繩 | 逃逸Xml | 使用 XML 編碼對(duì)字符串進(jìn)行編碼 | 3.2 |
| 細(xì)繩 | 正則表達(dá)式函數(shù) | 使用正則表達(dá)式解析先前的響應(yīng) | 1.X |
| 細(xì)繩 | 逃逸 | 處理包含 Java 轉(zhuǎn)義的字符串(例如 \n & \t) | 2.3.3 |
| 細(xì)繩 | 轉(zhuǎn)義HTML | 解碼 HTML 編碼的字符串 | 2.3.3 |
| 細(xì)繩 | 網(wǎng)址解碼 | 解碼 application/x-www-form-urlencoded 字符串 | 2.10 |
| 細(xì)繩 | 網(wǎng)址代碼 | 將字符串編碼為 application/x-www-form-urlencoded 字符串 | 2.10 |
| 細(xì)繩 | 測(cè)試計(jì)劃名稱 | 返回當(dāng)前測(cè)試計(jì)劃的名稱 | 2.6 |
20.1 函數(shù)能做什么
有兩種函數(shù):用戶定義的靜態(tài)值(或變量)和內(nèi)置函數(shù)。
用戶定義的靜態(tài)值允許用戶定義在編譯測(cè)試樹并提交運(yùn)行時(shí)用它們的靜態(tài)值替換的變量。此替換在測(cè)試運(yùn)行開始時(shí)發(fā)生一次。這可用于替換所有 HTTP 請(qǐng)求的 DOMAIN 字段,例如 - 使更改測(cè)試以針對(duì)具有相同測(cè)試的不同服務(wù)器變得簡(jiǎn)單。
請(qǐng)注意,變量當(dāng)前不能嵌套;即${Var${N}}不起作用。__V?(變量)函數(shù)可用于執(zhí)行此操作:$?{__V(Var${N})}。您也可以使用${__BeanShell(vars.get("Var${N}")}。
這種類型的替換在沒有功能的情況下是可能的,但不太方便且不太直觀。它要求用戶創(chuàng)建默認(rèn)配置元素來填充采樣器的空白值。變量允許僅替換任何給定值的一部分,而不僅僅是填充空白值。
使用內(nèi)置函數(shù),用戶可以在運(yùn)行時(shí)根據(jù)以前的響應(yīng)數(shù)據(jù)、函數(shù)所在的線程、時(shí)間和許多其他來源計(jì)算新值。這些值是在整個(gè)測(cè)試過程中為每個(gè)請(qǐng)求生成的。
函數(shù)在線程之間共享。測(cè)試計(jì)劃中每次出現(xiàn)的函數(shù)調(diào)用都由單獨(dú)的函數(shù)實(shí)例處理。20.2 函數(shù)和變量可以用在什么地方?
函數(shù)和變量可以寫入任何測(cè)試組件的任何字段(除了 TestPlan - 見下文)。某些字段不允許使用隨機(jī)字符串,因?yàn)樗鼈冃枰獢?shù)字,因此不會(huì)接受函數(shù)。但是,大多數(shù)字段都允許使用函數(shù)。
測(cè)試計(jì)劃中使用的功能有一些限制。JMeter線程變量在處理函數(shù)的時(shí)候還沒有完全設(shè)置好,所以作為參數(shù)傳遞的變量名不會(huì)設(shè)置,變量引用也不起作用,所以split()和regex()以及變量求值函數(shù)都不會(huì)不工作。threadNum?()函數(shù)不起作用(并且在測(cè)試計(jì)劃級(jí)別沒有意義)。以下功能在測(cè)試計(jì)劃上應(yīng)該可以正常工作:
- 整數(shù)
- 長(zhǎng)和
- 機(jī)器名
- 豆殼
- 時(shí)髦的
- 腳本
- jexl2/jexl3
- 隨機(jī)的
- 時(shí)間
- 屬性函數(shù)
- 日志功能
配置元素由單獨(dú)的線程處理。因此,諸如__threadNum之類的函數(shù)在用戶定義變量等元素中無法正常工作。另請(qǐng)注意,UDV 元素中定義的變量在處理完該元素后才可用。
在 SQL 代碼(等)中使用變量/函數(shù)引用時(shí),請(qǐng)記住為文本字符串包括任何必要的引號(hào),即使用 <span style="color:#000000"><span style="color:orange">從 name='${VAR}' 的表中選擇項(xiàng)目 </span></span> 不是 <span style="color:#000000"><span style="color:orange">從 name=${VAR} 的表中選擇項(xiàng)目 </span></span> (除非VAR本身包含引號(hào))20.3 如何引用變量和函數(shù)
引用測(cè)試元素中的變量是通過用'?${?'和'?}?'將變量名括起來來完成的。
函數(shù)的引用方式相同,但按照慣例,函數(shù)的名稱以“ __?”開頭,以避免與用戶值名稱*沖突。有些函數(shù)需要參數(shù)來配置它們,這些參數(shù)放在括號(hào)中,以逗號(hào)分隔。如果函數(shù)沒有參數(shù),括號(hào)可以省略。
本身包含逗號(hào)的參數(shù)值應(yīng)根據(jù)需要進(jìn)行轉(zhuǎn)義。如果您需要在參數(shù)值中包含逗號(hào),請(qǐng)將其轉(zhuǎn)義,如下所示:'?\,?'。?例如,這適用于腳本函數(shù) - Javascript、Beanshell、Jexl、groovy - 有必要在腳本方法調(diào)用中轉(zhuǎn)義任何可能需要的逗號(hào) - 例如
${__BeanShell(vars.put("name"\,"value"))}或者,您可以將腳本定義為變量,例如在測(cè)試計(jì)劃中:
腳本 vars.put("name","value") 然后可以按如下方式引用該腳本: ${__BeanShell(${SCRIPT})} 不需要在SCRIPT變量中轉(zhuǎn)義逗號(hào),因?yàn)樵趯⒆兞刻鎿Q為其值之前會(huì)解析函數(shù)調(diào)用。這與 JSR223 或 BeanShell 采樣器配合使用效果很好,因?yàn)樗鼈兛捎糜跍y(cè)試 Javascript、Jexl 和 BeanShell 腳本。函數(shù)可以引用變量和其他函數(shù),例如?${__XPath(${__P(xpath.file),${XPATH})}?將使用屬性“?xpath.file?”作為文件名,變量XPATH的內(nèi)容為要搜索的表達(dá)式。
JMeter 提供了一個(gè)工具來幫助您為各種內(nèi)置函數(shù)構(gòu)建函數(shù)調(diào)用,然后您可以復(fù)制粘貼。它不會(huì)自動(dòng)為您轉(zhuǎn)義值,因?yàn)楹瘮?shù)可以是其他函數(shù)的參數(shù),并且您應(yīng)該只將您想要作為文字的值轉(zhuǎn)義。
如果字符串包含反斜杠('?\ ')并且還包含函數(shù)或變量引用,則如果反斜杠出現(xiàn)在'?$?'或'?,?'或'?\?'之前,則將刪除反斜杠。此行為對(duì)于允許包含逗號(hào)或字符串${的嵌套函數(shù)是必要的。如果字符串不包含函數(shù)或變量引用,則不會(huì)刪除 '?$?' 或 '?、?' 或 '?\?'之前的反斜杠。可以使用__logn()函數(shù)報(bào)告變量或函數(shù)的值。定義變量后,__logn()函數(shù)引用可以在測(cè)試計(jì)劃中的任何地方使用。或者,Java 請(qǐng)求采樣器可用于創(chuàng)建包含變量引用的示例;輸出將顯示在適當(dāng)?shù)膫陕犉髦小U?qǐng)注意,有一個(gè)調(diào)試采樣器?可用于在樹視圖偵聽器中顯示變量的值等。
*如果你定義了一個(gè)與內(nèi)置函數(shù)同名的用戶定義的靜態(tài)變量,你的靜態(tài)變量將覆蓋內(nèi)置函數(shù)。20.4 函數(shù)助手對(duì)話框
函數(shù)助手對(duì)話框可從 JMeter 的工具菜單中獲得。
函數(shù)助手對(duì)話框
使用函數(shù)助手,您可以從下拉列表中選擇一個(gè)函數(shù),并為其參數(shù)賦值。表中的左列提供了參數(shù)的簡(jiǎn)要描述,右列是您為該參數(shù)寫入值的位置。不同的函數(shù)采用不同的參數(shù)。
完成此操作后,單擊“生成”按鈕,并生成適當(dāng)?shù)淖址┠鷱?fù)制粘貼到您喜歡的任何地方的測(cè)試計(jì)劃中。
?
20.5 功能
__regex函數(shù)
Regex 函數(shù)用于使用任何正則表達(dá)式(由用戶提供)解析先前的響應(yīng)(或變量的值)。該函數(shù)返回填充了變量值的模板字符串。
__regexFunction還可以存儲(chǔ)值以供將來使用。在第六個(gè)參數(shù)中,您可以指定一個(gè)引用名稱。執(zhí)行此函數(shù)后,稍后可以使用用戶定義值的語法檢索相同的值。例如,如果您輸入“?refName?”作為第六個(gè)參數(shù),您將能夠使用:
- ${refName}引用此函數(shù)解析的第二個(gè)參數(shù)(“替換字符串的模板”)的計(jì)算結(jié)果
- ${refName_g0}引用此函數(shù)解析的整個(gè)匹配項(xiàng)。
- ${refName_g1}引用此函數(shù)解析的第一個(gè)組。
- ${refName_g#}引用此函數(shù)解析的第 n個(gè)組。
- ${refName_matchNr}引用此函數(shù)找到的組數(shù)。
參數(shù)
屬性 ? 描述 ? 必需的 第一個(gè)論點(diǎn) ? 第一個(gè)參數(shù)是應(yīng)用于響應(yīng)數(shù)據(jù)的正則表達(dá)式。它將抓取所有匹配項(xiàng)。您希望在模板字符串中使用此表達(dá)式的任何部分,請(qǐng)務(wù)必用括號(hào)括起來。示例:?<a href="(.*)">。這將獲取鏈接的值并將其存儲(chǔ)為第一組(只有 1 組)。另一個(gè)例子:<input type="hidden" name="(.*)" value="(.*)">。這將獲取名稱作為第一組,并將值作為第二組。這些值可以在您的模板字符串中使用 ? 是的 第二個(gè)論點(diǎn) ? 這是將在運(yùn)行時(shí)替換函數(shù)的模板字符串。要引用正則表達(dá)式中捕獲的組,請(qǐng)使用語法:?$[group_number]$。即:$1$或$2$。您的模板可以是任何字符串。 ? 是的 第三個(gè)論點(diǎn) ? 第三個(gè)參數(shù)告訴 JMeter 使用哪個(gè)匹配。您的正則表達(dá)式可能會(huì)找到許多匹配項(xiàng)。你有四個(gè)選擇:- 一個(gè)整數(shù) - 告訴 JMeter 使用該匹配。'?1?' 表示找到的第一個(gè)匹配項(xiàng),'?2?' 表示第二個(gè)匹配項(xiàng),依此類推
- RAND?- 告訴 JMeter 隨機(jī)選擇一個(gè)匹配項(xiàng)。
- ALL?- 告訴 JMeter 使用所有匹配項(xiàng),并為每個(gè)匹配項(xiàng)創(chuàng)建一個(gè)模板字符串,然后將它們?nèi)扛郊釉谝黄稹_@個(gè)選項(xiàng)很少使用。
- 一個(gè)介于 0 和 1 之間的浮點(diǎn)數(shù) - 告訴 JMeter 使用以下公式找到第 X個(gè)匹配項(xiàng):(number_of_matches_found * float_number) 四舍五入到最接近的整數(shù)。
存儲(chǔ)的值是${refName}(替換模板字符串)和${refName_g#},其中“?#?”是正則表達(dá)式中的組號(hào)(“?0?”可用于引用整個(gè)匹配項(xiàng))。 ? 不 第七個(gè)論點(diǎn) ? 輸入變量名。如果指定,則將變量的值用作輸入,而不是使用先前的樣本結(jié)果。 ? 不 ^
__柜臺(tái)
計(jì)數(shù)器每次調(diào)用時(shí)都會(huì)生成一個(gè)新數(shù)字,從 1 開始,每次遞增 +1。計(jì)數(shù)器可以配置為將每個(gè)模擬用戶的值分開,或者為所有用戶使用相同的計(jì)數(shù)器。如果每個(gè)用戶的值分別遞增,這就像計(jì)算測(cè)試計(jì)劃的迭代次數(shù)。全局計(jì)數(shù)器就像計(jì)算該請(qǐng)求運(yùn)行了多少次。
計(jì)數(shù)器使用一個(gè)整數(shù)變量來保存計(jì)數(shù),因此它的最大值為 2,147,483,647。
計(jì)數(shù)器函數(shù)實(shí)例是完全獨(dú)立的。全局計(jì)數(shù)器 - “?FALSE?” - 由每個(gè)計(jì)數(shù)器實(shí)例單獨(dú)維護(hù)。
同一迭代中的多個(gè)__counter函數(shù)調(diào)用不會(huì)進(jìn)一步增加該值。
如果您想要為每個(gè)樣本增加一個(gè)計(jì)數(shù),請(qǐng)使用預(yù)處理器中的函數(shù),例如User Parameters。
參數(shù)
屬性 ? 描述 ? 必需的 第一個(gè)論點(diǎn) ? 如果您希望每個(gè)模擬用戶的計(jì)數(shù)器保持獨(dú)立并與其他用戶分開,則為?TRUE 。全局計(jì)數(shù)器為FALSE。 ? 是的 第二個(gè)論點(diǎn) ? 用于重用此函數(shù)創(chuàng)建的值的引用名稱。存儲(chǔ)值的格式為 ${refName}。這允許您保留一個(gè)計(jì)數(shù)器并在多個(gè)位置引用其值。 ? 不 ^
__threadNum
線程號(hào)函數(shù)只是返回當(dāng)前正在執(zhí)行的線程號(hào)。這些數(shù)字僅相對(duì)于它們的 ThreadGroup 是局部唯一的,這意味著從這個(gè)函數(shù)的角度來看,一個(gè)線程組中的線程 #1 與另一個(gè)線程組中的線程 #1 無法區(qū)分。
該函數(shù)返回一個(gè)介于 1 和最大運(yùn)行線程數(shù)之間的數(shù)字。請(qǐng)注意,如果您將 JSR223 代碼與JMeterContext對(duì)象(ctx變量)一起使用,則以下代碼將返回一個(gè)介于零和(最大運(yùn)行線程數(shù)減一)之間的數(shù)字 <span style="color:#000000"><span style="color:orange">ctx.getThreadNum()</span></span>此函數(shù)沒有參數(shù)。
使用示例:
<span style="color:#000000"><span style="color:orange">${__threadNum}</span></span> 返回一個(gè)介于 1 和包含線程組中配置的最大運(yùn)行線程數(shù)之間的數(shù)字 此功能不適用于任何配置元素(例如用戶定義的變量),因?yàn)樗鼈兪菑膯为?dú)的線程運(yùn)行的。在測(cè)試計(jì)劃中使用它也沒有意義。 ^__threadGroupName
線程組名稱函數(shù)只返回正在執(zhí)行的線程組的名稱。
此函數(shù)沒有參數(shù)。
使用示例:
<span style="color:#000000"><span style="color:orange">${__threadGroupName}</span></span> 此功能不適用于任何配置元素(例如用戶定義的變量),因?yàn)樗鼈兪菑膯为?dú)的線程運(yùn)行的。在測(cè)試計(jì)劃中使用它也沒有意義。 ^__intSum
intSum 函數(shù)可用于計(jì)算兩個(gè)或多個(gè)整數(shù)值的總和。
引用名稱是可選的,但它不能是有效的整數(shù)。參數(shù)
屬性 ? 描述 ? 必需的 第一個(gè)論點(diǎn) ? 第一個(gè) int 值。 ? 是的 第二個(gè)論點(diǎn) ? 第二個(gè) int 值。 ? 是的 第 n 個(gè)參數(shù) ? 第 n個(gè)int 值。 ? 不 最后一個(gè)論點(diǎn) ? 用于重用此函數(shù)計(jì)算的值的引用名稱。如果指定,引用名稱必須至少包含一個(gè)非數(shù)字字符,否則它將被視為要添加的另一個(gè) int 值。 ? 不例子:
<span style="color:#000000"><span style="color:orange">${__intSum(2,5,MYVAR)}</span></span> 將返回 7 (2+5) 并將結(jié)果存儲(chǔ)在 MYVAR 變量中。所以${MYVAR}將等于 7。? <span style="color:#000000"><span style="color:orange">${__intSum(2,5,7)}</span></span> 將返回 14 (2+5+7) 并將結(jié)果存儲(chǔ)在 MYVAR 變量中。
? <span style="color:#000000"><span style="color:orange">${__intSum(1,2,5,${MYVAR})}</span></span> 如果 MYVAR 值等于 8,將返回 16, 1+2+5+${MYVAR}) ^
__longSum
longSum 函數(shù)可用于計(jì)算兩個(gè)或多個(gè) long 值的總和,只要您知道您的值不在 -2147483648 到 2147483647 的區(qū)間內(nèi),請(qǐng)使用它而不是 __intSum。
參數(shù)
屬性 ? 描述 ? 必需的 第一個(gè)論點(diǎn) ? 第一個(gè)長(zhǎng)值。 ? 是的 第二個(gè)論點(diǎn) ? 第二個(gè)長(zhǎng)值。 ? 是的 第 n 個(gè)參數(shù) ? 第 n個(gè)long 值。 ? 不 最后一個(gè)論點(diǎn) ? 用于重用此函數(shù)計(jì)算的值的引用名稱。如果指定,引用名稱必須包含至少一個(gè)非數(shù)字字符,否則將被視為要添加的另一個(gè)長(zhǎng)值。 ? 不例子:
<span style="color:#000000"><span style="color:orange">${__longSum(2,5,MYVAR)}</span></span> 將返回 7 (2+5) 并將結(jié)果存儲(chǔ)在 MYVAR 變量中。所以${MYVAR}將等于 7。? <span style="color:#000000"><span style="color:orange">${__longSum(2,5,7)}</span></span> 將返回 14 (2+5+7) 并將結(jié)果存儲(chǔ)在 MYVAR 變量中。
? <span style="color:#000000"><span style="color:orange">${__longSum(1,2,5,${MYVAR})}</span></span> 如果 MYVAR 值等于 8,將返回 16, 1+2+5+${MYVAR}) ^
__StringFromFile
StringFromFile 函數(shù)可用于從文本文件中讀取字符串。這對(duì)于運(yùn)行需要大量可變數(shù)據(jù)的測(cè)試很有用。例如,在測(cè)試銀行應(yīng)用程序時(shí),可能需要 100 或 1000 個(gè)不同的帳號(hào)。
另請(qǐng)參閱?可能更易于使用的CSV 數(shù)據(jù)集配置測(cè)試元素。但是,目前不支持多個(gè)輸入文件。
每次調(diào)用它都會(huì)從文件中讀取下一行。所有線程共享同一個(gè)實(shí)例,因此不同的線程將得到不同的行。當(dāng)?shù)竭_(dá)文件末尾時(shí),它將重新從頭開始讀取,除非已達(dá)到最大循環(huán)計(jì)數(shù)。如果測(cè)試腳本中有多個(gè)對(duì)該函數(shù)的引用,則每個(gè)引用都將獨(dú)立打開文件,即使文件名相同。[如果要在其他地方再次使用該值,請(qǐng)為每個(gè)函數(shù)調(diào)用使用不同的變量名。]
函數(shù)實(shí)例在線程之間共享,并且文件由恰好需要下一行輸入的任何線程(重新)打開,因此使用threadNumber作為文件名的一部分將導(dǎo)致不可預(yù)測(cè)的行為。如果打開或讀取文件發(fā)生錯(cuò)誤,則函數(shù)返回字符串“?**ERR**?”
參數(shù)
屬性 ? 描述 ? 必需的 文件名 ? 文件名的路徑。(路徑可以相對(duì)于 JMeter 啟動(dòng)目錄)如果使用可選的序列號(hào),路徑名應(yīng)該適合傳遞給 DecimalFormat。請(qǐng)參閱下面的示例。 ? 是的 變量名 ? 引用名稱 -?refName?- 用于重用此函數(shù)創(chuàng)建的值。存儲(chǔ)值的格式為 ${refName}。默認(rèn)為“?StringFromFile_?”。 ? 不 起始序號(hào) ? 初始序列號(hào)(如果省略,則將結(jié)束序列號(hào)視為循環(huán)計(jì)數(shù)) ? 不 結(jié)束序號(hào) ? 最終序號(hào)(如果省略,序號(hào)可以無限增加) ? 不打開或重新打開文件時(shí)解析文件名參數(shù)。
每次執(zhí)行函數(shù)時(shí)都會(huì)解析引用名稱參數(shù)(如果提供)。
使用序列號(hào):
使用可選序列號(hào)時(shí),路徑名用作java.text.DecimalFormat的格式字符串。當(dāng)前序列號(hào)作為唯一參數(shù)傳入。如果未指定可選的起始編號(hào),則按原樣使用路徑名。有用的格式化序列是:
#
插入數(shù)字,沒有前導(dǎo)零或空格
000
如有必要,將壓縮后的數(shù)字插入前導(dǎo)零的三位數(shù)字
格式字符串的使用 以下是一些格式字符串以及它們將生成的相應(yīng)序列。pin#'.'dat
將生成不帶前導(dǎo)零的數(shù)字并將點(diǎn)按字面意思
視為 pin1.dat、...、pin9.dat、pin10.dat、...、pin9999.dat
pin000'.'dat
將在保留點(diǎn)的同時(shí)生成前導(dǎo)零。當(dāng)數(shù)字開始有更多數(shù)字時(shí),該格式建議的這三個(gè)數(shù)字,序列將使用更多數(shù)字,如
pin001.dat、...?pin099.dat、...、pin999.dat、...、pin9999.dat
pin'.'dat#
將在保留點(diǎn)的同時(shí)附加不帶前導(dǎo)零的數(shù)字并生成
pin.dat1?, ...,?pin.dat9?, ...,?pin.dat999
如果需要的數(shù)字多于格式化字符,則數(shù)字將根據(jù)需要進(jìn)行擴(kuò)展。
為防止格式字符被解釋,請(qǐng)將其括在單引號(hào)中。請(qǐng)注意,“?.?”是一個(gè)格式化字符,必須用單引號(hào)括起來?(盡管#.和000.在小數(shù)點(diǎn)也是“?.?”的語言環(huán)境中按預(yù)期工作)
在其他語言環(huán)境中(例如fr),小數(shù)點(diǎn)是“?,?”——這意味著“?#.?”變成了“?nnn,?”。有關(guān)完整詳細(xì)信息,
請(qǐng)參閱DecimalFormat的文檔。
如果路徑名不包含任何特殊格式字符,則將當(dāng)前序號(hào)附加到名稱后,否則將根據(jù)格式說明插入序號(hào)。
如果省略了開始序號(hào),而指定了結(jié)束序號(hào),則序號(hào)被解釋為循環(huán)計(jì)數(shù),并且文件將最多使用“?end?”次。在這種情況下,文件名未格式化。
${__StringFromFile(PIN#'.'DAT,,1,2)}?- 讀取PIN1.DAT?,?PIN2.DAT
${__StringFromFile(PIN.DAT,,,2)}?- 讀取PIN.DAT兩次
注意 "?.?" 在上面的PIN.DAT中應(yīng)該不被引用。在這種情況下,起始編號(hào)被省略,因此文件名完全按原樣使用。
__機(jī)器名
machineName 函數(shù)返回本地主機(jī)名。這使用 Java 方法InetAddress.getLocalHost()并將其傳遞給getHostName()
參數(shù)
屬性 ? 描述 ? 必需的 變量名 ? 用于重用此函數(shù)計(jì)算的值的引用名稱。 ? 不例子:
<span style="color:#000000"><span style="color:orange">${__machineName()}</span></span> 將返回機(jī)器的主機(jī)名? <span style="color:#000000"><span style="color:orange">${__machineName}</span></span> 將返回機(jī)器的主機(jī)名 ^
__機(jī)器IP
machineIP 函數(shù)返回本地 IP 地址。這使用 Java 方法InetAddress.getLocalHost()并將其傳遞給getHostAddress()
參數(shù)
屬性 ? 描述 ? 必需的 變量名 ? 用于重用此函數(shù)計(jì)算的值的引用名稱。 ? 不例子:
<span style="color:#000000"><span style="color:orange">${__machineIP()}</span></span> 將返回機(jī)器的 IP 地址? <span style="color:#000000"><span style="color:orange">${__machineIP}</span></span> 將返回機(jī)器的 IP 地址 ^
__javaScript
javaScript 函數(shù)執(zhí)行一段 JavaScript(不是 Java!)代碼并返回其值
JMeter Javascript 函數(shù)調(diào)用一個(gè)獨(dú)立的 JavaScript 解釋器。Javascript用作腳本語言,因此您可以進(jìn)行計(jì)算等。
javaScript 不是用于 JMeter 性能的最佳腳本語言。如果您的計(jì)劃需要大量線程,建議使用__jexl3或__groovy函數(shù)。 對(duì)于 Nashorn 引擎,請(qǐng)參閱Java 平臺(tái)標(biāo)準(zhǔn)版 Nashorn 用戶指南。對(duì)于 Rhino 引擎,請(qǐng)參閱Mozilla Rhino 概述
以下變量可用于腳本:
- log?-函數(shù)的Logger
- ctx?-?JMeterContext對(duì)象
- vars?-?JMeterVariables對(duì)象
- threadName?- 包含當(dāng)前線程名稱的字符串
- sampler?- 當(dāng)前的Sampler對(duì)象(如果有)
- sampleResult?- 以前的 SampleResult對(duì)象(如果有)
- props?- JMeterProperties(類java.util.Properties)對(duì)象
Rhinoscript 允許通過其 Packages 對(duì)象訪問靜態(tài)方法。請(qǐng)參閱腳本 Java文檔。例如,可以訪問 JMeterContextService 靜態(tài)方法:?Java.type("org.apache.jmeter.threads.JMeterContextService").getTotalThreads()
JMeter 不是瀏覽器,不會(huì)解釋下載頁(yè)面中的 JavaScript。參數(shù)
屬性 ? 描述 ? 必需的 表達(dá) ? 要執(zhí)行的 JavaScript 表達(dá)式。例如:- new Date()?- 返回當(dāng)前日期和時(shí)間
- Math.floor(Math.random()*(${maxRandom}+1)) -?0和變量maxRandom?之間的隨機(jī)數(shù)
- ${minRandom}+Math.floor(Math.random()*(${maxRandom}-${minRandom}+1))?- 變量minRandom和maxRandom之間的隨機(jī)數(shù)
- "${VAR}"=="abcd"
例子:
<span style="color:#000000"><span style="color:orange">${__javaScript(新日期())}</span></span> 將于2016 年 1 月 9 日星期六 16:22:15 GMT+0100 (CET)返回? <span style="color:#000000"><span style="color:orange">${__javaScript(new Date(),MYDATE)}</span></span> 將返回Sat Jan 09 2016 16:22:15 GMT+0100 (CET)并將其存儲(chǔ)在變量MYDATE下
? <span style="color:#000000"><span style="color:orange">${__javaScript(Math.floor(Math.random()*(${maxRandom}+1)),MYRESULT)}</span></span> 將使用 maxRandom 變量,返回一個(gè)介于 0 和 maxRandom 之間的隨機(jī)值并將其存儲(chǔ)在 MYRESULT <span style="color:#000000"><span style="color:orange">${__javaScript(${minRandom}+Math.floor(Math.random()*(${maxRandom}-${minRandom}+1)),MYRESULT)}</span></span> 將使用maxRandom和minRandom變量,返回maxRandom和minRandom之間的隨機(jī)值并將其存儲(chǔ)在變量MYRESULT下 <span style="color:#000000"><span style="color:orange">${__javaScript("${VAR}"=="abcd",MYRESULT)}</span></span> 將VAR變量的值與abcd進(jìn)行比較,返回true或false并將結(jié)果存儲(chǔ)在 MYRESULT ^
__隨機(jī)的
random 函數(shù)返回一個(gè)介于給定最小值和最大值之間的隨機(jī)數(shù)。
參數(shù)
屬性 ? 描述 ? 必需的 最小值 ? 一個(gè)號(hào)碼 ? 是的 最大值 ? 更大的數(shù)字 ? 是的 變量名 ? 用于重用此函數(shù)計(jì)算的值的引用名稱。 ? 不例子:
<span style="color:#000000"><span style="color:orange">${__隨機(jī)(0,10)}</span></span> 將返回 0 到 10 之間的隨機(jī)數(shù)? <span style="color:#000000"><span style="color:orange">${__Random(0,10, MYVAR)}</span></span> 將返回 0 到 10 之間的隨機(jī)數(shù)并將其存儲(chǔ)在MYVAR中。${MYVAR}將包含隨機(jī)數(shù) ^
__隨機(jī)日期
RandomDate 函數(shù)返回一個(gè)介于給定開始日期和結(jié)束日期值之間的隨機(jī)日期。
參數(shù)
屬性 ? 描述 ? 必需的 時(shí)間格式 ? DateTimeFormatter 的格式字符串(默認(rèn)yyyy-MM-dd) ? 不 開始日期 ? 開始日期,默認(rèn)是現(xiàn)在 ? 不 結(jié)束日期 ? 結(jié)束日期 ? 是的 用于格式的語言環(huán)境 ? 語言環(huán)境的字符串格式。語言代碼必須是小寫的。國(guó)家代碼必須是大寫的。分隔符必須是下劃線,例如en_EN。請(qǐng)參閱Java SE 7 Supported Locales。如果省略,默認(rèn)情況下該函數(shù)使用 Apache JMeter 語言環(huán)境之一。 ? 不 變量名 ? 要設(shè)置的變量的名稱。 ? 不例子:
<span style="color:#000000"><span style="color:orange">${__RandomDate(,,2050-07-08,,)}</span></span> 將返回從現(xiàn)在到2050-07-08之間的隨機(jī)日期。例如2039-06-21? <span style="color:#000000"><span style="color:orange">${__RandomDate(dd MM yyyy,,08 07 2050,,)}</span></span> 將返回具有自定義格式的隨機(jī)日期,例如04 03 2034 ^
__隨機(jī)字符串
RandomString 函數(shù)使用要使用的字符中的字符返回長(zhǎng)度的隨機(jī)字符串。
參數(shù)
屬性 ? 描述 ? 必需的 長(zhǎng)度 ? 生成的字符串的數(shù)字長(zhǎng)度 ? 是的 使用的字符 ? 用于生成字符串的字符 ? 不 變量名 ? 用于重用此函數(shù)計(jì)算的值的引用名稱。 ? 不例子:
<span style="color:#000000"><span style="color:orange">${__RandomString(5)}</span></span> 將返回一個(gè) 5 個(gè)字符的隨機(jī)字符串,該字符串是否可讀? <span style="color:#000000"><span style="color:orange">${__RandomString(10,abcdefg)}</span></span> 將返回從abcdefg集合中挑選的 10 個(gè)字符的隨機(jī)字符串,例如cdbgdbeebd或adbfeggfad,...
? <span style="color:#000000"><span style="color:orange">${__RandomString(6,a12zeczclk, MYVAR)}</span></span> 將返回從a12zeczclk集合中挑選的 6 個(gè)字符的隨機(jī)字符串并將結(jié)果存儲(chǔ)在MYVAR中,MYVAR將包含類似2z22ak或z11kce的字符串,... ^
__RandomFromMultipleVars
RandomFromMultipleVars 函數(shù)根據(jù)Source Variables提供的變量值返回一個(gè)隨機(jī)值。
變量可以是簡(jiǎn)單的或多值的,因?yàn)樗鼈兛梢杂梢韵绿崛∑魃?#xff1a;- 邊界提取器
- 正則表達(dá)式提取器
- CSS 選擇器提取器
- JSON 提取器
- XPath 提取器
- XPath2 提取器
參數(shù)
屬性 ? 描述 ? 必需的 源變量 ? 由|分隔的變量名?包含將用作隨機(jī)計(jì)算輸入的值 ? 是的 變量名 ? 用于重用此函數(shù)計(jì)算的值的引用名稱。 ? 不例子:
<span style="color:#000000"><span style="color:orange">${__RandomFromMultipleVars(val)}</span></span> 將根據(jù)變量 val 的內(nèi)容返回一個(gè)隨機(jī)字符串,同時(shí)考慮它們是否為多值? <span style="color:#000000"><span style="color:orange">${__RandomFromMultipleVars(val1|val2)}</span></span> 將根據(jù)變量 val1 和 val2 的內(nèi)容返回一個(gè)隨機(jī)字符串,同時(shí)考慮它們是否為多值
? <span style="color:#000000"><span style="color:orange">${__RandomFromMultipleVars(val1|val2, MYVAR)}</span></span> 將根據(jù)變量 val1 和 val2 的內(nèi)容返回一個(gè)隨機(jī)字符串,同時(shí)考慮它們是否為多值,并將結(jié)果存儲(chǔ)在MYVAR ^
__UUID
UUID 函數(shù)返回一個(gè)偽隨機(jī)類型 4 通用唯一標(biāo)識(shí)符 (UUID)。
參數(shù)
屬性 ? 描述 ? 必需的例子:
<span style="color:#000000"><span style="color:orange">${__UUID()}</span></span> 將返回此格式的 UUID:c69e0dd1-ac6b-4f2b-8d59-5d4e8743eecd ^__CSV讀取
CSVRead 函數(shù)從 CSV 文件中返回一個(gè)字符串 (cf?StringFromFile?)
注意:JMeter 支持多個(gè)文件名。
在大多數(shù)情況下,較新的?CSV 數(shù)據(jù)集配置元素?更易于使用。
當(dāng)?shù)谝淮斡龅轿募麜r(shí),文件被打開并讀入一個(gè)內(nèi)部數(shù)組。如果檢測(cè)到空行,則將其視為文件結(jié)尾 - 這允許使用尾隨注釋。
對(duì)相同文件名的所有后續(xù)引用都使用相同的內(nèi)部數(shù)組。注意文件名大小寫對(duì)函數(shù)很重要,即使操作系統(tǒng)不關(guān)心,所以CSVRead(abc.txt,0)和CSVRead(aBc.txt,0)將引用不同的內(nèi)部數(shù)組。
*ALIAS功能允許多次打開同一個(gè)文件,也允許使用更短的文件名?。
每個(gè)線程都有自己的內(nèi)部指針,指向文件數(shù)組中的當(dāng)前行。當(dāng)一個(gè)線程第一次引用該文件時(shí),它將被分配到數(shù)組中的下一個(gè)空閑行,因此每個(gè)線程將訪問與所有其他線程不同的行。[除非線程數(shù)多于數(shù)組中的行數(shù)。]
默認(rèn)情況下,該函數(shù)在每個(gè)逗號(hào)處拆分行。如果要輸入包含逗號(hào)的列,則需要通過設(shè)置屬性將分隔符更改為不出現(xiàn)在任何列數(shù)據(jù)中的字符:csvread.delimiter參數(shù)
屬性 ? 描述 ? 必需的 文件名 ? 要從中讀取的文件(或*ALIAS ) ? 是的 列號(hào) ? 文件中的列號(hào)。?0?= 第一列,1?= 第二列,以此類推。“下一個(gè)” - 轉(zhuǎn)到文件的下一行。?*ALIAS?- 打開一個(gè)文件并將其分配給別名 ? 是的例如,您可以如下設(shè)置一些變量:
- COL1a?${__CSVRead(random.txt,0)}
- COL2a?${__CSVRead(random.txt,1)}${__CSVRead(random.txt,next)}
- COL1b?${__CSVRead(random.txt,0)}
- COL2b?${__CSVRead(random.txt,1)}${__CSVRead(random.txt,next)}
__財(cái)產(chǎn)
屬性函數(shù)返回 JMeter 屬性的值。如果找不到屬性值,并且沒有提供默認(rèn)值,則返回屬性名稱。提供默認(rèn)值時(shí),無需提供函數(shù)名稱 - 參數(shù)可以設(shè)置為 null,它將被忽略。
例如:- ${__property(user.dir)} -?user.dir的返回值
- ${__property(user.dir,UDIR)} -?user.dir的返回值并保存在UDIR
- ${__property(abcd,ABCD,atod)} - 屬性abcd的返回值(或“?atod?”,如果未定義)并保存在ABCD
- ${__property(abcd,,atod)} - 屬性abcd的返回值(或“?atod?”,如果未定義)但不保存它
參數(shù)
屬性 ? 描述 ? 必需的 屬性名稱 ? 要檢索的屬性名稱。 ? 是的 變量名 ? 用于重用此函數(shù)計(jì)算的值的引用名稱。 ? 不 默認(rèn)值 ? 屬性的默認(rèn)值。 ? 不 ^__P
這是一個(gè)簡(jiǎn)化的屬性函數(shù),旨在與命令行上定義的屬性一起使用。與__property函數(shù)不同,沒有將值保存在變量中的選項(xiàng),如果沒有提供默認(rèn)值,則假定為 1。選擇 1 的值是因?yàn)樗鼘?duì)循環(huán)等常見測(cè)試變量有效,線程數(shù),斜升等。
例如:定義屬性值:
<span style="color:#000000"><span style="color:orange">jmeter -Jgroup1.threads=7 -Jhostname1=www.realhost.edu </span></span> 獲取值:${__P(group1.threads)}?- 返回group1.threads的值
${__P(group1.loops)} - 返回group1.loops?的值
${__P(hostname,www.dummy.org) }?-如果未定義 ,則返回屬性hostname或www.dummy.org
在上面的示例中,第一個(gè)函數(shù)調(diào)用將返回7,第二個(gè)函數(shù)調(diào)用將返回1,最后一個(gè)將返回www.dummy.org?(除非這些屬性已定義別處!)
參數(shù)
屬性 ? 描述 ? 必需的 屬性名稱 ? 要檢索的屬性名稱。 ? 是的 默認(rèn)值 ? 屬性的默認(rèn)值。如果省略,默認(rèn)設(shè)置為“?1?”。 ? 不 ^__日志
log 函數(shù)記錄一條消息,并返回其輸入字符串
參數(shù)
屬性 ? 描述 ? 必需的 要記錄的字符串 ? 一個(gè)字符串 ? 是的 日志級(jí)別 ? OUT,ERR,DEBUG,INFO(默認(rèn)),WARN或ERROR ? 不 可拋出的文本 ? 如果非空,則創(chuàng)建一個(gè) Throwable 傳遞給記錄器 ? 不 評(píng)論 ? 如果存在,則顯示在字符串中。用于識(shí)別正在記錄的內(nèi)容。 ? 不OUT和ERR日志級(jí)別名稱分別用于將輸出定向到System.out和System.err。在這種情況下,輸出總是被打印出來——它不依賴于當(dāng)前的日志設(shè)置。
${__log(消息)}
寫入日志文件為“?......線程名稱:消息”
${__log(消息,輸出)}
寫入控制臺(tái)窗口
${__log(${VAR},,,VAR=)}
寫入日志文件為“?……線程名稱 VAR=value?”
^__logn
logn 函數(shù)記錄一條消息,并返回空字符串
參數(shù)
屬性 ? 描述 ? 必需的 要記錄的字符串 ? 一個(gè)字符串 ? 是的 日志級(jí)別 ? OUT,ERR,DEBUG,INFO(默認(rèn)),WARN或ERROR ? 不 可拋出的文本 ? 如果非空,則創(chuàng)建一個(gè) Throwable 傳遞給記錄器 ? 不OUT和ERR日志級(jí)別名稱分別用于將輸出定向到System.out和System.err。在這種情況下,輸出總是被打印出來——它不依賴于當(dāng)前的日志設(shè)置。
${__logn(VAR1=${VAR1},OUT)}
將變量的值寫入控制臺(tái)窗口
^__豆殼
BeanShell 函數(shù)評(píng)估傳遞給它的腳本,并返回結(jié)果。
為了提高性能,最好使用__groovy函數(shù)有關(guān)使用 BeanShell 的完整詳細(xì)信息,請(qǐng)參閱 BeanShell 網(wǎng)站BeanShell - Lightweight Scripting for Java
請(qǐng)注意,不同的解釋器用于測(cè)試腳本中函數(shù)的每個(gè)獨(dú)立出現(xiàn),但相同的解釋器用于后續(xù)調(diào)用。這意味著變量在對(duì)函數(shù)的調(diào)用中持續(xù)存在。可以從多個(gè)線程調(diào)用函數(shù)的單個(gè)實(shí)例。但是函數(shù)execute()方法是同步的。
如果定義了屬性“?beanshell.function.init?”,它將作為源文件的名稱傳遞給解釋器。這可用于定義常用方法和變量。bin 目錄中有一個(gè)示例初始化文件:BeanShellFunction.bshrc。
在執(zhí)行腳本之前設(shè)置以下變量:
- log?- BeanShell 函數(shù)的Logger?(*)
- ctx?-?JMeterContext對(duì)象
- vars?-?JMeterVariables對(duì)象
- props?- JMeterProperties(類java.util.Properties)對(duì)象
- threadName?- 線程名(字符串)
- Sampler?- 當(dāng)前的Sampler(如果有)
- SampleResult?- 當(dāng)前的SampleResult(如果有)
參數(shù)
屬性 ? 描述 ? 必需的 BeanShell 腳本 ? beanshell 腳本(不是文件名) ? 是的 變量名 ? 用于重用此函數(shù)計(jì)算的值的引用名稱。 ? 不例子:
${__BeanShell(123*456)}
返回56088
${__BeanShell(source("function.bsh"))}
處理function.bsh中的腳本
請(qǐng)記住為文本字符串和表示文本字符串的 JMeter 變量包括任何必要的引號(hào)。 ^__groovy
__groovy函數(shù)評(píng)估傳遞給它?的Apache Groovy腳本,并返回結(jié)果。
如果定義了屬性“?groovy.utilities?”,它將由 ScriptEngine 加載。這可用于定義常用方法和變量。bin目錄中有一個(gè)示例初始化文件:utility.groovy。
在執(zhí)行腳本之前設(shè)置以下變量:
- log?- groovy 函數(shù)的Logger?(*)
- ctx?-?JMeterContext對(duì)象
- vars?-?JMeterVariables對(duì)象
- props?- JMeterProperties(類java.util.Properties)對(duì)象
- threadName?- 線程名(字符串)
- sampler?- 當(dāng)前的Sampler,如果有的話
- prev?- 上一個(gè)SampleResult(如果有)
- OUT?- System.out
(*) 表示這是在處理初始化文件(如果有)之前設(shè)置的。其他變量因調(diào)用而異。
使用此函數(shù)時(shí),請(qǐng)使用上面定義的變量,而不是使用字符串替換來訪問腳本中的變量。遵循此模式將通過確保可以緩存 Groovy 來確保您的測(cè)試是高性能的。例如,不要執(zhí)行以下操作:
<span style="color:#000000"><span style="color:orange">${__groovy("${myVar}".substring(0\,2))}</span></span>想象一下,變量 myVar 隨每次交易而變化,上面的 Groovy 無法緩存,因?yàn)槟_本每次都在變化。
而是執(zhí)行以下操作,可以緩存:
參數(shù)
屬性 ? 描述 ? 必需的 要評(píng)估的表達(dá)式 ? Apache Groovy 腳本(不是文件名) 本身包含逗號(hào)的參數(shù)值應(yīng)根據(jù)需要進(jìn)行轉(zhuǎn)義。如果您需要在參數(shù)值中包含逗號(hào),請(qǐng)將其轉(zhuǎn)義為:'?\,?' ? 是的 變量名 ? 用于重用此函數(shù)計(jì)算的值的引用名稱。 ? 不例子:
<span style="color:#000000"><span style="color:orange">${__groovy(123*456)}</span></span>返回56088
<span style="color:#000000"><span style="color:orange">${__groovy(vars.get("myVar").substring(0\,2))}</span></span>如果 var 的值為JMeter,它將在運(yùn)行String.substring(0,2)時(shí)返回JM。請(qǐng)注意,已轉(zhuǎn)義為\,
請(qǐng)記住為文本字符串和表示文本字符串的 JMeter 變量包括任何必要的引號(hào)。 ^__分裂
split 函數(shù)根據(jù)分隔符將傳遞給它的字符串拆分,并返回原始字符串。如果任何分隔符相鄰,則返回“???”作為值。拆分字符串在變量${VAR_1}、${VAR_2}等中返回。變量的計(jì)數(shù)在${VAR_n}中返回。尾隨分隔符被視為缺失變量,并返回“???”。此外,為了讓它更好地與 ForEach 控制器一起工作,?__split現(xiàn)在刪除第一個(gè)未使用的變量,以防它是由先前的拆分設(shè)置的。
示例:?在測(cè)試計(jì)劃中定義VAR?="?a||c| "。
? <span style="color:#000000"><span style="color:orange">${__split(${VAR},VAR,|)}</span></span>
這將返回VAR的內(nèi)容,即“?a||c|?”并設(shè)置以下變量:
VAR_n?=?4
VAR_1?=?a
VAR_2?=??
VAR_3?=?c
VAR_4?=??
VAR_5?=空
參數(shù)
屬性 ? 描述 ? 必需的 要拆分的字符串 ? 分隔字符串,例如“?a|b|c?” ? 是的 變量名 ? 用于重用此函數(shù)計(jì)算的值的引用名稱。 ? 是的 分隔符 ? 分隔符,例如|?.?如果省略,則使用 ,。請(qǐng)注意,需要將 , 指定為\,。 ? 不 ^__XPath
XPath 函數(shù)讀取一個(gè) XML 文件并匹配 XPath。每次調(diào)用該函數(shù)時(shí),都會(huì)返回下一個(gè)匹配項(xiàng)。在文件末尾,它將環(huán)繞到開頭。如果沒有節(jié)點(diǎn)匹配,則函數(shù)將返回空字符串,并將警告消息寫入 JMeter 日志文件。
請(qǐng)注意,整個(gè) NodeList 都保存在內(nèi)存中。 例子: <span style="color:#000000"><span style="color:orange">${__XPath(/path/to/build.xml, //target/@name)}</span></span> 這將匹配build.xml中的所有目標(biāo)并返回下一個(gè) name 屬性的內(nèi)容參數(shù)
屬性 ? 描述 ? 必需的 要解析的 XML 文件 ? 要解析的 XML 文件 ? 是的 XPath ? 用于匹配 XML 文件中的節(jié)點(diǎn)的 XPath 表達(dá)式 ? 是的 ^__setProperty
setProperty 函數(shù)設(shè)置 JMeter 屬性的值。函數(shù)的默認(rèn)返回值是空字符串,因此函數(shù)調(diào)用可以在函數(shù)有效的任何地方使用。
可以通過將可選的第三個(gè)參數(shù)設(shè)置為“?true?”來返回原始值。
屬性對(duì) JMeter 來說是全局的,因此可以用來在線程和線程組之間進(jìn)行通信
參數(shù)
屬性 ? 描述 ? 必需的 屬性名稱 ? 要設(shè)置的屬性名稱。 ? 是的 適當(dāng)?shù)膬r(jià)值 ? 屬性的值。 ? 是的 真假 ? 是否應(yīng)該返回原始值? ? 不 ^__時(shí)間
time 函數(shù)以各種格式返回當(dāng)前時(shí)間。
參數(shù)
屬性 ? 描述 ? 必需的 格式 ? 要傳遞給SimpleDateFormat的格式。該函數(shù)支持各種速記別名,見下文。如果省略,則該函數(shù)返回自紀(jì)元以來的當(dāng)前時(shí)間(以毫秒為單位)。 ? 不 變量名 ? 要設(shè)置的變量的名稱。 ? 不如果省略格式字符串,則函數(shù)返回自紀(jì)元以來的當(dāng)前時(shí)間(以毫秒為單位)。如果格式匹配“?/ddd?”(其中ddd是十進(jìn)制數(shù)字),則該函數(shù)返回當(dāng)前時(shí)間(以毫秒為單位)除以ddd的值。例如,“?/1000?”返回自紀(jì)元以來的當(dāng)前時(shí)間(以秒為單位)。否則,將當(dāng)前時(shí)間傳遞給 SimpleDateFormat。提供了以下速記別名:
- YMD?=?yyyyMMdd
- HMS?=?HHmmss
- YMDHMS?=?yyyyMMdd-HHmmss
- USER1?= JMeter 屬性time.USER1中的任何內(nèi)容
- USER2?= JMeter 屬性time.USER2中的任何內(nèi)容
可以通過設(shè)置適當(dāng)?shù)?JMeter 屬性來更改默認(rèn)值,例如?time.YMD=yyMMdd
<span style="color:#000000"><span style="color:orange">${__time(dd/MM/yyyy,)}</span></span> 如果在 2018 年 1 月 21 日運(yùn)行,?將返回21/01/2018 <span style="color:#000000"><span style="color:orange">${__time(YMD,)}</span></span> 如果在 2018 年 1 月 21 日運(yùn)行,?將返回20180121 <span style="color:#000000"><span style="color:orange">${__time()}</span></span> 將以毫秒為單位返回時(shí)間1516540541624 ^__jexl2
jexl 函數(shù)返回計(jì)算?Commons JEXL 表達(dá)式的結(jié)果。有關(guān) JEXL 表達(dá)式的更多信息,請(qǐng)參閱下面的鏈接。
__jexl2函數(shù)使用 Commons JEXL?2
- JEXL 語法說明
- JEXL 示例
參數(shù)
屬性 ? 描述 ? 必需的 表達(dá) ? 要評(píng)估的表達(dá)式。例如,6*(5+2) ? 是的 變量名 ? 要設(shè)置的變量的名稱。 ? 不以下變量可用于腳本:
- log?-函數(shù)的Logger
- ctx?-?JMeterContext對(duì)象
- vars?-?JMeterVariables對(duì)象
- props?- JMeterProperties(類java.util.Properties)對(duì)象
- threadName?- 包含當(dāng)前線程名稱的字符串
- sampler?- 當(dāng)前的Sampler對(duì)象(如果有)
- sampleResult?- 以前的 SampleResult對(duì)象(如果有)
- OUT?- System.out - 例如OUT.println("message")
Jexl 還可以創(chuàng)建類并在其上調(diào)用方法,例如:
<span style="color:#000000"><span style="color:orange">Systemclass=log.class.forName("java.lang.System"); 現(xiàn)在=Systemclass.currentTimeMillis(); </span></span> 請(qǐng)注意,網(wǎng)站上的 Jexl 文檔錯(cuò)誤地建議“?div?”進(jìn)行整數(shù)除法。實(shí)際上“?div?”和“?/?”都執(zhí)行正常的除法。可以得到如下相同的效果: <span style="color:#000000"><span style="color:orange">我= 5 / 2; i.intValue(); // 或使用 i.longValue() </span></span> JMeter 允許表達(dá)式包含多個(gè)語句。 ^__jexl3
jexl 函數(shù)返回計(jì)算?Commons JEXL 表達(dá)式的結(jié)果。有關(guān) JEXL 表達(dá)式的更多信息,請(qǐng)參閱下面的鏈接。
__jexl3函數(shù)使用 Commons JEXL?3
- JEXL 語法說明
- JEXL 示例
參數(shù)
屬性 ? 描述 ? 必需的 表達(dá) ? 要評(píng)估的表達(dá)式。例如,6*(5+2) ? 是的 變量名 ? 要設(shè)置的變量的名稱。 ? 不以下變量可用于腳本:
- log?-函數(shù)的Logger
- ctx?-?JMeterContext對(duì)象
- vars?-?JMeterVariables對(duì)象
- props?- JMeterProperties(類java.util.Properties)對(duì)象
- threadName?- 包含當(dāng)前線程名稱的字符串
- sampler?- 當(dāng)前的Sampler對(duì)象(如果有)
- sampleResult?- 以前的 SampleResult對(duì)象(如果有)
- OUT?- System.out - 例如OUT.println("message")
Jexl 還可以創(chuàng)建類并在其上調(diào)用方法,例如:
<span style="color:#000000"><span style="color:orange">Systemclass=log.class.forName("java.lang.System"); 現(xiàn)在=Systemclass.currentTimeMillis(); </span></span> 請(qǐng)注意,網(wǎng)站上的 Jexl 文檔錯(cuò)誤地建議“?div?”進(jìn)行整數(shù)除法。實(shí)際上“?div?”和“?/?”都執(zhí)行正常的除法。可以得到如下相同的效果: <span style="color:#000000"><span style="color:orange">我= 5 / 2; i.intValue(); // 或使用 i.longValue() </span></span> JMeter 允許表達(dá)式包含多個(gè)語句。 ^__V
V(變量)函數(shù)返回對(duì)變量名表達(dá)式求值的結(jié)果。這可用于評(píng)估嵌套變量引用(當(dāng)前不支持)。
例如,如果有變量A1、A2和N?=?1:
- ${A1}?- 工作正常
- ${A${N}}?- 不起作用(嵌套變量引用)
- ${__V(A${N})}?- 工作正常。A${N}變?yōu)?strong>A1,__V函數(shù)返回A1的值
參數(shù)
屬性 ? 描述 ? 必需的 變量名 ? 要評(píng)估的變量。 ? 是的 默認(rèn)值 ? 未找到變量時(shí)的默認(rèn)值,如果為空且未找到變量,則函數(shù)返回變量名稱 ? 不 ^__evalVar
evalVar 函數(shù)返回計(jì)算存儲(chǔ)在變量中的表達(dá)式的結(jié)果。
這允許人們從文件中讀取字符串,并處理其中的任何變量引用。例如,如果變量“?query?”包含“?select ${column} from ${table}?”并且“?column?”和“?table?”包含“?name?”和“?customers?”,則${__evalVar(query)}?將評(píng)估為“從客戶中選擇名稱”。
參數(shù)
屬性 ? 描述 ? 必需的 變量名 ? 要評(píng)估的變量。 ? 是的 ^__eval
eval 函數(shù)返回計(jì)算字符串表達(dá)式的結(jié)果。
這允許在存儲(chǔ)在變量中的字符串中插入變量和函數(shù)引用。例如,給定以下變量:
- 姓名=史密斯
- 列=年齡
- 表=生日
- SQL?=?select ${column} from ${table} where name='${name}'
這可以與 CSV 數(shù)據(jù)集結(jié)合使用,例如 SQL 語句和值都在數(shù)據(jù)文件中定義。
參數(shù)
屬性 ? 描述 ? 必需的 變量名 ? 要評(píng)估的變量。 ? 是的 ^__char
char 函數(shù)將計(jì)算數(shù)字列表的結(jié)果作為 Unicode 字符返回。另請(qǐng)參見下面的__unescape()。
這允許將任意字符值添加到字段中。
參數(shù)
屬性 ? 描述 ? 必需的 Unicode 字符編號(hào)(十進(jìn)制或 0xhex) ? 要轉(zhuǎn)換為 Unicode 字符?的十進(jìn)制數(shù)(或十六進(jìn)制數(shù),如果以0x為前綴,或八進(jìn)制數(shù),如果以0為前綴)。 ? 是的示例:
${__char(13,10)}?=?${__char(0xD,0xA)}?=?${__char(015,012)}?=?CRLF
${__char(165)}?=?¥(日元)
__unescape
unescape 函數(shù)返回對(duì) Java 轉(zhuǎn)義字符串求值的結(jié)果。另請(qǐng)參見上面的__char()。
這允許人們向字段添加字符,否則這些字符很難通過 GUI 定義(或不??可能)。
參數(shù)
屬性 ? 描述 ? 必需的 取消轉(zhuǎn)義的字符串 ? 要轉(zhuǎn)義的字符串。 ? 是的示例:
${__unescape(\r\n)}?=?CRLF
${__unescape(1\t2)}?=?1?[tab]?2
__unescapeHtml
將包含 HTML 實(shí)體轉(zhuǎn)義的字符串轉(zhuǎn)義為包含與轉(zhuǎn)義對(duì)應(yīng)的實(shí)際 Unicode 字符的字符串的函數(shù)。支持 HTML 4.0 實(shí)體。
例如,字符串
<span style="color:#000000"><span style="color:orange">${__unescapeHtml(<Fran?ais>)}</span></span> 將返回<Fran?ais>。如果一個(gè)實(shí)體無法識(shí)別,則將其單獨(dú)放置,并逐字插入結(jié)果字符串中。例如${__unescapeHtml(>&zzzz;x)}將返回>&zzzz;x。
使用來自 Commons Lang 的?StringEscapeUtils#unescapeHtml(String) 。
參數(shù)
屬性 ? 描述 ? 必需的 取消轉(zhuǎn)義的字符串 ? 要轉(zhuǎn)義的字符串。 ? 是的 ^__escapeHtml
使用 HTML 實(shí)體對(duì)字符串中的字符進(jìn)行轉(zhuǎn)義的函數(shù)。支持 HTML 4.0 實(shí)體。
例如,
<span style="color:#000000"><span style="color:orange">${__escapeHtml("面包" & "黃油")}</span></span> 返回:?“面包”?&?“黃油”?.使用來自 Commons Lang 的?StringEscapeUtils#escapeHtml(String) 。
參數(shù)
屬性 ? 描述 ? 必需的 要轉(zhuǎn)義的字符串 ? 要轉(zhuǎn)義的字符串。 ? 是的 ^__urldecode
解碼application/x-www-form-urlencoded字符串的函數(shù)。注意:使用 UTF-8 作為編碼方案。
例如,字符串
<span style="color:#000000"><span style="color:orange">${__urldecode(Word+%22school%22+is+%22%C3%A9cole%22+in+法語)}</span></span> 返回?單詞“school”在法語中是“école”。使用 Java 類URLDecoder。
參數(shù)
屬性 ? 描述 ? 必需的 要解碼的字符串 ? 帶有要解碼的 URL 編碼字符的字符串。 ? 是的 ^__urlencode
將字符串編碼為application/x-www-form-urlencoded字符串的函數(shù)。
例如,字符串
<span style="color:#000000"><span style="color:orange">${__urlencode(“學(xué)校”在法語中是“école”)}</span></span> 返回?Word+%22school%22+is+%22%C3%A9cole%22+in+french。使用 Java 類URLEncoder。
參數(shù)
屬性 ? 描述 ? 必需的 要編碼的字符串 ? 以 URL 編碼字符編碼的字符串。 ? 是的 ^__FileToString
FileToString 函數(shù)可用于讀取整個(gè)文件。每次調(diào)用它都會(huì)讀取整個(gè)文件。
如果打開或讀取文件發(fā)生錯(cuò)誤,則函數(shù)返回字符串“?**ERR**?”
參數(shù)
屬性 ? 描述 ? 必需的 文件名 ? 文件名的路徑。(路徑可以相對(duì)于 JMeter 啟動(dòng)目錄) ? 是的 如果不是平臺(tái)默認(rèn)的文件編碼 ? 用于讀取文件的編碼。如果未指定,則使用平臺(tái)默認(rèn)值。 ? 不 變量名 ? 引用名稱 -?refName?- 用于重用此函數(shù)創(chuàng)建的值。存儲(chǔ)值的格式為 ${refName}。 ? 不每次執(zhí)行函數(shù)時(shí)都會(huì)解析文件名、編碼和引用名稱參數(shù)。
^__samplerName
samplerName 函數(shù)返回當(dāng)前采樣器的名稱(即標(biāo)簽)。
該功能在沒有關(guān)聯(lián)采樣器的測(cè)試元素中不起作用。例如測(cè)試計(jì)劃。配置元素也沒有關(guān)聯(lián)的采樣器。然而,一些配置元素被采樣器直接引用,例如 HTTP Header Manager 和 Http Cookie Manager,在這種情況下,函數(shù)在 Http Sampler 的上下文中解析。預(yù)處理器、后處理器和斷言總是有一個(gè)關(guān)聯(lián)的采樣器。
例子:
<span style="color:#000000"><span style="color:orange">${__samplerName()}</span></span>參數(shù)
屬性 ? 描述 ? 必需的 變量名 ? 引用名稱 -?refName?- 用于重用此函數(shù)創(chuàng)建的值。存儲(chǔ)值的格式為 ${refName}。 ? 不 ^__TestPlanName
TestPlanName 函數(shù)返回當(dāng)前測(cè)試計(jì)劃的名稱(可以在 Include Plans 中使用以了解調(diào)用測(cè)試計(jì)劃的名稱)。
例子:
<span style="color:#000000"><span style="color:orange">${__TestPlanName}</span></span> 將返回您的測(cè)試計(jì)劃的文件名,例如,如果計(jì)劃在名為 Demo.jmx 的文件中,它將返回“?Demo.jmx ^__escapeOroRegexpChars
轉(zhuǎn)義ORO Regexp 元字符的函數(shù),它相當(dāng)于Java Regexp Engine 中的\Q?\E。
例如,
<span style="color:#000000"><span style="color:orange">${__escapeOroRegexpChars([^"].+?,)}</span></span> 返回:?\[\^\"\]\.\+\?。使用來自 ORO 的 Perl5Compiler#quotemeta(String)。
參數(shù)
屬性 ? 描述 ? 必需的 要轉(zhuǎn)義的字符串 ? 要轉(zhuǎn)義的字符串。 ? 是的 變量名 ? 引用名稱 -?refName?- 用于重用此函數(shù)創(chuàng)建的值。存儲(chǔ)值的格式為 ${refName}。 ? 不 ^__escapeXml
使用 XML 1.0 實(shí)體對(duì)字符串中的字符進(jìn)行轉(zhuǎn)義的函數(shù)。
例如,
<span style="color:#000000"><span style="color:orange">${__escapeXml("面包" & '黃油')}</span></span> 返回:?“面包”;&?“黃油”?.使用來自 Commons Lang 的?StringEscapeUtils#escapeXml10(String) 。
參數(shù)
屬性 ? 描述 ? 必需的 要轉(zhuǎn)義的字符串 ? 要轉(zhuǎn)義的字符串。 ? 是的 ^__timeShift
timeShift 函數(shù)返回給定格式的日期,并添加指定的秒數(shù)、分鐘數(shù)、小時(shí)數(shù)、天數(shù)或月數(shù)
參數(shù)
屬性 ? 描述 ? 必需的 格式 ? 要傳遞給 DateTimeFormatter 的格式。請(qǐng)參閱DateTimeFormatter?如果省略,則該函數(shù)使用自紀(jì)元以來的毫秒數(shù)格式。 ? 不 換班日期 ? 以參數(shù) 'Format' 設(shè)置的格式指示日期要移位 如果省略,則日期設(shè)置為現(xiàn)在 ? 不 價(jià)值轉(zhuǎn)移 ? 根據(jù)持續(xù)時(shí)間的文本表示,例如 PnDTnHnMn.nS,指示要轉(zhuǎn)換的指定秒數(shù)、分鐘數(shù)、小時(shí)數(shù)或天數(shù)。請(qǐng)參閱 https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html#parse-java.lang.CharSequence-- PT20.345S解析為 20.345 秒
- PT15M解析為 15 分鐘
- PT10H解析為 10 小時(shí)
- P2D解析為 2 天
- -P6H3M解析為 -6 小時(shí) -3 分鐘
例子:
<span style="color:#000000"><span style="color:orange">${__timeShift(dd/MM/yyyy,21/01/2018,P2D,,)}</span></span> 返回23/01/2018 <span style="color:#000000"><span style="color:orange">${__timeShift(dd MMMM yyyy,21 février 2018,P2D,fr_FR,)}</span></span> 2018 年 2 月 23 日回歸 ^__消化
摘要函數(shù)返回特定散列算法中的加密值,帶有可選的鹽、大寫字母和變量名。
參數(shù)
屬性 ? 描述 ? 必需的 算法 ? 用于加密的算法 對(duì)于可能的算法,請(qǐng)參閱?StandardNames中的 MessageDigest- MD2
- MD5
- SHA-1
- SHA-224
- SHA-256
- SHA-384
- SHA-512
例子:
<span style="color:#000000"><span style="color:orange">${__digest(MD5,Errare humanum est,,,)}</span></span> 返回c49f00b92667a35c63708933384dad52? <span style="color:#000000"><span style="color:orange">${__digest(SHA-256,Felix qui potuit rerum cognoscere causas,mysalt,,)}</span></span> 返回a3bc6900fe2b2fc5fa8a601a4a84e27a079bf2c581d485009bc5c00516729ac7 ^
__dateTimeConvert
__dateTimeConvert函數(shù)將源格式的日期轉(zhuǎn)換為目標(biāo)格式,將結(jié)果可選地存儲(chǔ)在變量名稱中。
參數(shù)
屬性 ? 描述 ? 必需的 日期字符串 ? 要從源日期格式轉(zhuǎn)換為目標(biāo)日期格式的日期字符串。如果源日期格式為空,則此處可以使用日期作為紀(jì)元時(shí)間。 ? 是的 源日期格式 ? 原始日期格式。如果為空,則日期字符串字段必須是紀(jì)元時(shí)間。 ? 不 目標(biāo)日期格式 ? 新的日期格式 ? 是的 變量名 ? 要設(shè)置的變量的名稱。 ? 不例子:
<span style="color:#000000"><span style="color:orange">${__dateTimeConvert(01212018,MMddyyyy,dd/MM/yyyy,)}</span></span> 返回21/01/2018使用紀(jì)元時(shí)間值:1526574881000,
<span style="color:#000000"><span style="color:orange">${__dateTimeConvert(1526574881000,,dd/MM/yyyy HH:mm,)}</span></span> 返回UTC 時(shí)間 17/05/2018?16:34?(-Duser.timezone=GMT) ^__isPropDefined
__isPropDefined函數(shù)如果屬性存在則返回 true,否則返回 false?。
參數(shù)
屬性 ? 描述 ? 必需的 屬性名稱 ? 用于檢查是否已定義的屬性名稱 ? 是的例子:
<span style="color:#000000"><span style="color:orange">${__isPropDefined(START.HMS)}</span></span> 將返回真 ^__isVarDefined
__isVarDefined函數(shù)如果變量存在則返回 true,否則返回 false?。
參數(shù)
屬性 ? 描述 ? 必需的 變量名 ? 用于檢查是否已定義的變量名稱 ? 是的例子:
<span style="color:#000000"><span style="color:orange">${__isVarDefined(JMeterThread.last_sample_ok)}</span></span> 將返回真 ^__changeCase
change case 函數(shù)返回一個(gè)字符串值,該值已按照特定模式更改。結(jié)果可以選擇保存在 JMeter 變量中。
參數(shù)
屬性 ? 描述 ? 必需的 改變大小寫的字符串 ? 將更改大小寫的字符串 ? 是的 改變案例模式 ? 用于更改大小寫的模式,例如ab-CD eF:- UPPER結(jié)果為 AB-CD EF
- 降低結(jié)果為 ab-cd ed
- 將結(jié)果大寫為 Ab-CD?eF
例子:
<span style="color:#000000"><span style="color:orange">${__changeCase(Avaro omnia desunt\, inopi pauca\, sapienti nihil,UPPER,)}</span></span> 將返回AVARO OMNIA DESUNT、INOPI PAUCA、SAPIENTI NIHIL <span style="color:#000000"><span style="color:orange">${__changeCase(LABOR OMNIA VINCIT IMPROBUS,LOWER,)}</span></span> 將返回勞動(dòng)力omnia vincit improbus <span style="color:#000000"><span style="color:orange">${__changeCase(omnibus viis romam pervenitur,CAPITALIZE,)}</span></span> 將返回Omnibus viis romam pervenitur ^__StringToFile
__StringToFile函數(shù)可用于將字符串寫入文件。每次調(diào)用它時(shí),它都會(huì)將一個(gè)字符串寫入文件追加或覆蓋。
函數(shù)的默認(rèn)返回值是空字符串
參數(shù)
屬性 ? 描述 ? 必需的 文件路徑 ? 文件名的路徑。(路徑是絕對(duì)的) ? 是的 要寫入的字符串 ? 要寫入文件的字符串。如果您需要在內(nèi)容中插入換行符,請(qǐng)?jiān)谧址?使用\n 。 ? 是的 附加到文件? ? 字符串的寫法,true表示追加,false?表示覆蓋。如果未指定,則默認(rèn)附加為true。 ? 不 文件編碼(如果不是 UTF-8) ? 用于寫入文件的編碼。如果未指定,則默認(rèn)編碼為UTF-8。 ? 不 ^
20.6 預(yù)定義變量
大多數(shù)變量是通過調(diào)用函數(shù)或通過用戶定義變量等測(cè)試元素設(shè)置的;在這種情況下,用戶可以完全控制所使用的變量名稱。然而,一些變量是由 JMeter 在內(nèi)部定義的。下面列出了這些。
- COOKIE_cookiename?- 包含 cookie 值(請(qǐng)參閱HTTP Cookie 管理器)
- JMeterThread.last_sample_ok?- 最后一個(gè)樣本是否正常 -?true?/?false。注意:這是在 PostProcessors 和 Assertions 運(yùn)行后更新的。
- START變量(見下一節(jié))
20.6 預(yù)定義屬性
JMeter 屬性集是從 JMeter 啟動(dòng)時(shí)定義的系統(tǒng)屬性初始化的;額外的 JMeter 屬性在jmeter.properties、user.properties或命令行中定義。
JMeter 定義了一些內(nèi)置屬性。下面列出了這些。為方便起見,START屬性也被復(fù)制到具有相同名稱的變量中。
- START.MS?- JMeter 開始時(shí)間(以毫秒為單位)
- START.YMD?- JMeter 開始時(shí)間為yyyyMMdd
- START.HMS?- JMeter 開始時(shí)間為HHmmss
- TESTSTART.MS?- 測(cè)試開始時(shí)間,以毫秒為單位
請(qǐng)注意,START變量/屬性代表 JMeter 啟動(dòng)時(shí)間,而不是測(cè)試開始時(shí)間。它們主要用于文件名等。
?
總結(jié)
以上是生活随笔為你收集整理的关于Jmeter中的函数和变量用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机音乐文献,论音乐文献计算机编郭小株
- 下一篇: 计算机弹音乐百度百科,音乐术语