Jmeter之Bean shell使用(二)

上一篇Jmeter之Bean shell使用(一)簡單介紹了下Jmeter中的Bean shell,本文是對上文的一個補充,主要總結下常用的幾種場景和方法,相信這些基本可以涵蓋大部分的需求。本節內容如下:

一、操作變量

二、操作屬性?

三、自定義函數

四、引用外部java文件

五、引用外部class文件

六、引用外部Jar包

七、其它用法(接受參數, log等)

?

一、操作變量:通過使用Bean shell內置對象vars可以對變量進行存取操作

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

    b) vars.put("key","value"):數據存到jmeter變量中

二、操作屬性:通過使用Bean shell內置對象props?可以對屬性進行存取操作

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

    b) props.put("PROP1","1234");

三、自定義函數:

  在BeanShell中,我們可以使用java語言自定義函數來處理特定的邏輯,結合BeanShell的內置對象進行變量的存取,方便我們進行測試提高腳本的靈活性。

示例:

1、在Test Plan中添加一個變量:hello = kitty

?

2、Debug sampler-1和Debug sampler-2什么都不處理,用來查詢對比beahshell處理前后的結果

3、BeanShell Sampler中的腳本如下:

?

4、運行結果:

  • Debug sampler-1中顯示:hello=kitty
  • BeanShell sampler中 返回結果為:success?
  • Debug sampler-1中顯示:hello=world,jmeter=111111

?

四、引用外部java文件:

  有沒有覺得上面(三)中自定義函數這樣的方式太麻煩并且也不美觀?而且如果我們已經有現成的java源文件或者class文件時,我們有沒有什么辦法直接在jemter中引用?這就是這部分要介紹的內容,直接上示例:

1、假如我有一個java 源文件,名為:Myclass.java,代碼如下:  

復制代碼
package test;public class Myclass
{public int add(int a, int b){return a + b;}    
}
復制代碼

2、Bean Shell使用代碼如下:

  在bean shel中通過source("代碼路徑")方法引入java,然后調用方法和java一樣,new一個class,再調用里面的add 方法。

3、運行結果:

?

五、引用外部class文件:

  現在知道如何引用外部文件,有時候如果我們只有class文件怎么辦呢?其實在jmeter中也可以直接引用class文件,示例如下:

1、直接把上例中的java文件編譯成class文件,如何編譯請自行百度。

2、Bean Shell使用代碼如下:

  用addClassPath("D:\\")方法引入 class文件,在用import導入包及類,然后就可以像java一樣調用了

3、運行結果:

?

六、引用外部Jar包:

  上面四、五介紹了如何引用外部java和class文件,如果文件比較多時我們可以把它們打成一個jar包然后在jemter中調用,具體如何使用可以看我上一篇有介紹:Jmeter之Bean shell使用(一)。

  在這里想補充一點的是jmeter中引入jar的方法:

  1、上一篇中已使用過的:把jar包放到jmeter目錄\apache-jmeter-2.13\lib\ext下

  2、在Test Plan的右側面板最下方直接添加需要引用的jar包,如下圖:

?

七、其它用法:?

1、在Test Plan中定義如下三個變量:

2、Bean Shell可腳本如下:

  a、bean shell可以接受傳入參數,如下圖:${u1} ${u2} ${u3}

  b、參數可以通過bsh.args[]按順序提取

  c、bean shell提供了一個內置變量Parameters,來保存參數的集合

3、運行結果:

下圖中1輸入的這兩句設置:

ResponseCode = 500;
ResponseMessage = "This is a test";

下圖中2輸入的這兩句設置:

log.info(Parameters);

log.info(Label);

?

?

官網:

http://jmeter.apache.org/usermanual/component_reference.html#BeanShell_Sampler

?

轉載于:https://www.cnblogs.com/wangcp-2014/p/5156977.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/285796.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/285796.shtml
英文地址,請注明出處:http://en.pswp.cn/news/285796.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【ArcGIS風暴】ArcGIS中國地表覆蓋數據GlobeLand30預處理(批量投影、拼接、掩膜提取)附成品下載

結果示意圖: GlobeLand30是30米空間分辨率全球地表覆蓋數據,目前可供下載的有3年的數據:2000-2010-2020。本文主要講解在ArcGIS10.6平臺下進行GlobeLand30的預處理操作,主要預處理步驟包括:批量分幅投影轉換、批量分幅…

Asp.Net MVC4入門指南(9):查詢詳細信息和刪除記錄

在本教程中,您將查看自動生成的Details和Delete方法。 查詢詳細信息和刪除記錄 打開Movie控制器并查看Details方法。 ?Code First 使得您可以輕松的使用Find方法來搜索數據。一個重要的安全功能內置到了方法中。方法首先驗證Find方法已經找到了一部電影&#xff0c…

漫畫:什么是架構師?

于是,小灰去向大黃請教 這是有關未來的故事: 從前,有一個趕路的人路過一片工地,看到三個年輕人在工地上搬磚。 于是,他問其中一個人: 于是,他又問了第二個人: 于是,他又問…

Andoroid之BottomNavigationView右上角添加紅點布局和自動跳轉到底部具體第幾個Tab

一、需求 BottomNavigationView右上角添加紅點布局和自動跳轉到底部具體第幾個Tab 我們知道BottomNavigationView是在google material里面的組件 github地址如下: https://github.com/material-components/material-components-android 二、效果圖片爆照 三、BottomNaviga…

FileSystemWatcher監聽文件是否有被修改

作用:監聽文件系統更改通知,并在目錄或目錄中的文件更改時引發事件。 需求:監聽特定文件是否修改,然后做出相應的操作。 方法: ①利用一個線程,一直去查找該指定的文件是否有被修改,如果修改則操…

一、FFmpeg 的初嘗試《FFmpeg 音視頻開發基礎入門到實戰》

學習目標 了解 FFmpeg學習 FFmpeg 工具的下載及環境配置了解 FFmpeg 工具的使用方式了解 FFmpeg play 的使用方法了解 FFmpeg paly 的音量設置、窗口設置、音量設置等設置方法 一、了解 FFmpeg FFmpeg 是一個音視頻處理的工具,通過 FFmpeg 可以對視頻進行旋轉、縮…

快速掌握 ASP.NET 身份認證框架 Identity - 用戶注冊

推薦關注「碼俠江湖」加星標,時刻不忘江湖事這是 ASP.NET Core Identity 系列的第二篇文章,上一篇文章介紹了 Identity 框架的集成,以及一些基礎知識。這篇文章講一講如何在 ASP.NET Core Identity 中實現用戶注冊。點擊上方或后方藍字&#…

Android命令Monkey壓力測試,詳解

支持原創,前半部分來源博客原文:http://blog.csdn.net/huangbiao86/article/details/8490743shell, monkey, system, Android, 文件系統Monkey, 示例, 簡介一、Monkey測試簡介Monkey測試是Android平臺自動化測試的一種手段,通過Monkey程序模擬…

JAVA 排序工具類

提供了以下排序: 冒泡排序選擇排序插入排序希爾排序快速排序歸并排序桶排序堆排序package com.xingej.algorithm.sort;import java.util.ArrayList; import java.util.Collections;/*** 排序工具類* * author erjun 2017年12月13日 上午8:38:22*/public class SortU…

js中null,undefined,false,0,'',[],{}判斷方法

目錄 1.數據類型 2.JSON字符串 3.數字類型 4.非的布爾值 5.與非比較 一、單獨判斷 1.null 2.undefined 3.0 4.“” 5.判斷undefined、null與NaN: 因為獲取到數據的不確定性,常常會導致一些異常情況,使得頁面報錯,往往要兼容這些異…

【GIS風暴】30米分辨率地表覆蓋數據GlobeLand30原始數據集簡介及下載地址

數據集預覽: GlobeLand30是30米空間分辨率全球地表覆蓋數據,目前可供下載使用的有3年的數據:2000-2010-2020,本文主要講述GlobeLand30的官網下載地址和數據集簡介。 數據處理方法、成果數據下載: 【ArcGIS風暴】ArcGI…

Git之解決git stash pop多次產生的文件沖突問題

1、問題 我們用git命令一般拉取線上代碼的時候,本地修改了,我們一般先git stash下,接下來git pull, 然后git stash pop下,但是我新增了文件,沒有添加到本地git(也就是沒有git add file這個新增加的文件),然…

記一次意外

今天嘗試給同一個對象綁定多個事件: document.getElementById("a").οnfοcus function(){ alert("1") }.οnclick function(){ alert("2") } 發現彈出2,改變focus和click的順序后依舊如此&…

一、基礎折線圖詳解《手把手教你 ECharts 數據可視化詳解》

注:本系列教程需要對應 JavaScript 、html、css 基礎,否則將會導致閱讀時困難,本教程將會從 ECharts 的官方示例出發,詳解每一個示例實現,從中學習 ECharts 。 ECharts 官方示例:https://echarts.apache.o…

NLog自定義Target之MQTT

NLog是.Net中最流行的日志記錄開源項目(之一),它靈活、免費、開源官方支持文件、網絡(TCP、UDP)、數據庫、控制臺等輸出社區支持Elastic、Seq等日志平臺輸出實時日志需求在工業物聯網等特定場景下需要實時獲取日志信息工業物聯網領域常用的是mqtt協議那我們就使用NL…

2016-1-27

2019獨角獸企業重金招聘Python工程師標準>>> 1.前端的三大技能:1.1.描述網頁內容html 1.2.描述網頁樣式css 1.3.描述網頁行為js2.html和jsp區別在于靜態和動態..bootsharp是目前比較火爆的css..angular是目前比較火爆的js.3.單點登陸(SSO):登陸一次就可以訪問所有相…

【ArcGIS風暴】ArcGIS生成GlobeLand30土地利用數據集中國區域行列號shp格式對照圖(附shp下載)

效果預覽: 本文主要講述了在ArcGIS中生成GlobeLand中國區域對照行列號的shp格式矢量數據,用途在于將自己的研究區跟行列號矢量圖層直接疊加顯示,快速找出自己所需要的圖幅號,便于快速下載數據。同時為了方便使用,本文提供了對照圖的下載。 文章目錄 1. 創建文件數據庫2. 創…

Android 節操視頻播放器jiecaovideoplayer自定義播放音頻使用:屏蔽全屏按鈕,增加倒計時,當前時間/總時間

一、屏蔽全屏按鈕 找到JCVideoPlayerStandard.java文件中的代碼: private void fixAudio() {if (SrcType.equalsIgnoreCase("Audio")) {//如果是音頻,始終顯示coverImageView//thumbImageView.setVisibility(View.VISIBLE);coverImageView.se…

Android之Dialog提示Unable to add window -- token is not valid; is your activity running?

1、問題 Dialog奔潰提示Unable to add window -- token android.os.BinderProxy@b251dbc is not valid; is your activity running? 2、解決辦法 傳遞context到dialog的時候,要記得先判斷狀態是不是isFinishing或者isDestroyed狀態,這個時候就不要再去show相關的dialog了,…

nagios監控haproxy(借助腳本)

nagios監控haproxy(借助腳本) 修改后的腳本如下(需添加指示燈的狀態) # vi haproxy.sh #!/bin/bash Portnetstat -ntpl | grep haproxy | awk -F[:" "] {print $5} if [ $Port "1080" ];then echo "OK …