日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【干货】JMeter BeanShell 应用

發(fā)布時(shí)間:2025/4/16 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【干货】JMeter BeanShell 应用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


視頻匯總首頁(yè):http://edu.51cto.com/lecturer/index/user_id-4626073.html


不廢話直接上場(chǎng)景


場(chǎng)景1:業(yè)務(wù)單據(jù)參數(shù)化時(shí)要生成一組(多個(gè)時(shí)間,比如訂單日期,發(fā)貨日期等)未來的時(shí)間,運(yùn)用JMeter提供的時(shí)間函數(shù)并不能較好的完成


場(chǎng)景2:測(cè)試Java接口,確又不想繼承AbstractJavaSamplerClient 來完成,此時(shí)可以用BeanShell Sampler來完成


場(chǎng)景3:線程共享變量,我們希望線程之間共享一個(gè)變量,可以利用BeanShell來完成


其它功能自己類推......


場(chǎng)景1:生成訂單日期與發(fā)貨日期,然后放入變量


代碼方便復(fù)制粘貼

[java] view plaincopyprint?

  • import java.text.SimpleDateFormat;

  • import java.util.Calendar;

  • import java.util.Date;


  • Date date = new Date();

  • SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");

  • String nowDate = sf.format(date);

  • Calendar cal = Calendar.getInstance();

  • cal.setTime(sf.parse(nowDate));

  • cal.add(Calendar.DAY_OF_YEAR, +3);

  • String chanceDate = sf.format(cal.getTime());

  • cal.add(Calendar.DAY_OF_YEAR, +7);

  • String planFinishDate = sf.format(cal.getTime());

  • vars.put("orderDate",chanceDate);

  • vars.put("delivery",planFinishDate);


  • 這里的 orderDate delivery 在Vars中,在JMeter中是以Map的形式存放的,我們只需要${變量名}來引用,變量能夠保證數(shù)據(jù)一致性(簡(jiǎn)單說就是線程互不干擾)。走起,調(diào)用試試:


    1.Java請(qǐng)求調(diào)用


    2.結(jié)果樹中察看


    如果這兩個(gè)時(shí)間(orderDate,delivery)在測(cè)試過程中只需要生成一次,可以把BeanShell Sampler 放在僅一次控制器下,這樣性能更加。


    場(chǎng)景2:

    下面BeanUtil是一個(gè)接口程序,已經(jīng)打包BeanShell.jar,現(xiàn)在測(cè)試其中的getUserName與getAddress方法



    直接用BeanShell Sampler到調(diào)用接口方法:


    上圖中,我們簡(jiǎn)單的調(diào)用了getUserName()與getAddress()方法

    log.error是在控制臺(tái)輸出結(jié)果(僅僅調(diào)試的時(shí)候用,正式測(cè)試時(shí)去除掉)。


    vars.put()是把取得的結(jié)果放到變量,供下一個(gè)Sampler調(diào)用()。

    當(dāng)然有個(gè)最得要的部分別忘記了,接口包BeanShell.jar要放到%JMETER_HOME%\lib目錄(建議),當(dāng)然你也可以在測(cè)試計(jì)劃中加入(不建議)


    如下圖:


    如果 BeanShell.jar(你的包名可以任意取名)依賴別的包,那么它所依賴的包也要一道放到%JMETER_HOME%\lib目錄。


    場(chǎng)景3

    線程共享變量


    ?JMeter中線程間共享變量可以通過定義屬性值來完成,JMeter啟動(dòng)時(shí)會(huì)讀取一些屬性文件,比如jmeter.properties、user.properties,這些屬性


    值是可以增加的,也可以修改的,通過BeanShell可以對(duì)其進(jìn)行更改。

    ?以BeanShell Sampler為例,在其中通過props.put()來增加屬性,props.get()來獲取屬性。


    ?在其它Sampler中,比如Java Sampler中通過 ${__property(【屬性名稱】,,)}來獲取。

    ?

    ??

    各類視頻匯總地址:http://xqtesting.blog.51cto.com/4626073/1669386

    QQ群掃下方二維碼

    ?


    總結(jié)

    以上是生活随笔為你收集整理的【干货】JMeter BeanShell 应用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。