乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      jmeter函數(shù)和變量(一)

       langqy 2019-07-15

      概述

      對(duì)jmeter函數(shù)進(jìn)行一次全面復(fù)習(xí),依據(jù)是官網(wǎng)的文檔版本3.2。本來(lái)想一篇寫完的,中間做項(xiàng)目和一些雜事拖了2個(gè)禮拜,再回來(lái)寫的時(shí)候發(fā)現(xiàn)太長(zhǎng)了~還是分開(kāi)寫比較妥當(dāng)。先放出一部分吧。

      函數(shù)和變量

      JMeter函數(shù)是一種特殊的值,可以在測(cè)試樹(shù)中填充任何采樣器或其他元素的字段。函數(shù)調(diào)用如下:

      ${__functionName(var1,var2,var3)}

      “__functionName”與具體的函數(shù)名匹配。圓括號(hào)內(nèi)是傳遞給函數(shù)的參數(shù),例如${__time(YMD)},實(shí)際的參數(shù)因函數(shù)而異。不需要參數(shù)的函數(shù)可以去掉括號(hào),例如${__threadNum}。
      如果一個(gè)函數(shù)參數(shù)包含一個(gè)逗號(hào),那么一定要用”\”來(lái)轉(zhuǎn)義,否則JMeter將把它作為一個(gè)參數(shù)分隔符。
      例如:

      ${__time(EEE\, d MMM yyyy)}

      如果逗號(hào)沒(méi)有轉(zhuǎn)義,將會(huì)有異常拋出

      ${__javaScript(Math.max(2,5))} 
      ERROR - jmeter.functions.JavaScript: Error processing Javascript: [Math.max(2]
              org.mozilla.javascript.EvaluatorException: missing ) after argument list (<cmd>#1)

      這是因?yàn)樽址盡ath.max(2,5)”被看作是__javascript函數(shù)的兩個(gè)參數(shù):”Math.max(2” 和 “5)”
      變量被引用如下:

      ${VARIABLE}

      如果引用一個(gè)未定義的函數(shù)或變量,JMeter不會(huì)報(bào)告/記錄一個(gè)錯(cuò)誤——引用沒(méi)有改變。例如,如果沒(méi)有定義變量UNDEF,那么${UNDEF}的值就是${UNDEF}。變量,函數(shù)(或者屬性)都是區(qū)分大小寫的。在使用jmeter變量之前,JMeter會(huì)刪除變量前后的空格,例如${__Random(1,63, LOTTERY )}將會(huì)使用變量’LOTTERY’而不是’ LOTTERY ‘(這個(gè)前后各有一個(gè)空格)。

      屬性與變量不同。變量是線程的局部變量;屬性在所有線程中都是通用的,并且需要使用__P或__property函數(shù)來(lái)引用。

      當(dāng)在一個(gè)windows路徑的變量之前使用”\”,例如C:\test\${test},確保轉(zhuǎn)義,否則JMeter將不會(huì)解釋變量,例如:C:\\test\\${test}。或者,只使用/替代路徑分隔符-例如C:/test/$test-Windows jvms將根據(jù)需要轉(zhuǎn)換分隔符。

      摘自官網(wǎng):

      Type of functionNameCommentSince
      InformationthreadNumget thread number1.X
      InformationsamplerNameget the sampler name (label)2.5
      InformationmachineIPget the local machine IP address2.6
      InformationmachineNameget the local machine name1.X
      Informationtimereturn current time in various formats2.2
      Informationloglog (or display) a message (and return the value)2.2
      Informationlognlog (or display) a message (empty return value)2.2
      InputStringFromFileread a line from a file1.9
      InputFileToStringread an entire file2.4
      InputCSVReadread from CSV delimited file1.9
      InputXPathUse an XPath expression to read from a file2.0.3
      Calculationcountergenerate an incrementing number1.X
      CalculationintSumadd int numbers1.8.1
      CalculationlongSumadd long numbers2.3.2
      CalculationRandomgenerate a random number1.9
      CalculationRandomFromMultipleVarsextracts an element from the values of a set of variables separated by
      CalculationRandomStringgenerate a random string2.6
      CalculationUUIDgenerate a random type 4 UUID2.9
      Scriptinggroovyrun a Groovy script3.1
      ScriptingBeanShellrun a BeanShell script1.X
      ScriptingjavaScriptprocess JavaScript (Nashorn)1.9
      Scriptingjexl2evaluate a Commons Jexl2 expressionjexl2(2.1.1)
      Scriptingjexl3evaluate a Commons Jexl3 expressionjexl3 (3.0)
      Propertiespropertyread a property2
      PropertiesPread a property (shorthand method)2
      PropertiessetPropertyset a JMeter property2.1
      VariablessplitSplit a string into variables2.0.2
      VariablesVevaluate a variable name2.3RC3
      Variablesevalevaluate a variable expression2.3.1
      VariablesevalVarevaluate an expression stored in a variable2.3.1
      StringregexFunctionparse previous response using a regular expression1.X
      StringescapeOroRegexpCharsquote meta chars used by ORO regular expression2.9
      Stringchargenerate Unicode char values from a list of numbers2.3.3
      StringunescapeProcess strings containing Java escapes (e.g. \n & \t)2.3.3
      StringunescapeHtmlDecode HTML-encoded strings2.3.3
      StringescapeHtmlEncode strings using HTML encoding2.3.3
      StringescapeXmlEncode strings using XMl encoding3.2
      StringurldecodeDecode a application/x-www-form-urlencoded string2.1
      StringurlencodeEncode a string to a application/x-www-form-urlencoded string2.1
      StringTestPlanNameReturn name of current test plan2.6

      函數(shù)能做什么

      有兩種函數(shù):用戶定義的靜態(tài)值(或變量)和內(nèi)置函數(shù)。
      用戶定義的靜態(tài)值允許用戶定義變量,當(dāng)測(cè)試樹(shù)被編譯并提交運(yùn)行時(shí),這些變量將被替換為靜態(tài)值。
      替換在測(cè)試運(yùn)行第一次開(kāi)始時(shí)發(fā)生。用于替換所有HTTP請(qǐng)求的域字段,例如,將同一個(gè)測(cè)試用例測(cè)試不同服務(wù)器的將變成一個(gè)簡(jiǎn)單的問(wèn)題。
      注意:變量不能被嵌套,例如${Var${N}}將不起作用. __V (variable)函數(shù)可以用來(lái)做變量替換: ${__V(Var${N})}. 你也可以使用 ${__BeanShell(vars.get(“Var${N}”)}.
      這種類型的替換在沒(méi)有函數(shù)的情況下是可能的,但是不那么方便,也不那么直觀。它要求用戶創(chuàng)建默認(rèn)的配置元素,這些元素將填充Samplers的空白值。變量允許只替換任何給定值的一部分,而不只是填充空白值。
      有了內(nèi)置函數(shù),用戶可以在運(yùn)行時(shí)根據(jù)之前的響應(yīng)數(shù)據(jù)計(jì)算新值,以及該函數(shù)所在的線程、耗時(shí)和許多其他信息。在整個(gè)測(cè)試過(guò)程中,這些值會(huì)在每個(gè)請(qǐng)求后刷新。

      函數(shù)是線程共享的,在測(cè)試中每次函數(shù)調(diào)用由函數(shù)的不同實(shí)例處理

      函數(shù)和變量在哪里使用

      函數(shù)和變量可以寫入任何測(cè)試組件的任何字段(除了測(cè)試計(jì)劃之外)。有些字段不允許隨機(jī)字符串,因?yàn)樗鼈兤谕麛?shù)字,因此不會(huì)接受一個(gè)函數(shù)。但是,大多數(shù)字段都允許函數(shù)。
      在測(cè)試計(jì)劃中使用的函數(shù)有一些限制。在處理函數(shù)時(shí),JMeter線程變量將不會(huì)被完全設(shè)置,因此變量名作為一個(gè)參數(shù)傳入,不會(huì)被設(shè)置,變量引用也不會(huì)起作用,因此split()和regex()和變量評(píng)估函數(shù)將不會(huì)起作用。threadNum()函數(shù)不會(huì)起作用(在測(cè)試計(jì)劃級(jí)別上沒(méi)有意義)。以下功能應(yīng)該在測(cè)試計(jì)劃中起作用:

      • intSum

      • longSum

      • machineName

      • BeanShell

      • groovy

      • javaScript

      • jexl2/jexl3

      • random

      • time

      • property functions

      • log functions

      配置元素由一個(gè)單獨(dú)的線程處理。因此,諸如__threadNum這樣的函數(shù)在諸如用戶定義的變量之類的元素中不能正常工作。還要注意,在UDV元素中定義的變量在處理元素之前是不可用的。

      在SQL中使用變量/函數(shù)引用是,記得字符串包含必要的引號(hào)

      SELECT item from table where name=’${VAR}’

      而不是

      SELECT item from table where name=${VAR}

      (除非字符串本身包含引號(hào))

      如何引用變量和函數(shù)

      在測(cè)試元素中引用變量是通過(guò) ‘${}’將變量包含起來(lái) 如${var}。
      函數(shù)以相同的方式引用,但按照約定,函數(shù)名以”__”開(kāi)頭,避免與用戶值名稱沖突,一些函數(shù)使具有參數(shù),這些函數(shù)參數(shù)以逗號(hào)分隔。如果函數(shù)不帶參數(shù),則可以省略括號(hào)。若參數(shù)值本身包含逗號(hào),應(yīng)該在必要時(shí)轉(zhuǎn)義: “\,”,這適用于腳本函數(shù)——Javascript、Beanshell、Jexl、groovy在腳本方法調(diào)用中,需要避免任何可能需要的逗號(hào)。

      ${__BeanShell(vars.put("name"\,"value"))}

      另外一種方法可以將腳本定義成一個(gè)變量:

      SCRIPT vars.put("name","value")
      腳本可以引用如下:
      ${__BeanShell(${SCRIPT})}

      這里不需要轉(zhuǎn)義SCRIPT變量中的逗號(hào),因?yàn)楹瘮?shù)調(diào)用在變量替換為它的值之前被解析。這與JSR223或BeanShell的采樣器能夠很好的配合,因?yàn)檫@些可以用來(lái)測(cè)試Javascript、Jexl和BeanShell腳本。
      函數(shù)可以引用變量和其他函數(shù),例如${__XPath(${__P(xpath.file),${XPATH})} 將使用屬性”xpath.file”作為文件名,變量XPATH要搜索的表達(dá)式的內(nèi)容。
      JMeter提供了一個(gè)工具來(lái)幫助構(gòu)造函數(shù)調(diào)用,用于各種內(nèi)建函數(shù),然后就可以復(fù)制粘貼了。
      它不會(huì)自動(dòng)轉(zhuǎn)義,因?yàn)楹瘮?shù)可以是其他函數(shù)的參數(shù),應(yīng)該只轉(zhuǎn)義想要的值。

      If a string contains a backslash(‘\’) and also contains a function or variable reference, the backslash will be removed if it appears before ‘$’ or ‘,’ or ‘\’. This behaviour is necessary to allow for nested functions that include commas or the string ${. Backslashes before ‘$’ or ‘,’ or ‘\’ are not removed if the string does not contain a function or variable reference.

      變量或函數(shù)的值可以使用__logn()函數(shù)進(jìn)行報(bào)告。在定義變量之后,__logn()函數(shù)引用可以在測(cè)試計(jì)劃的任何地方使用?;蛘?,可以使用Java請(qǐng)求采樣器可以創(chuàng)建包含變量引用的樣例;輸出將顯示在適當(dāng)?shù)膫陕?tīng)器中。

      注意,在樹(shù)視圖監(jiān)聽(tīng)器中有一個(gè)可以用來(lái)顯示變量值的調(diào)試采樣器(Debug Sampler)。
      如果定義一個(gè)用戶定義的靜態(tài)變量,其名稱與內(nèi)置函數(shù)相同,那么您的靜態(tài)變量將會(huì)覆蓋內(nèi)置函數(shù)。

      函數(shù)幫助對(duì)話框

      函數(shù)幫助對(duì)話框可以從Jmeter的菜單中調(diào)出
      funHelper
      使用函數(shù)幫助器,您可以從下拉中選擇一個(gè)函數(shù),并為其參數(shù)指定值。表中的左列提供了對(duì)該參數(shù)的簡(jiǎn)要描述,而右邊的列是您在該參數(shù)的值中寫入的位置。不同的函數(shù)有不同的參數(shù)。
      一旦您完成了這個(gè)操作,點(diǎn)擊“generate”按鈕,就會(huì)生成適當(dāng)?shù)淖址?,以便您可以在您喜歡的地方復(fù)制粘貼到您的測(cè)試計(jì)劃中。
      functions

      函數(shù)

      __regexFunction

      函數(shù)用于使用任何正則表達(dá)式(由用戶提供)解析以前的響應(yīng)(或變量的值)。函數(shù)返回帶有變量值的模板字符串。
      __regexFunction還可以存儲(chǔ)起來(lái),以便供后續(xù)使用。在第六個(gè)參數(shù)中,可以指定一個(gè)引用名稱。在執(zhí)行該函數(shù)之后,可以在稍后使用用戶定義值的語(yǔ)法檢索相同的值。
      例如,如果您輸入”refName”作為第六個(gè)參數(shù),您將能夠使用:

      • ${refName}來(lái)引用第2個(gè)參數(shù)(替換字符串模板)的計(jì)算結(jié)果,這依賴于函數(shù)的解析結(jié)果。

      • ${refName_g0}來(lái)引用函數(shù)解析后發(fā)現(xiàn)的所有匹配結(jié)果。

      • ${refName_g1}來(lái)引用函數(shù)解析后發(fā)現(xiàn)的第一個(gè)匹配組合。

      • ${refName_g#}來(lái)引用函數(shù)解析后發(fā)現(xiàn)的第n個(gè)匹配組合。

      • ${refName_matchNr}來(lái)引用函數(shù)總共發(fā)現(xiàn)的匹配組合數(shù)目

      AttributeDescriptionRequired
      第1個(gè)參數(shù)第1個(gè)參數(shù)是用于解析服務(wù)器響應(yīng)數(shù)據(jù)的正則表達(dá)式。它會(huì)找到所有匹配項(xiàng)。如果希望將表達(dá)式中的某部分應(yīng)用在模板字符串中,一定記得為其加上圓括號(hào)。例如,<a href=”(.*)”>。這樣就會(huì)將鏈接的值存放到第一個(gè)匹配組合中(這里只有一個(gè)匹配組合)。又如,。在這個(gè)例子中,鏈接的name作為第一個(gè)匹配組合,鏈接的value會(huì)作為第二個(gè)匹配組合。這些組合可以用在的模板字符串中
      第2個(gè)參數(shù)這是一個(gè)模板字符串,函數(shù)會(huì)動(dòng)態(tài)填寫字符串的部分內(nèi)容。要在字符串中引用正則表達(dá)式捕獲的匹配組合,請(qǐng)使用語(yǔ)法:$[group_number]$。例如$1$或者 $2$。的模板可以是任何字符串
      第3個(gè)參數(shù)第3個(gè)參數(shù)告訴JMeter使用第幾次匹配。正則表達(dá)式可能會(huì)找到多個(gè)匹配項(xiàng)。對(duì)此,有4種選擇:1)整數(shù),直接告訴JMeter使用第幾個(gè)匹配項(xiàng)?!?”對(duì)應(yīng)第一個(gè)匹配,”2”對(duì)應(yīng)第二個(gè)匹配,以此類推2)RAND,告訴JMeter隨機(jī)選擇一個(gè)匹配項(xiàng)3)ALL,告訴JMeter使用所有匹配項(xiàng),為每一個(gè)匹配項(xiàng)創(chuàng)建一個(gè)模板字符串,并將它們連接在一起4)浮點(diǎn)值0到1之間,根據(jù)公式(找到的總匹配數(shù)目*指定浮點(diǎn)值)計(jì)算使用第幾個(gè)匹配項(xiàng),計(jì)算值向最近的整數(shù)取整否,默認(rèn)值為1
      第4個(gè)參數(shù)如果在上一個(gè)參數(shù)中選擇了”ALL”,那么這第4個(gè)參數(shù)會(huì)被插入到重復(fù)的模板值之間,就是說(shuō)有多個(gè)地方匹配模版,這多個(gè)匹配之間用該參數(shù)的值進(jìn)行分割
      第5個(gè)參數(shù)如果沒(méi)有找到匹配項(xiàng)返回的默認(rèn)值
      第6個(gè)參數(shù)重用函數(shù)解析值的引用名。存儲(chǔ)${refName}和${refName_g#} “#”是正則表達(dá)式匹配到組的數(shù)量(“0”可以使用,是全部匹配)
      第7個(gè)參數(shù)輸入變量名稱。如果指定了這一參數(shù),那么該變量的值就會(huì)作為函數(shù)的輸入,而不再使用前面的采樣結(jié)果作為搜索對(duì)象

      舉個(gè)栗子!還是以百度的首頁(yè)搜索為例。一共有兩個(gè)斷言,見(jiàn)截圖。
      這里寫圖片描述

      這里寫圖片描述

      第一個(gè)斷言正則表達(dá)式$1$ $2$返回結(jié)果為kw wd;第二個(gè)斷言直接引用refName_g0(在第一個(gè)斷言中使用的第六個(gè)參數(shù)),結(jié)果為<input id=kw name=wd class=s_ipt value maxlength=255
      這里寫圖片描述

      因?yàn)樵谏厦娴睦又姓齽t表達(dá)式中并沒(méi)有出現(xiàn)多個(gè)匹配的模版所以設(shè)置的第四個(gè)參數(shù)tmp沒(méi)有起作用,下面做個(gè)演示只是用http關(guān)鍵字進(jìn)行匹配,并制定第四個(gè)參數(shù)為SSS
      引入多匹配模版的分隔符

      是不是第四個(gè)參數(shù)已經(jīng)生效了

      現(xiàn)在演示一下正則表達(dá)式中應(yīng)用自定義變量
      引用自定義變量

      __counter

      這個(gè)函數(shù)是一個(gè)計(jì)數(shù)器,用于統(tǒng)計(jì)函數(shù)的使用次數(shù),從1開(kāi)始每次加1。計(jì)數(shù)器既可以被配置成針對(duì)每個(gè)虛擬用戶是獨(dú)立的,也可以被配置成所有虛擬用戶公用的。如果每個(gè)虛擬用戶的計(jì)數(shù)器是獨(dú)立增長(zhǎng)的,那么通常被用于記錄測(cè)試計(jì)劃運(yùn)行了多少遍。全局計(jì)數(shù)器通常被用于記錄發(fā)送了多少次請(qǐng)求。計(jì)數(shù)器使用一個(gè)整數(shù)值來(lái)記錄,允許的最大值為2,147,483,647。
      計(jì)數(shù)器函數(shù)實(shí)例是完全獨(dú)立的。全局計(jì)數(shù)器 “FALSE”是由每個(gè)計(jì)數(shù)器實(shí)例單獨(dú)維護(hù)的。
      在同一個(gè)迭代中,多個(gè)計(jì)數(shù)器函數(shù)(__counter)調(diào)用不會(huì)進(jìn)一步增加值。如果想要為每個(gè)示例增加一個(gè)增量,請(qǐng)?jiān)陬A(yù)處理程序中使用該函數(shù),例如用戶參數(shù)。

      AttributeDescriptionRequired
      第1個(gè)參數(shù)True,如果希望每個(gè)虛擬用戶的計(jì)數(shù)器保持獨(dú)立,與其他用戶的計(jì)數(shù)器相區(qū)別。false,全局計(jì)數(shù)器
      第2個(gè)參數(shù)重用計(jì)數(shù)器函數(shù)創(chuàng)建值的引用名??梢赃@樣引用計(jì)數(shù)器的值:${refName}。這樣就可以創(chuàng)建一個(gè)計(jì)數(shù)器后,在多個(gè)地方引

      格式:${__counter(FALSE,test)}

      我們將”__counter”函數(shù)生成的參數(shù)復(fù)制到某個(gè)參數(shù)下面(一般使用的時(shí)候會(huì)放在對(duì)應(yīng)的取樣器中,見(jiàn)__threadNum例子),如果為TRUE格式,則每個(gè)線程各自統(tǒng)計(jì),最大數(shù)為循環(huán)數(shù),如果為FALSE,則所有線程一起統(tǒng)計(jì),最大數(shù)為線程數(shù)乘以循環(huán)數(shù)
      下面是設(shè)置了10個(gè)線程循環(huán)5次執(zhí)行的結(jié)果:自定義的mycountervar在持續(xù)增加~~
      這里寫圖片描述

      當(dāng)然也可以使用線程組的配置元件–計(jì)數(shù)器來(lái)實(shí)現(xiàn)計(jì)數(shù)
      計(jì)數(shù)器

      __threadNum

      函數(shù)__threadNum只是簡(jiǎn)單地返回當(dāng)前線程的編號(hào)。線程編號(hào)不依賴于線程組,這就意味著從函數(shù)的角度看來(lái),某個(gè)線程組的線程#1和另一個(gè)線程組的線程#1是沒(méi)有區(qū)別的。另外,該函數(shù)沒(méi)有參數(shù)。
      格式:${__threadNum}
      返回一個(gè)1到線程組中配置的運(yùn)行線程的最大數(shù)之間的一個(gè)數(shù)字
      這一函數(shù)不能用在任何配置元件中(如用戶定義的變量),原因在于配置元件是由一個(gè)獨(dú)立線程運(yùn)行的。另外在測(cè)試計(jì)劃(Test Plan)中使用也是沒(méi)有意義的。

      threadNum

      __intSum

      __intSum函數(shù)分別用來(lái)進(jìn)行整型。這兩個(gè)函數(shù)均為可變參數(shù)列表的函數(shù),可用來(lái)進(jìn)行任意個(gè)整型數(shù)據(jù)的加法運(yùn)算。
      用于計(jì)算多個(gè)整數(shù)的和,可以是計(jì)算正整數(shù)和負(fù)整數(shù)的和,它有N個(gè)參數(shù),最少有3個(gè)參數(shù),最多不限。最后一個(gè)參數(shù)是函數(shù)名稱,前面的其它參 數(shù)是要求和的整數(shù)。這個(gè)函數(shù)在函數(shù)對(duì)話框中只顯示3個(gè)參數(shù),如果要計(jì)算多個(gè)整數(shù),可以通過(guò)添加參數(shù)實(shí)現(xiàn),不過(guò)最后一個(gè)參數(shù)一定要是函數(shù)名稱。再添加的參數(shù) 會(huì)在函數(shù)名稱后面,這個(gè)時(shí)候,需要我們手動(dòng)將函數(shù)名稱參數(shù)放到最后一個(gè)。

      AttributeDescriptionRequired
      第1個(gè)參數(shù)第1個(gè)整數(shù)值
      第2個(gè)參數(shù)第2個(gè)整數(shù)值
      第n個(gè)參數(shù)第n個(gè)整數(shù)值
      最后一個(gè)參數(shù)函數(shù)計(jì)算值的引用名。如果用戶指定了這一參數(shù),那么引用名中必須包含一個(gè)非數(shù)字字母,否則它會(huì)被當(dāng)成另一個(gè)整數(shù)值,而被函數(shù)用于計(jì)算

      ?
      在HTTP請(qǐng)求中設(shè)置函數(shù),經(jīng)過(guò)調(diào)試查看保存計(jì)算的結(jié)果
      longintsum

      __longSum

      __longSum與__intSum函數(shù)分別用來(lái)進(jìn)行長(zhǎng)整型和整型數(shù)據(jù)的加法運(yùn)算,幾乎一樣
      不再做介紹
      見(jiàn)__intSum

      __StringFromFile

      函數(shù)__StringFromFile可以被用來(lái)從文本文件中讀取字符串。這對(duì)于需要大量可變數(shù)據(jù)的測(cè)試很有用。例如,當(dāng)測(cè)試一個(gè)銀行應(yīng)用系統(tǒng)時(shí),可能需要100條甚至1000條賬戶信息。

      使用配置元件CSV Data Set Config ,也能達(dá)到相同的目的,而且方法更簡(jiǎn)單。但是該配置元件目前不支持多輸入文件。

      每次調(diào)用函數(shù),都會(huì)從文件中讀取下一行。當(dāng)?shù)竭_(dá)文件末尾時(shí),函數(shù)又會(huì)從文件開(kāi)始處重新讀取,直到最大循環(huán)次數(shù)。如果在一個(gè)測(cè)試腳本中對(duì)該函數(shù)有多次引用,那么每一次引用都會(huì)獨(dú)立打開(kāi)文件,即使文件名是相同的(如果函數(shù)讀取的值,在腳本其他地方也有使用,那么就需要為每一次函數(shù)調(diào)用指定不同的變量名)。

      函數(shù)實(shí)例是在線程之間共享的,當(dāng)線程需要輸入時(shí)打開(kāi)或重新打開(kāi)文件,因此使用threadNumber作為文件名的一部分將導(dǎo)致不可預(yù)測(cè)的行為。

      如果在打開(kāi)或者讀取文件時(shí)發(fā)生錯(cuò)誤,那么函數(shù)就會(huì)返回字符串”**ERR**”。

      AttributeDescriptionRequired
      文件名文件名(可以使用相對(duì)于JMeter啟動(dòng)目錄的相對(duì)路徑)。如果要在文件名中使用可選的序列號(hào),那么文件名必須適合轉(zhuǎn)成十進(jìn)制格式。
      變量名一個(gè)引用名(refName),目的是復(fù)用這一函數(shù)創(chuàng)建的值??梢允褂谜Z(yǔ)法${refName}來(lái)引用函數(shù)創(chuàng)建的值。默認(rèn)值為”StringFromFile_”
      初始序列號(hào)初始序列號(hào)(如果省略這一參數(shù),終止序列號(hào)會(huì)作為一個(gè)循環(huán)計(jì)數(shù)器)
      終止序列號(hào)終止序列號(hào)(如果省略這一參數(shù),序列號(hào)會(huì)一直增加下去,不會(huì)受到限 制)

      ?
      當(dāng)打開(kāi)或者重新打開(kāi)文件時(shí),文件名參數(shù)將會(huì)被解析。
      每次執(zhí)行函數(shù)時(shí),引用名參數(shù)(如果支持)將會(huì)被解析。

      使用序列號(hào):
      當(dāng)使用可選的序列號(hào)時(shí),文件名需要使用格式字符串Java.text.DecimalFormat。當(dāng)前的序列號(hào)會(huì)作為唯一的參數(shù)。如果不指明可選的初始序列號(hào),就使用文件名作為起始值。一些有用的格式序列如下:

      #:插入數(shù)字,數(shù)字前面不能有0,也不包含空格。

      000:插入數(shù)字,包含3個(gè)數(shù)字組合,位數(shù)不足使用0在左側(cè)補(bǔ)齊指定的位數(shù),超過(guò)位數(shù)的按實(shí)際位置輸出。

      例如:

      寫法解釋
      pin#’.’datpin1.dat, … pin9.dat, pin10.dat, … pin9999.dat
      pin000’.’datpin001.dat … pin099.dat … pin999.dat … pin9999.dat
      pin’.’dat#pin.dat1, … pin.dat9 … pin.dat999

      ?
      如果不希望某個(gè)格式字符被翻譯,需要為它加上單引號(hào)。注意”.”是格式字符,必須被單引號(hào)所包含。
      如果路徑名不包含任何特殊的格式化字符,那么當(dāng)前的序列號(hào)將被追加到名稱中,否則將根據(jù)格式化指令插入數(shù)字。
      如果省略了初始序列號(hào),且指定了終止序列號(hào),則終止序列號(hào)理解為循環(huán)的次數(shù),文件將被重復(fù)執(zhí)行指定次數(shù),在這種情況下文件名將不被格式化轉(zhuǎn)義,直接匹配。例如:

      ${_StringFromFile(PIN#'.'DAT,,1,2)}:讀取 PIN1.DAT, PIN2.DAT。
      ${_StringFromFile(PIN.DAT,,,2)}:讀取 PIN.DAT 兩次。

      注意: “.”在PIN.DAT并沒(méi)有使用引號(hào)引著,在這個(gè)用例中起始序列號(hào)省略,所以文件名精確匹配

      這里寫圖片描述

      __machineName

      函數(shù)__machineName返回本機(jī)的主機(jī)名。使用java方法InetAddress.getLocalHost()傳給getHostName()。只有一個(gè)參數(shù):引用名,非必須

      AttributeDescriptionRequired
      引用名該函數(shù)返回值存儲(chǔ)起來(lái),以便復(fù)用

      ?
      這里寫圖片描述

      __machineIP

      函數(shù)__machineIP返回本機(jī)的主機(jī)IP。使用java方法InetAddress.getLocalHost()傳給getHostName()。只有一個(gè)參數(shù):引用名,非必須

      AttributeDescriptionRequired
      引用名該函數(shù)返回值存儲(chǔ)起來(lái),以便復(fù)用

      這里寫圖片描述

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多