国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Jmeter常用斷言之BeanShell斷言詳解

這篇具有很好參考價(jià)值的文章主要介紹了Jmeter常用斷言之BeanShell斷言詳解。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

BeanShell斷言可以使用beanshell腳本來(lái)執(zhí)行斷言檢查,可以用于更復(fù)雜的個(gè)性化需求,使用更靈活,功能更強(qiáng)大,但是要能夠熟練使用beanshell腳本
在這里除了可以使用beanshell的內(nèi)置變量外,主要通過(guò) Failure 和 FailureMessage來(lái)設(shè)置斷言結(jié)果。

Failure = false;-----表示斷言成功
FailureMessage = “......";---自定義的成功信息
Failure = true;----表示斷言失敗
FailureMessage="......";------自定義的失敗信息

一、添加斷言方式

根據(jù)需要可在【測(cè)試計(jì)劃】、【線程組】、【線程請(qǐng)求】下添加斷言,一般在對(duì)應(yīng)的【線程請(qǐng)求】下添加,如下圖所示,即本文所介紹的。
添加路徑:【線程請(qǐng)求-點(diǎn)擊右鍵-添加-斷言-最后一個(gè)BeanShell斷言】
jmeter beanshell斷言,接口測(cè)試,Jmeter,工具類,jmeter,java,單元測(cè)試,BeanShell斷言,測(cè)試工具

二、BeanShell斷言

響應(yīng)斷言界面設(shè)置,如下圖:
jmeter beanshell斷言,接口測(cè)試,Jmeter,工具類,jmeter,java,單元測(cè)試,BeanShell斷言,測(cè)試工具

2.1.BeanShell斷言界面詳解

名稱】BeanShell斷言組件的自定義名稱,見(jiàn)名知意最好。
注釋】即添加一些備注信息,對(duì)該BeanShell斷言組件的簡(jiǎn)短說(shuō)明,以便后期回顧時(shí)查看。
Reset bsh.Interpreter before each call】每個(gè)BeanShell測(cè)試元素都有自己的解釋器副本(對(duì)于每個(gè)線程)。
如果重復(fù)調(diào)用測(cè)試元素,例如:在循環(huán)內(nèi),除非選擇在每次調(diào)用之前重置bsh.Interpreter選項(xiàng),否則解釋器將保留在調(diào)用之間。一些長(zhǎng)時(shí)間運(yùn)行的測(cè)試可能會(huì)導(dǎo)致解釋器使用大量?jī)?nèi)存。
由于BeanShell的bsh.Interpreter存在內(nèi)存泄露,常規(guī)方法無(wú)法支持長(zhǎng)時(shí)間的壓力測(cè)試。
JMeter官網(wǎng)推薦,在使用BeanShell進(jìn)行長(zhǎng)時(shí)間測(cè)試時(shí),**打開(kāi)選項(xiàng)【每次調(diào)用前置 bsh.Interpreter】=【Reset bsh.Interpreter before each call】,則在每次調(diào)用BeanShell程序前,都把解釋器重置,以釋放解釋器之前占用的內(nèi)存。
參數(shù) (-> String Parameters和String[]bsh.args)】輸入String參數(shù)。String[]bsh.args是主類main函數(shù)的形式參數(shù),是一個(gè)String 對(duì)象數(shù)組,可以用來(lái)獲取命令行用戶輸入進(jìn)去的參數(shù)。
腳本文件】腳本文件(可以填入腳本文件路徑),可以點(diǎn)擊后邊的瀏覽選擇腳本文件。
腳本】:編寫腳本,參照下文定義的變量(使腳本文件參照定義的變量來(lái)運(yùn)行)

2.2.斷言源碼

狀態(tài)碼斷言-源碼信息,如下:

//狀態(tài)碼斷言
log.info("狀態(tài)碼:" + ResponseCode);
if(ResponseCode.equals("200")){ 
	Failure=false;	// 表示斷言成功
}
else{
	Failure=true;	// 表示斷言失敗
	FailureMessage="響應(yīng)狀態(tài)碼非200";  // 自定義的失敗信息
}

注:字符串只能使用雙引號(hào),字符串相等要使用" “.equals(” ")表達(dá)式。

響應(yīng)數(shù)據(jù)斷言-源碼信息,如下:

//獲取響應(yīng)數(shù)據(jù)
String response = prev.getResponseDataAsString();
log.info("響應(yīng)體:" + response);
//響應(yīng)數(shù)據(jù)包含
if(response.contains("token")){
	Failure=false;	// 表示斷言成功
}
else{
	Failure=true;	// 表示斷言失敗
	FailureMessage="響應(yīng)數(shù)據(jù)不包含token";
}

三、斷言結(jié)果查看

3.1.【斷言結(jié)果】組件

添加路徑:【測(cè)試計(jì)劃-點(diǎn)擊右鍵-添加-監(jiān)聽(tīng)器-斷言結(jié)果】
jmeter beanshell斷言,接口測(cè)試,Jmeter,工具類,jmeter,java,單元測(cè)試,BeanShell斷言,測(cè)試工具
整個(gè)測(cè)試計(jì)劃下所有請(qǐng)求所有斷言結(jié)果報(bào)錯(cuò)信息均會(huì)在此顯示,如下圖所示,將所有斷言結(jié)果的報(bào)錯(cuò)信息直接展示出來(lái)。
jmeter beanshell斷言,接口測(cè)試,Jmeter,工具類,jmeter,java,單元測(cè)試,BeanShell斷言,測(cè)試工具

3.2.【察看結(jié)果樹(shù)】組件

添加路徑:【測(cè)試計(jì)劃-點(diǎn)擊右鍵-添加-監(jiān)聽(tīng)器-查看結(jié)果樹(shù)】,整個(gè)測(cè)試計(jì)劃下所有請(qǐng)求所有斷言結(jié)果報(bào)錯(cuò)信息均會(huì)在此顯示,如下圖的形式,切換查看。
jmeter beanshell斷言,接口測(cè)試,Jmeter,工具類,jmeter,java,單元測(cè)試,BeanShell斷言,測(cè)試工具

四、實(shí)例演示

已知請(qǐng)求的接口,響應(yīng)狀態(tài)碼:200,響應(yīng)結(jié)果包含:token字段,如下圖,按照【2.2.斷言源碼】設(shè)置腳本,斷言成功通過(guò)
jmeter beanshell斷言,接口測(cè)試,Jmeter,工具類,jmeter,java,單元測(cè)試,BeanShell斷言,測(cè)試工具
修改斷言腳本如下圖所示:
jmeter beanshell斷言,接口測(cè)試,Jmeter,工具類,jmeter,java,單元測(cè)試,BeanShell斷言,測(cè)試工具
jmeter beanshell斷言,接口測(cè)試,Jmeter,工具類,jmeter,java,單元測(cè)試,BeanShell斷言,測(cè)試工具
查看斷言結(jié)果:2個(gè)斷言均不通過(guò),如下圖所示
1、【察看結(jié)果樹(shù)】組件,查看斷言結(jié)果
jmeter beanshell斷言,接口測(cè)試,Jmeter,工具類,jmeter,java,單元測(cè)試,BeanShell斷言,測(cè)試工具
2、【斷言結(jié)果】組件,查看斷言結(jié)果
jmeter beanshell斷言,接口測(cè)試,Jmeter,工具類,jmeter,java,單元測(cè)試,BeanShell斷言,測(cè)試工具

五、BeanShell簡(jiǎn)介

Beanshell是一種類似JAVA的腳本語(yǔ)言,通過(guò)BeanShell可以對(duì)請(qǐng)求數(shù)據(jù)、響應(yīng)數(shù)據(jù)或環(huán)境變量進(jìn)行更加靈活的處理和判斷。還可以直接調(diào)用外部的JAR包,例如:可以直接引入現(xiàn)成的第三方JSON解析包來(lái)使用。
在JMeter的多種組件中都有BeanShell的身影,如下:

定時(shí)器:BeanShell Timer
前置處理器:BeanShell PreProcessor
采樣器:BeanShell Sampler
后置處理器:BeanShell PostProcessor
斷言:BeanShell Assert
監(jiān)聽(tīng)器:BeanShell Listener

在JMeter運(yùn)行的流程控制中,BeanShell出現(xiàn)的位置,如下圖所示:
jmeter beanshell斷言,接口測(cè)試,Jmeter,工具類,jmeter,java,單元測(cè)試,BeanShell斷言,測(cè)試工具
Beanshell的內(nèi)置變量和方法
Beanshell有一些默認(rèn)的內(nèi)置變量和方法,用戶可以通過(guò)這些變量與JMeter進(jìn)行交互,例如:
1、prInt:非GUI模式下打印信息(輸出信息到stdout,標(biāo)準(zhǔn)輸出控制臺(tái))。
2、log:輸出信息到日志(文件)

  • log.debu(“調(diào)試信息”)
  • log.info(“響應(yīng)狀態(tài)碼” + ResponseCode)
  • log.warn(“警告信息”)
    log.error(“出錯(cuò)信息”)

3、ResponseCode:響應(yīng)狀態(tài)碼(String類型)。
4、ResponseHeaders:響應(yīng)頭(String類型)。
5、prev:獲取當(dāng)前請(qǐng)求結(jié)果

  • prew.getResponseDataAsString():獲取響應(yīng)體數(shù)據(jù)(String類型)。
  • prew.getResponseCode():獲取狀態(tài)碼(同ResponseCode,String類型)。

6、vars:操作JMeter變量

  • String var1 = vars.get(“變量名”):獲取變量的值(假設(shè)為String類型)。
  • vars.put(“變量名”, 變量值):設(shè)置變量值。

7、props:操作JMeter屬性

  • props.get(String,String) 可以獲取JMeter中已經(jīng)生成的屬性。
  • props.put(String,String)可以創(chuàng)建和更新JMeter屬性。

8、ctx:獲取當(dāng)前線程上下文數(shù)據(jù)(可獲取所有信息)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-784076.html

  • ctx.getVariables(“變量名”):獲取變量值(同vars.get())
  • ctx.setVariables(“變量名”,“變量值”):設(shè)置變量(同vars.put())
  • ctx.getProperties(“屬性名”):獲取屬性值(同props.get())。
  • ctx.setProperties(“屬性名”,“屬性值”):設(shè)置屬性(同props.put()
  • ctx.getPreviousResult():獲取當(dāng)前請(qǐng)求結(jié)果同(prev)
  • ctx.getCurrentSampler():獲取當(dāng)前采樣器。
  • ctx.getPreviousSampler():獲取前一采樣器。
  • ctx.getThreadNum():獲取線程數(shù)。
  • ctx.getThreadGroup():獲取線程組。
  • ctx. getThread():獲取當(dāng)前線程。
  • ctx.getEngine():獲取引擎。
  • ctx.isSamplingStarted():判斷采樣器是否啟動(dòng)。
  • ctx.isRecording():判斷是否開(kāi)啟錄制。
  • ctx.getSamplerContext():獲取采樣器山下文數(shù)據(jù)。

到了這里,關(guān)于Jmeter常用斷言之BeanShell斷言詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • jmeter--7.BeanShell

    jmeter--7.BeanShell

    目錄 1. beanshell常用語(yǔ)法 1.1 log:日志寫入 1.2 vars:設(shè)置和引用局部變量(同線程組) 1.3 props:設(shè)置和引用全局變量(跨線程組) 1.4 prev:獲取前一個(gè)請(qǐng)求返回的信息 2. beanshell調(diào)用java代碼 2.1 beanshell直接調(diào)用java文件(針對(duì)單個(gè)文件) 2.2?beanshell直接調(diào)用jar包 3. beanshell調(diào)用py

    2024年01月20日
    瀏覽(66)
  • jmeter使用beanshell

    1.使用jar包需要將依賴和腳本放在安裝路徑下的lib/ext中,這樣可以避免很多問(wèn)題產(chǎn)生 pip3 install -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com allure_pytest-2.13.2-py3-none-any.whl 通過(guò)docker安裝的Jenkins容器 需要再Jenkins容器中安裝python3環(huán)境以及周邊插件,上面的命令和處理

    2024年02月04日
    瀏覽(20)
  • Jmeter 中 Beanshell 的使用

    Jmeter 中 Beanshell 的使用

    目錄 前言: Beanshell 介紹 常用內(nèi)置變量 log vars 和 props vars 常用方法: props 常用方法: prev 綜合運(yùn)用 JMeter 是一個(gè)廣泛使用的性能測(cè)試工具,它支持許多不同的測(cè)試技術(shù)和方法。其中,Beanshell 是一種常用的腳本語(yǔ)言,它可以用來(lái)自動(dòng)化測(cè)試腳本的執(zhí)行和參數(shù)化測(cè)試。 Beanshel

    2024年02月16日
    瀏覽(27)
  • JMeter-BeanShell預(yù)處理程序和BeanShell后置處理程序的應(yīng)用

    JMeter-BeanShell預(yù)處理程序和BeanShell后置處理程序的應(yīng)用

    BeanShell是用Java寫成的,一個(gè)小型的、免費(fèi)的、可以下載的、嵌入式的Java源代碼解釋器,JMeter性能測(cè)試工具也充分接納了BeanShell解釋器,封裝成了可配置的BeanShell前置和后置處理器,分別是 BeanShell Preprocessor(BeanShell預(yù)處理程序)和BeanShell Postprocessor(BeanShell后置處理程序),能通

    2024年04月10日
    瀏覽(25)
  • jmeter-BeanShell預(yù)處理器與BeanShell后置處理器的使用

    jmeter-BeanShell預(yù)處理器與BeanShell后置處理器的使用

    BeanShell是一個(gè)小型嵌入式Java源代碼解釋器,具有對(duì)象腳本語(yǔ)言特性,能夠動(dòng)態(tài)地執(zhí)行標(biāo)準(zhǔn)JAVA語(yǔ)法,并利用在JavaScript和Perl中常見(jiàn)的松散類型、命令、閉包等通用腳本來(lái)對(duì)其進(jìn)行拓展。 前置處理器:請(qǐng)求發(fā)送之前對(duì)請(qǐng)求參數(shù)做一些處理 后置處理器:請(qǐng)求發(fā)送完成之后對(duì)響應(yīng)數(shù)

    2023年04月17日
    瀏覽(28)
  • 使用BeanShell寫入內(nèi)容到文件【JMeter】

    使用BeanShell寫入內(nèi)容到文件【JMeter】

    ? 在我們?nèi)粘9ぷ髦?,可能?huì)遇到需要將請(qǐng)求返回的數(shù)據(jù)寫入到文件中。在我們使用JMeter進(jìn)行性能測(cè)試時(shí),就經(jīng)常能夠遇到這種情況。要想達(dá)到這種目的,我們一般采取BeanShell后置處理器來(lái)將內(nèi)容寫入到文件。 ? 在目前大多數(shù)的性能測(cè)試中,都是以JSON形式返回結(jié)果。因此我

    2024年02月11日
    瀏覽(21)
  • 【JMeter】使用BeanShell寫入內(nèi)容到文件

    【JMeter】使用BeanShell寫入內(nèi)容到文件

    目錄 使用BeanShell寫入內(nèi)容到文件 一、前言 二、提取 三、寫入 ?在我們?nèi)粘9ぷ髦?,可能?huì)遇到需要將請(qǐng)求返回的數(shù)據(jù)寫入到文件中。在我們使用JMeter進(jìn)行性能測(cè)試時(shí),就經(jīng)常能夠遇到這種情況。要想達(dá)到這種目的,我們一般采取BeanShell后置處理器來(lái)將內(nèi)容寫入到文件。 ?

    2024年02月12日
    瀏覽(25)
  • Jmeter之Beanshell解析并提取json響應(yīng)

    將fastjson-1.2.49.jar包置于jmeter的lib目錄下,并將該jar包添加到測(cè)試計(jì)劃的Library中;否則會(huì)報(bào):Typed variable declaration : Class: JSONObject not found in namespace的錯(cuò)誤 利用beanshell獲取到j(luò)son響應(yīng),然后通過(guò)JSONObject 和JSONArray 將數(shù)組解析,遍歷數(shù)組的length之后,提取參數(shù)值 我們需要解析如下

    2024年02月16日
    瀏覽(23)
  • 6.jmeter非GUI命令及Beanshell組件

    6.jmeter非GUI命令及Beanshell組件

    1. -n 使用非gui方式,不能單獨(dú)使用,必須和-t(指定jmeter的腳本)一起用。 只會(huì)生成一個(gè)log日志文件,沒(méi)有任何報(bào)告輸出 2. -l 生成jtl格式的報(bào)告 注意:修改jmeter.propties配置文件 jtl報(bào)告查看,在察看結(jié)果樹(shù)中游覽文件并打開(kāi) 3. -e 生成html報(bào)告,不能單獨(dú)使用,一般和-o(輸出)

    2024年01月25日
    瀏覽(25)
  • Jmeter beanshell追加寫文件和覆蓋寫文件方法

    寫在前面: 眾所周知,jmeter中的beanshell的功能非常強(qiáng)大,其中beanshell寫文件,對(duì)于使用jemter進(jìn)行接口或者性能測(cè)試,是一個(gè)非常有用的功能。 那如何利用beanshell寫文件呢? 以及追加寫文件和覆蓋原有內(nèi)容的寫文件,兩個(gè)方式的代碼,有什么不同? 請(qǐng)見(jiàn)本博文 1. 追加寫文件

    2023年04月27日
    瀏覽(13)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包