亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

jmeter中beanshell的用法小結(jié)

 更新時(shí)間:2023年05月25日 15:37:07   作者:bulabula2022  
本文主要介紹了jmeter中beanshell的用法小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

一、什么是Bean Shell

BeanShell是用Java寫成的,一個(gè)小型的、免費(fèi)的、可以下載的、嵌入式的Java源代碼解釋器,具有對(duì)象腳本語(yǔ)言特性,非常精簡(jiǎn)的解釋器jar文件大小為175k。
BeanShell執(zhí)行標(biāo)準(zhǔn)Java語(yǔ)句和表達(dá)式,另外包括一些腳本命令和語(yǔ)法。

官網(wǎng)地址:http://www.BeanShell.org/

二、BeanShell的用法

2.1操作變量:

通過(guò)使用Bean shell內(nèi)置對(duì)象vars可以對(duì)變量進(jìn)行存取操作

a) vars.get("name"):從jmeter中獲得變量值

b) vars.put("key","value"):數(shù)據(jù)存到j(luò)meter變量中

2.2操作屬性:

通過(guò)使用Bean shell內(nèi)置對(duì)象props 可以對(duì)屬性進(jìn)行存取操作

a) props.get("START.HMS");  注:START.HMS為屬性名,在文件jmeter.properties中定義 

b) props.put("PROP","12345");

2.3引用外部java文件:

假如我有一個(gè)java 源文件,名為:myJava.java,代碼如下:

package demo;
public class Myclass
{
    public int add(int a, int b)
    {
        return a + b;
    }    
}

在bean shell中通過(guò)source("代碼路徑")方法引入java,然后調(diào)用方法和java一樣。

運(yùn)行結(jié)果, 獲取到值:

2.4引用外部class文件:

直接把上例中的myJava.java文件編譯成class文件,用addClassPath("C:\\")方法引入 class文件,在用import導(dǎo)入包及類,然后就可以像java一樣調(diào)用了

2.5引用外部Jar包: 

1、在eclipse寫好代碼,然后把該類打成jar包(在工程上點(diǎn)擊右鍵->Export->jar file)將jar包放到j(luò)meter目錄\apache-jmeter-5.3\lib\ext下

或者,在Test Plan的右側(cè)面板最下方直接添加需要引用的jar包,如下圖:

2.重啟jmeter

3.添加個(gè)請(qǐng)求,在該請(qǐng)求下添加一個(gè)BeanShell PreProcessor

 4.在登錄請(qǐng)求接口下使用${encode_username},${encode_password}引用就可以加密登錄了

三、Bean Shell常用內(nèi)置變量

JMeter在它的BeanShell中內(nèi)置了變量,用戶可以通過(guò)這些變量與JMeter進(jìn)行交互,其中主要的變量及其使用方法如下:

log:寫入信息到j(luò)meber.log文件,使用方法:log.info(“This is log info!”);

ctx:該變量引用了當(dāng)前線程的上下文,使用方法可參考:org.apache.jmeter.threads.JMeterContext。

vars - (JMeterVariables):操作jmeter變量,這個(gè)變量實(shí)際引用了JMeter線程中的局部變量容器(本質(zhì)上是Map),它是測(cè)試用例與BeanShell交互的橋梁,常用方法:

  • a) vars.get(String key):從jmeter中獲得變量值
  • b) vars.put(String key,String value):數(shù)據(jù)存到j(luò)meter變量中

更多方法可參考:org.apache.jmeter.threads.JMeterVariables

props - (JMeterProperties - class java.util.Properties):操作jmeter屬性,該變量引用了JMeter的配置信息,可以獲取Jmeter的屬性,它的使用方法與vars類似,但是只能put進(jìn)去String類型的值,而不能是一個(gè)對(duì)象。對(duì)應(yīng)于java.util.Properties。 

prev - (SampleResult):獲取前面的sample返回的信息,常用方法:

  • a) getResponseDataAsString():獲取響應(yīng)信息
  • b) getResponseCode() :獲取響應(yīng)code

更多方法可參考:org.apache.jmeter.samplers.SampleResult

sampler - (Sampler):gives access to the current sampler

四、提取json數(shù)據(jù)

需求:提取sample返回json數(shù)據(jù)中所有name字段值,返回的json格式如下: 

{“body”:{“apps”:[{“name1”:”111”},{“name2”:”222”}]}} 

BeanShell 后置處理程序添加如下代碼:

import org.json.*;
String response_data = prev.getResponseDataAsString();
JSONObject data_obj = new JSONObject(response_data);
String apps_str = data_obj.get("body").get("apps").toString();
JSONArray apps_array = new JSONArray(apps_str);
String[] result = new String[apps_array.length()];
for(int i=0;i<apps_array.length();i++){
    JSONObject app_obj = new JSONObject(apps_array.get(i).toString());
    String name = app_obj.get("name").toString();
    result[i] = name;
}
vars.put("result", Arrays.toString(result));
 

五、斷言

import txtWrite.*;
String response_data = prev.getResponseDataAsString();
String assert_data="科目${num}";
TxtWrite writeData=new TxtWrite();
if(response_data.indexOf(assert_data)!=-1)//請(qǐng)求的response中有包含自定義字符,則斷言結(jié)果為false
{
    Failure=false;
    String message="${__time(yyyy-MM-dd HH:mm:ss,)}   新建科目【"+assert_data+"】成功";
    FailureMessage=message;
    writeData.contentToTxt("D:/xykyInterfaceAutoTest.log",message);
}else
{
    Failure=true;
    String message="${__time(yyyy-MM-dd HH:mm:ss,)}   新建科目【"+assert_data+"】失敗----------";
    String response="本次請(qǐng)求response數(shù)據(jù):"+prev.getResponseDataAsString()+"----------";
    String need_assert="需要斷言的數(shù)據(jù):"+assert_data;
    FailureMessage=message+response+need_assert;
    writeData.contentToTxt("D:/xykyInterfaceAutoTest.log",message+response+need_assert);
}

到此這篇關(guān)于jmeter中beanshell的用法小結(jié)的文章就介紹到這了,更多相關(guān)jmeter beanshell用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mybatis-Plus最優(yōu)化持久層開發(fā)過(guò)程

    Mybatis-Plus最優(yōu)化持久層開發(fā)過(guò)程

    Mybatis-plus(簡(jiǎn)稱MP)是一個(gè)Mybatis的增強(qiáng)工具,在mybatis的基礎(chǔ)上只做增強(qiáng)不做改變,提高效率,自動(dòng)生成單表的CRUD功能,這篇文章主要介紹了Mybatis-Plus最優(yōu)化持久層開發(fā),需要的朋友可以參考下
    2024-07-07
  • mybatis-plus 實(shí)現(xiàn)分頁(yè)查詢的示例代碼

    mybatis-plus 實(shí)現(xiàn)分頁(yè)查詢的示例代碼

    本文介紹了在MyBatis-Plus中實(shí)現(xiàn)分頁(yè)查詢,包括引入依賴、配置分頁(yè)插件、使用分頁(yè)查詢以及在控制器中調(diào)用分頁(yè)查詢的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • Spring框架花式創(chuàng)建Bean的n種方法(小結(jié))

    Spring框架花式創(chuàng)建Bean的n種方法(小結(jié))

    這篇文章主要介紹了Spring框架花式創(chuàng)建Bean的n種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • JAVA設(shè)計(jì)模式之責(zé)任鏈模式詳解

    JAVA設(shè)計(jì)模式之責(zé)任鏈模式詳解

    這篇文章主要介紹了JAVA設(shè)計(jì)模式之責(zé)任鏈模式詳解,需要的朋友可以參考下
    2015-04-04
  • dubbo新手學(xué)習(xí)之事件通知實(shí)踐教程

    dubbo新手學(xué)習(xí)之事件通知實(shí)踐教程

    這篇文章主要給大家介紹了關(guān)于dubbo新手學(xué)習(xí)之事件通知實(shí)踐的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • ObjectMapper 如何忽略字段大小寫

    ObjectMapper 如何忽略字段大小寫

    這篇文章主要介紹了使用ObjectMapper實(shí)現(xiàn)忽略字段大小寫操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java中join線程操作實(shí)例分析

    Java中join線程操作實(shí)例分析

    這篇文章主要介紹了Java中join線程操作,結(jié)合實(shí)例形式分析了java使用join方法操作線程的相關(guān)原理與實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-09-09
  • 詳解poi+springmvc+springjdbc導(dǎo)入導(dǎo)出excel實(shí)例

    詳解poi+springmvc+springjdbc導(dǎo)入導(dǎo)出excel實(shí)例

    本篇文章主要介紹了poi+springmvc+springjdbc導(dǎo)入導(dǎo)出excel實(shí)例,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。
    2017-01-01
  • java FileOutputStream輸出流的使用解讀

    java FileOutputStream輸出流的使用解讀

    這篇文章主要介紹了java FileOutputStream輸出流的使用解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Centos 7 安裝 OpenJDK 11 兩種方式及問(wèn)題小結(jié)

    Centos 7 安裝 OpenJDK 11 兩種方式及問(wèn)題小結(jié)

    這篇文章主要介紹了Centos 7 安裝 OpenJDK 11 兩種方式,第一種方式使用yum安裝,第二種方式使用tar解壓安裝,每種方法給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-09-09

最新評(píng)論