日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
JMeter內(nèi)置變量大揭秘:含義,用法和實(shí)例

在JMeter中,有一些內(nèi)置的變量,可以幫助我們在測試過程中存儲和使用一些數(shù)據(jù)。這些內(nèi)置變量有四種:vars,props,prev和sample。

vars變量

vars變量是JMeterVariables類的一個實(shí)例,它是一個Map類型的對象,可以存儲String或Object類型的數(shù)據(jù)。vars變量的作用域是當(dāng)前線程組,也就是說,只有同一個線程組內(nèi)的線程才能訪問和修改同一個vars變量。如果不同的線程組需要共享數(shù)據(jù),就不能使用vars變量。

vars變量的使用方法很簡單,我們可以在BeanShell Sampler或JSR223 Sampler中使用以下語法來獲取和設(shè)置vars變量:

// JSR233  groovy 腳本
//獲取vars變量
String value = vars.get("key");
Object obj = vars.getObject("key");

//設(shè)置vars變量
vars.put("key", "value");
vars.putObject("key", new Object());

直接使用${key}來引用vars變量的值。

vars變量的一個常見用途是保存上一個請求的響應(yīng)數(shù)據(jù),以便后續(xù)請求使用。例如,我們可以在 JSR233PostProcessor中使用以下代碼的一些實(shí)例:

又比如從 csv 文件中讀取數(shù)據(jù),并保存到一個list對象中:

然后從其他取樣器中使用這個對象:

props變量

props變量是JMeterProperties類的一個實(shí)例,它是一個Hashtable類型的對象,也可以存儲String或Object類型的數(shù)據(jù)。props變量的作用域是全局的,也就是說,所有的線程組都可以訪問和修改同一個props變量。如果不同的線程組需要共享數(shù)據(jù),就可以使用props變量。

props變量的使用方法和vars變量類似,我們可以在BeanShell Sampler或JSR223 Sampler中使用以下語法來獲取和設(shè)置props變量:

//獲取props變量
String value = props.get("key");
Object obj = props.get("key");

//設(shè)置props變量
props.put("key", "value");
props.put("key", new Object());

我們也可以在其他元件中使用${__P(key)}來引用props變量的值。

props變量的一個常見用途是保存一些全局配置參數(shù),例如服務(wù)器地址,端口號等。例如,我們可以在Test Plan中使用User Defined Variables元件來定義一些props變量:

然后,在其他地方,我們可以使用${__P(server)}來引用服務(wù)器地址。

prev變量

prev變量是SampleResult類的一個實(shí)例,它是一個對象,可以存儲上一個請求(或者說上一個取樣器)的結(jié)果信息。prev變量的作用域是當(dāng)前線程組,并且只能在后置處理器(PostProcessor)或斷言(Assertion)中使用。

prev變量的使用方法是在BeanShell PostProcessor或JSR223 PostProcessor中使用以下語法來獲取prev變量:

SampleResult prev = ctx.getPreviousResult();

然后,我們可以調(diào)用prev對象的各種方法來獲取結(jié)果信息,例如:

prev變量的一個常見用途是對上一個請求的結(jié)果進(jìn)行處理或判斷。例如,我們可以在BeanShell Assertion中使用以下代碼來判斷響應(yīng)碼是否為200:

SampleResult prev = ctx.getPreviousResult();
if (!"200".equals(prev.getResponseCode())) {
    AssertionResult result = new AssertionResult("檢查檢查狀態(tài)碼");
    result.setFailure(true);
    result.setFailureMessage("響應(yīng)狀態(tài)碼鬼知道是啥,反正不是 200");
    prev.addAssertionResult(result);
    prev.setSuccessful(false);
}

當(dāng)前了,你要是直接在jsr233或者beanshell中直接如下那樣寫,也不會出現(xiàn)錯誤,也能直接使用。

//jsr233 中的代碼
def responseCode = prev.getResponseCode();

sample變量

sample變量是SampleEvent類的一個實(shí)例,它是一個對象,可以存儲當(dāng)前請求(或者說當(dāng)前取樣器)的事件信息。sample變量的作用域是當(dāng)前線程組,能在監(jiān)聽器(Listener)中使用。

sample變量的使用方法是在BeanShell Listener或JSR223 Listener中使用以下語法來獲取sample變量:

SampleEvent sample = ctx.getCurrentSampleEvent();

然后,我們可以調(diào)用sample對象的各種方法來獲取事件信息,例如:

//獲取取樣器結(jié)果
SampleResult result = sample.getResult();
//獲取線程名稱
String threadName = sample.getThreadName();
//獲取線程組名稱
String threadGroupName = sample.getThreadGroup();
//獲取主機(jī)名稱
String hostName = sample.getHostname();

sample變量的一個常見用途是對當(dāng)前請求的事件進(jìn)行處理或記錄。例如,我們可以在BeanShell Listener中使用以下代碼來打印事件信息:

SampleEvent sample = ctx.getCurrentSampleEvent();
log.info("Thread name: " + sample.getThreadName());
log.info("Thread group: " + sample.getThreadGroup());
log.info("Host name: " + sample.getHostname());
log.info("Sampler name: " + sample.getResult().getSampleLabel());
log.info("Response time: " + sample.getResult().getTime());
log.info("Response code: " + sample.getResult().getResponseCode());
log.info("Response data: " + new String(sample.getResult().getResponseData()));

內(nèi)置變量的區(qū)別

從上面的介紹可以看出,JMeter內(nèi)置變量有以下幾個區(qū)別:

  • vars和props都是Map類型的對象,可以存儲和修改數(shù)據(jù);prev和sample都是普通對象,只能讀取數(shù)據(jù)。
  • vars和props都可以在任何地方引用;prev只能在后置處理器或斷言中引用;sample只能在監(jiān)聽器中引用。
  • vars和props都需要手動設(shè)置和獲取;prev和sample都由JMeter自動提供。
  • vars只能在當(dāng)前線程組內(nèi)共享;props可以跨線程組共享;prev和sample只能在當(dāng)前線程內(nèi)訪問。
  • vars和props都只能存儲String或Object類型;prev和sample都包含多種類型的數(shù)據(jù)。

內(nèi)置變量的實(shí)際工作場景

來看一些實(shí)際工作場景:

場景一:我們需要模擬用戶上傳文件,并且每個用戶都要上傳不同的文件。這時候,我們就可以使用JSR223 PreProcessor元件來動態(tài)生成一個文件名,并將它保存到props變量中。然后,在上傳文件請求中,我們就可以使用${__P(filename)}來引用文件名。

//在JSR223 PreProcessor的代碼如下:
import java.util.UUID
//生成一個隨機(jī)的UUID作為文件名
String filename = UUID.randomUUID().toString() + ".txt"
//將文件名保存到props變量中
props.put("filename", filename)

場景二:我們需要對每個請求的響應(yīng)時間進(jìn)行判斷,如果超過了預(yù)期的時間,就要記錄下來。這時候,我們就可以使用JSR223 Assertion元件來獲取prev變量,并調(diào)用getTime()方法來獲取響應(yīng)時間。然后,我們就可以使用if語句來判斷響應(yīng)時間是否超過了預(yù)期,并使用log.info()方法來記錄日志。

//在JSR223 Assertion 中的代碼如下:
def prev = ctx.getPreviousResult()
//獲取響應(yīng)時間
def responseTime = prev.getTime()
//設(shè)置預(yù)期時間為1000毫秒
def expectedTime = 1000
//判斷響應(yīng)時間是否超過預(yù)期
if (responseTime > expectedTime) {
    // 這里建議將結(jié)果寫入 csv 以便持久化查看
    log.info("響應(yīng)時間是:${responseTime} ms, 預(yù)期時間是:${expectedTime} ms")
}

場景三:我們需要對每個請求的響應(yīng)數(shù)據(jù)進(jìn)行處理,如果包含了某些關(guān)鍵字,就要提取出來,那么則如下:

//在JSR223 PostProcessor 中的代碼如下:
def prev = ctx.getPreviousResult()
def responseData = prev.getResponseDataAsString()
// 使用正則處理數(shù)據(jù)
def regex = /(.*?)<\/title>/
def matcher = regex.matcher(responseData)
if (matcher.find()) {
    def keyword = matcher.group(1)
    vars.put("keyword", keyword)
}
// 當(dāng)然除了上述代碼外,也可以直接使用正則匹配元件去處理。</code></pre><p>場景四:我們需要對每個請求的事件信息進(jìn)行記錄,例如線程名稱,線程組名稱,主機(jī)名稱等,那么則如下:</p><pre><code>//在JSR223 Listener 中的代碼
def sample = ctx.getCurrentSampleEvent()
def result = sample.getResult()
//打印事件信息到日志文件中,建議處理到csv(不過會有一點(diǎn)性能開銷)
log.info("線程名稱: " + sample.getThreadName())
log.info("線程組名: " + sample.getThreadGroup())
log.info("域名地址: " + sample.getHostname())
log.info("取樣器名: " + result.getSampleLabel())
log.info("響應(yīng)時間: " + result.getTime())
log.info("響應(yīng)編碼: " + result.getResponseCode())
log.info("響應(yīng)數(shù)據(jù): " + new String(result.getResponseData()))</code></pre>                                                <br>
                                                網(wǎng)站題目:JMeter內(nèi)置變量大揭秘:含義,用法和實(shí)例                                                <br>
                                                分享URL:<a href="http://www.5511xx.com/article/dhipeih.html">http://www.5511xx.com/article/dhipeih.html</a>
                                            </div>
                                            <div   id="bjaoipa"   class="hot_new">
                                                <div   id="jwacoc2"   class="page_title clearfix">
                                                    <h3>其他資訊</h3>
                                                </div>
                                                <div   id="4qvptso"   class="news_list clearfix">
                                                    <ul>
                                                        <li>
                                                                <a href="/article/coioecj.html">Prometheus的本質(zhì)以及如何實(shí)現(xiàn)</a>
                                                            </li><li>
                                                                <a href="/article/coioese.html">PolarDB這個分區(qū)數(shù)量大于三是怎么理解?</a>
                                                            </li><li>
                                                                <a href="/article/coioeoo.html">固態(tài)硬盤如何點(diǎn)亮</a>
                                                            </li><li>
                                                                <a href="/article/coiosph.html">Android:完美解決ScrollView嵌套GridView</a>
                                                            </li><li>
                                                                <a href="/article/coioesj.html">unty3d是做什么的</a>
                                                            </li>                                                    </ul>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- 底部信息 -->
<div   id="ssnmhxj"   class="footer wow fadeInUp">
    <div   id="aozcwu2"   class="rowFluid">
        <div   id="mjvamtq"   class="span12">
            <div   id="v4hbddo"   class="container">
                <div   id="2mo9tpm"   class="footer_content">
                    <div   id="74ypjn8"   class="span4 col-xm-12">
                        <div   id="ymicwdz"   class="footer_list">
                            <div   id="x97bg4b"   class="span6">
                                <div   id="ze9aelx"   class="bottom_logo"><img src="/Public/Home/images/ewm.jpg" alt="微信服務(wù)號二維碼" /></div>
                            </div>
                            <div   id="ywqtgw4"   class="span6 col-xm-12">
                                <div   id="sxz9u9b"   class="quick_navigation">
                                    <div   id="a7fat3e"   class="quick_navigation_title">快速導(dǎo)航</div>
                                    <ul>
                                        <li><a  title="培訓(xùn)網(wǎng)站方案" target="_blank">培訓(xùn)網(wǎng)站方案</a></li><li><a  title="珉田數(shù)據(jù)中心" target="_blank">珉田數(shù)據(jù)中心</a></li><li><a  title="成都電力安裝公司" target="_blank">成都電力安裝公司</a></li><li><a  title="公司形象墻" target="_blank">公司形象墻</a></li><li><a  title="湖北樂器選購" target="_blank">湖北樂器選購</a></li><li><a  title="溫江網(wǎng)站制作" target="_blank">溫江網(wǎng)站制作</a></li><li><a  title="營山保潔公司" target="_blank">營山保潔公司</a></li><li><a  title="成都柴油發(fā)電機(jī)公司" target="_blank">成都柴油發(fā)電機(jī)公司</a></li><li><a  title="云服務(wù)器" target="_blank">云服務(wù)器</a></li><li><a  title="成都企業(yè)文化墻" target="_blank">成都企業(yè)文化墻</a></li><li><a  title="四川格藍(lán)特" target="_blank">四川格藍(lán)特</a></li>                                    </ul>
                                </div>
                            </div>
                        </div>
                    </div>
                    <div   id="aiwwjit"   class="span4 col-xm-6 col-xs-12">
                        <div   id="etgjdk6"   class="footer_list">
                            <div   id="qeiuoyu"   class="footer_link">
                                <div   id="y94i8ok"   class="footer_link_title">友情鏈接</div>
                                <ul id="frientLinks">
                                    <a  title="網(wǎng)站制作" target="_blank">網(wǎng)站制作</a>
                                    <a  title="網(wǎng)站建設(shè)" target="_blank">網(wǎng)站建設(shè)</a>
                                    <a  title="成都網(wǎng)絡(luò)推廣" target="_blank">網(wǎng)絡(luò)推廣</a>
                                    <a  title="成都網(wǎng)站推廣" target="_blank">網(wǎng)站推廣</a>
                                    <a  title="成都微信小程序開發(fā)" target="_blank">小程序開發(fā)</a>
                                    <a  title="創(chuàng)新互聯(lián)網(wǎng)站欄目導(dǎo)航" target="_blank">網(wǎng)站導(dǎo)航</a>
                                </ul>
                                <div   id="zhuuyo3"   class="footer_link_title">網(wǎng)站建設(shè)</div>
                                <ul id="frientLinks">
                                    <li><a href="/">四川平武建站</a></li>
                                    <li><a  title="創(chuàng)新互聯(lián)網(wǎng)站欄目導(dǎo)航" target="_blank">網(wǎng)站導(dǎo)航</a></li>
                                </ul>
                            </div>
                        </div>
                    </div>
                    <div   id="mr84ies"   class="span4 col-xm-6 col-xs-12">
                        <div   id="wcwybaw"   class="footer_list">
                            <div   id="64uimco"   class="footer_cotact">
                                <div   id="m2bv7bv"   class="footer_cotact_title">聯(lián)系方式</div>
                                <ul>
                                    <li><span id="47cfzxk"    class="footer_cotact_type">企業(yè):</span><span id="9eqcelo"    class="footer_cotact_content">四川綿陽平武網(wǎng)站建設(shè)工作室</span></li>
                                    <li><span id="k7ybwmg"    class="footer_cotact_type">地址:</span><span id="dq2sx7h"    class="footer_cotact_content">成都市青羊區(qū)太升南路288號</span></li>
                                    <li><span id="camgk2o"    class="footer_cotact_type">電話:</span><span id="bpl7p7x"    class="footer_cotact_content"><a href="tel:18980820575" class="call">18980820575</a></span></li>
                                    <li><span id="yuwzm3w"    class="footer_cotact_type">網(wǎng)址:</span><span id="ynrdodp"    class="footer_cotact_content"><a href="/" title="四川平武網(wǎng)站建設(shè)">www.5511xx.com</a></span></li>
                                </ul>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            <div   id="hwh9imq"   class="copyright">
                <p>公司名稱:四川綿陽平武網(wǎng)站建設(shè)工作室   聯(lián)系電話:18980820575</p>
                <p><a  target="_blank" rel="nofollow">網(wǎng)站備案號:蜀ICP備2024061352號-3</a></p>
                <p>四川平武建站 四川平武網(wǎng)站建設(shè) 四川平武網(wǎng)站設(shè)計(jì) 四川平武網(wǎng)站制作 <a  target="_blank">成都做網(wǎng)站</a></p>
            </div>
        </div>
    </div>
</div>

<footer>
<div class="friendship-link">
<p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p>
<a href="http://www.5511xx.com/" title="日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区">日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区</a>

<div class="friend-links">

<a href="http://www.9iban.com">久久精品无码av|一级中文无码免费观看|日韩欧美黄片手机版|人妻激情视频成人无码aaa|美女一级黄色毛片|国产aa黄片亚洲破处片|黄色A极大片特级a黄片|综合精品一区二区三区四区在线|国产精品不卡无码av在线播放|超碰亚洲在线日韩肏屄</a>
<a href="http://www.datumvisio.com">91AV乱伦强奸|国产理伦电影尤物导航|在线观看高清无码黄片|特黄色电影特级毛片|亚洲精品av一区二区三区|91AV无码免费|久久嫩草国产亚洲无码网站|国产91极度丝袜|青青草在线视频免费观看|黄色av网五月天</a>
<a href="http://www.jiangrensw.com">在线视频一本一区|91在线免费视频网站|国产视频在线观看91|A片在线观看视频直接观看|在线免费A片黄色电影|美女视频图片永久免费观看|青青色在线观看视频网站|日本欧美视频在线看v片成人|色情性黄?片免费视频中国免费的|国产一线二线三黄色片</a>

</div>
</div>

</footer>


<script>
(function(){
    var bp = document.createElement('script');
    var curProtocol = window.location.protocol.split(':')[0];
    if (curProtocol === 'https') {
        bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
    }
    else {
        bp.src = 'http://push.zhanzhang.baidu.com/push.js';
    }
    var s = document.getElementsByTagName("script")[0];
    s.parentNode.insertBefore(bp, s);
})();
</script>
</body><div id="2yt70" class="pl_css_ganrao" style="display: none;"><strong id="2yt70"></strong><pre id="2yt70"><optgroup id="2yt70"></optgroup></pre><strong id="2yt70"></strong><var id="2yt70"></var><track id="2yt70"><blockquote id="2yt70"></blockquote></track><delect id="2yt70"></delect><strong id="2yt70"><dfn id="2yt70"></dfn></strong><center id="2yt70"><dl id="2yt70"></dl></center><object id="2yt70"><track id="2yt70"></track></object><acronym id="2yt70"><object id="2yt70"></object></acronym><th id="2yt70"></th><blockquote id="2yt70"></blockquote><kbd id="2yt70"></kbd><strong id="2yt70"><center id="2yt70"></center></strong><center id="2yt70"><dl id="2yt70"></dl></center><ol id="2yt70"></ol><object id="2yt70"><track id="2yt70"></track></object><thead id="2yt70"></thead><b id="2yt70"><legend id="2yt70"></legend></b><kbd id="2yt70"><dl id="2yt70"></dl></kbd><dfn id="2yt70"></dfn><p id="2yt70"></p><thead id="2yt70"><style id="2yt70"></style></thead><center id="2yt70"><dl id="2yt70"></dl></center><button id="2yt70"></button><pre id="2yt70"></pre><noframes id="2yt70"><menuitem id="2yt70"></menuitem></noframes><strong id="2yt70"><dfn id="2yt70"></dfn></strong><tr id="2yt70"><menuitem id="2yt70"></menuitem></tr><pre id="2yt70"></pre><strong id="2yt70"></strong><menuitem id="2yt70"></menuitem><style id="2yt70"></style><dl id="2yt70"><optgroup id="2yt70"></optgroup></dl><listing id="2yt70"><del id="2yt70"></del></listing><del id="2yt70"><cite id="2yt70"></cite></del><object id="2yt70"><track id="2yt70"></track></object><legend id="2yt70"></legend><thead id="2yt70"><style id="2yt70"></style></thead><cite id="2yt70"></cite><dfn id="2yt70"></dfn><sup id="2yt70"><li id="2yt70"></li></sup><blockquote id="2yt70"></blockquote><small id="2yt70"></small><output id="2yt70"><sup id="2yt70"></sup></output><li id="2yt70"></li><bdo id="2yt70"></bdo><object id="2yt70"></object><mark id="2yt70"><strong id="2yt70"></strong></mark><strong id="2yt70"></strong><sup id="2yt70"><nav id="2yt70"></nav></sup><th id="2yt70"></th><strong id="2yt70"></strong><optgroup id="2yt70"></optgroup><thead id="2yt70"></thead><ruby id="2yt70"><ol id="2yt70"></ol></ruby><var id="2yt70"></var><acronym id="2yt70"></acronym><pre id="2yt70"></pre><video id="2yt70"><xmp id="2yt70"></xmp></video><dfn id="2yt70"><nav id="2yt70"></nav></dfn><th id="2yt70"></th><pre id="2yt70"><optgroup id="2yt70"></optgroup></pre><object id="2yt70"><track id="2yt70"></track></object><mark id="2yt70"><strong id="2yt70"></strong></mark><pre id="2yt70"></pre><kbd id="2yt70"><mark id="2yt70"></mark></kbd><delect id="2yt70"><source id="2yt70"></source></delect><u id="2yt70"><pre id="2yt70"></pre></u><strong id="2yt70"></strong><p id="2yt70"></p><rt id="2yt70"></rt><sup id="2yt70"></sup><legend id="2yt70"></legend><mark id="2yt70"><strong id="2yt70"></strong></mark><optgroup id="2yt70"><acronym id="2yt70"></acronym></optgroup><listing id="2yt70"><del id="2yt70"></del></listing><object id="2yt70"></object><object id="2yt70"></object><li id="2yt70"></li><delect id="2yt70"></delect><listing id="2yt70"><del id="2yt70"></del></listing><noframes id="2yt70"><tt id="2yt70"></tt></noframes><output id="2yt70"><sup id="2yt70"></sup></output><rt id="2yt70"><nobr id="2yt70"></nobr></rt><button id="2yt70"><rt id="2yt70"></rt></button><video id="2yt70"><xmp id="2yt70"></xmp></video><center id="2yt70"><input id="2yt70"></input></center><pre id="2yt70"></pre><acronym id="2yt70"></acronym><strong id="2yt70"><dfn id="2yt70"></dfn></strong><dfn id="2yt70"></dfn><center id="2yt70"></center><pre id="2yt70"></pre><dl id="2yt70"></dl><object id="2yt70"><track id="2yt70"></track></object><output id="2yt70"><sup id="2yt70"></sup></output><del id="2yt70"><cite id="2yt70"></cite></del></div>
</html>