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

Jmeter進(jìn)階使用:BeanShell實(shí)現(xiàn)接口前置和后置操作

這篇具有很好參考價(jià)值的文章主要介紹了Jmeter進(jìn)階使用:BeanShell實(shí)現(xiàn)接口前置和后置操作。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、背景

我們使用Jmeter做壓力測(cè)試或者接口測(cè)試時(shí),除了最簡(jiǎn)單的直接對(duì)接口發(fā)起請(qǐng)求,很多時(shí)候需要對(duì)接口進(jìn)行一些前置操作:比如提前生成測(cè)試數(shù)據(jù),以及一些后置操作:比如提取接口響應(yīng)內(nèi)容中的某個(gè)字段的值。舉個(gè)最常用的例子:

會(huì)員注冊(cè)接口:需要使用電話號(hào)碼作為入?yún)?,電話?hào)碼不能重復(fù),注冊(cè)接口需要添加前置操作生成不重復(fù)的電話號(hào)碼。

注冊(cè)成功后:需要從接口返回的內(nèi)容中,提取注冊(cè)生成的用戶(hù)ID的值,作為后續(xù)其他接口操作的入?yún)ⅰ?/p>

要實(shí)現(xiàn)以上的需求,有多種方式,比如:

函數(shù)助手生成隨機(jī)數(shù);

手動(dòng)在excel表中準(zhǔn)備好足夠多的號(hào)碼,通過(guò)添加配置元件CSV data set config來(lái)獲?。ú煌扑]);

正則表達(dá)式提取值;

通過(guò)BeanShell編碼實(shí)現(xiàn);

本文主要給大家講解如何通過(guò)BeanShell編碼實(shí)現(xiàn),該方法可擴(kuò)展性強(qiáng)。掌握之后,你會(huì)發(fā)現(xiàn)很多場(chǎng)景都可以通過(guò)編寫(xiě)相應(yīng)的編碼來(lái)實(shí)現(xiàn),一通百通。

二、BeanShell生成不重復(fù)的電話號(hào)碼

Sampler前面加一個(gè)前置處理器BeanShellPreProcessor:

Jmeter進(jìn)階使用:BeanShell實(shí)現(xiàn)接口前置和后置操作,自動(dòng)化測(cè)試,軟件測(cè)試,軟件測(cè)試工程師,jmeter,職場(chǎng)和發(fā)展,自動(dòng)化測(cè)試,軟件測(cè)試,功能測(cè)試,程序人生

BeanShell PreProcessor的內(nèi)容為:

代碼內(nèi)容:

//獲取指定范圍111-199間的隨機(jī)數(shù)作為電話號(hào)碼的前綴
long phoneTitle=${__Random(111,199,)};
String phoneTitleValue=phoneTitle.toString();
log.info(phoneTitleValue.toString());


//當(dāng)前時(shí)間戳,比如:1649038001761,除100000,得到一個(gè)8位的時(shí)間戳數(shù)字。
long num1 = ${__time(/100000,)};
log.info(num1.toString());
//取1個(gè)[1,100000]的隨機(jī)數(shù)字,有極低的概率重復(fù)
long num2 = ${__Random(1,100000,)};
log.info(num2.toString());
//num1+num2生成1個(gè)新的8位的數(shù)值
long num = num1+num2;


//通過(guò)時(shí)間戳值的變化+隨機(jī)數(shù)字生成新的隨機(jī)值、前面再拼接隨機(jī)的電話號(hào)碼前綴
//生成一個(gè)不會(huì)重復(fù)的電話號(hào)碼
String phoneValue=phoneTitleValue+num.toString();
//存為變量phone,供后面的接口使用
vars.put("phone",phoneValue);

每一行我都加了相應(yīng)的注釋?zhuān)奖憷斫庠撔写a的作用,應(yīng)該已經(jīng)非常好理解了。

接口請(qǐng)求中使用定義好的變量phone:

Jmeter進(jìn)階使用:BeanShell實(shí)現(xiàn)接口前置和后置操作,自動(dòng)化測(cè)試,軟件測(cè)試,軟件測(cè)試工程師,jmeter,職場(chǎng)和發(fā)展,自動(dòng)化測(cè)試,軟件測(cè)試,功能測(cè)試,程序人生

查看接口效果:

三、BeanShell 從響應(yīng)結(jié)果中提取內(nèi)容

先在接口Sampler上右鍵,添加后置處理器BeanShell Post Processor:

Jmeter進(jìn)階使用:BeanShell實(shí)現(xiàn)接口前置和后置操作,自動(dòng)化測(cè)試,軟件測(cè)試,軟件測(cè)試工程師,jmeter,職場(chǎng)和發(fā)展,自動(dòng)化測(cè)試,軟件測(cè)試,功能測(cè)試,程序人生

假設(shè)接口返回內(nèi)容為:
{“code”:“0000”,“msg”:“”,“data”:{“userId”:111111,“phone”:“12011111111”,“cardNo”:“8000000000”}}?

{
    "code":"0000",
    "msg":"",
    "data":{
        "userId":111111,
        "phone":"12011111111",
        "cardNo":"8000000000"
    }
}

BeanShell Post Processor腳本代碼內(nèi)容:

Jmeter進(jìn)階使用:BeanShell實(shí)現(xiàn)接口前置和后置操作,自動(dòng)化測(cè)試,軟件測(cè)試,軟件測(cè)試工程師,jmeter,職場(chǎng)和發(fā)展,自動(dòng)化測(cè)試,軟件測(cè)試,功能測(cè)試,程序人生

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;


//獲取響應(yīng)內(nèi)容
vars.put("reponseContent",prev.getResponseDataAsString());
//獲取響應(yīng)code
vars.put("reponseCode",prev.getResponseCode());


//獲取響應(yīng)內(nèi)容,String類(lèi)型存儲(chǔ)
String resjson=prev.getResponseDataAsString();
log.info(resjson);
//轉(zhuǎn)為Json對(duì)象
JSONObject jso=JSONObject.parseObject(resjson);
//從對(duì)象中獲取code的值
String codeValue=jso.getString("code");
log.info(codeValue);
//從對(duì)象中獲取子的Json對(duì)象data
JSONObject data=jso.getJSONObject("data");
log.info(data.toString());
//獲取子的Json對(duì)象data中的userId的值
String useridValue=data.getString("userId");
log.info(useridValue);
//將獲取到的userId的值存為變量userid,供后面的接口使用
vars.put("userid",useridValue);

每一行我都加了相應(yīng)的注釋?zhuān)奖憷斫庠撔写a的作用,應(yīng)該已經(jīng)非常好理解了。

運(yùn)行請(qǐng)求,Jmeter運(yùn)行日志中可以看到各個(gè)值都成功獲取到了:

Jmeter進(jìn)階使用:BeanShell實(shí)現(xiàn)接口前置和后置操作,自動(dòng)化測(cè)試,軟件測(cè)試,軟件測(cè)試工程師,jmeter,職場(chǎng)和發(fā)展,自動(dòng)化測(cè)試,軟件測(cè)試,功能測(cè)試,程序人生

后面的接口使用BeanShell Post Processor腳本中定義好的變量userid:
Jmeter進(jìn)階使用:BeanShell實(shí)現(xiàn)接口前置和后置操作,自動(dòng)化測(cè)試,軟件測(cè)試,軟件測(cè)試工程師,jmeter,職場(chǎng)和發(fā)展,自動(dòng)化測(cè)試,軟件測(cè)試,功能測(cè)試,程序人生

總結(jié):BeanShell代碼和Java代碼非常相似,有Java編程基礎(chǔ)的同學(xué)可以快速的上手,通過(guò)編碼的方式可以很好的擴(kuò)展我們需要的功能,也是Jmeter進(jìn)階使用的必學(xué)必會(huì)知識(shí)之一 ~

最后感謝每一個(gè)認(rèn)真閱讀我文章的人,禮尚往來(lái)總是要有的,雖然不是什么很值錢(qián)的東西,如果你用得到的話可以直接拿走:【文末領(lǐng)取】


? ? ?【下面是我整理的2023年最全的軟件測(cè)試工程師學(xué)習(xí)知識(shí)架構(gòu)體系圖+全套資料】


一、Python編程入門(mén)到精通

二、接口自動(dòng)化項(xiàng)目實(shí)戰(zhàn)??

Jmeter進(jìn)階使用:BeanShell實(shí)現(xiàn)接口前置和后置操作,自動(dòng)化測(cè)試,軟件測(cè)試,軟件測(cè)試工程師,jmeter,職場(chǎng)和發(fā)展,自動(dòng)化測(cè)試,軟件測(cè)試,功能測(cè)試,程序人生

三、Web自動(dòng)化項(xiàng)目實(shí)戰(zhàn)

四、App自動(dòng)化項(xiàng)目實(shí)戰(zhàn)??

Jmeter進(jìn)階使用:BeanShell實(shí)現(xiàn)接口前置和后置操作,自動(dòng)化測(cè)試,軟件測(cè)試,軟件測(cè)試工程師,jmeter,職場(chǎng)和發(fā)展,自動(dòng)化測(cè)試,軟件測(cè)試,功能測(cè)試,程序人生

五、一線大廠簡(jiǎn)歷

六、測(cè)試開(kāi)發(fā)DevOps體系??

Jmeter進(jìn)階使用:BeanShell實(shí)現(xiàn)接口前置和后置操作,自動(dòng)化測(cè)試,軟件測(cè)試,軟件測(cè)試工程師,jmeter,職場(chǎng)和發(fā)展,自動(dòng)化測(cè)試,軟件測(cè)試,功能測(cè)試,程序人生

七、常用自動(dòng)化測(cè)試工具

八、JMeter性能測(cè)試??

Jmeter進(jìn)階使用:BeanShell實(shí)現(xiàn)接口前置和后置操作,自動(dòng)化測(cè)試,軟件測(cè)試,軟件測(cè)試工程師,jmeter,職場(chǎng)和發(fā)展,自動(dòng)化測(cè)試,軟件測(cè)試,功能測(cè)試,程序人生

九、軟件測(cè)試全套資料

Jmeter進(jìn)階使用:BeanShell實(shí)現(xiàn)接口前置和后置操作,自動(dòng)化測(cè)試,軟件測(cè)試,軟件測(cè)試工程師,jmeter,職場(chǎng)和發(fā)展,自動(dòng)化測(cè)試,軟件測(cè)試,功能測(cè)試,程序人生

十、總結(jié)(文末尾部小驚喜)

生命不息,奮斗不止。每一份努力都不會(huì)被辜負(fù),只要堅(jiān)持不懈,終究會(huì)有回報(bào)。珍惜時(shí)間,追求夢(mèng)想。不忘初心,砥礪前行。你的未來(lái),由你掌握!

生命短暫,時(shí)間寶貴,我們無(wú)法預(yù)知未來(lái)會(huì)發(fā)生什么,但我們可以掌握當(dāng)下。珍惜每一天,努力奮斗,讓自己變得更加強(qiáng)大和優(yōu)秀。堅(jiān)定信念,執(zhí)著追求,成功終將屬于你!

只有不斷地挑戰(zhàn)自己,才能不斷地超越自己。堅(jiān)持追求夢(mèng)想,勇敢前行,你就會(huì)發(fā)現(xiàn)奮斗的過(guò)程是如此美好而值得。相信自己,你一定可以做到!???文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-652690.html

到了這里,關(guān)于Jmeter進(jìn)階使用:BeanShell實(shí)現(xiàn)接口前置和后置操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(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處理接口簽名之BeanShell實(shí)現(xiàn)MD5加密

    JMeter處理接口簽名之BeanShell實(shí)現(xiàn)MD5加密

    項(xiàng)目A需要給項(xiàng)目B提供一個(gè)接口,這個(gè)接口加密了,現(xiàn)在需要測(cè)試這個(gè)接口,需要怎么編寫(xiě)腳本呢?實(shí)現(xiàn)接口簽名的方式有兩種: BeanShell實(shí)現(xiàn)MD5加密和 函數(shù)助手實(shí)現(xiàn)MD5加密, 之前已經(jīng)分享過(guò)了函數(shù)助手實(shí)現(xiàn)MD5加密 ,今天就來(lái)分享下BeanShell實(shí)現(xiàn)MD5加密。 一、接口信息 POST /a

    2024年02月14日
    瀏覽(29)
  • pytest框架快速進(jìn)階篇-pytest前置和pytest后置,skipif跳過(guò)用例

    ?一、 Pytest的前置和后置方法 1.Pytest可以集成unittest實(shí)現(xiàn)前置和后置 注意:setUpClass和tearDownClass需要用@classmethod裝飾器裝飾。 2.Pytest前置和后置 注意:setup、teardown、setup_class、teardown_class都是小寫(xiě)! 二、跳過(guò)用例 使用方法: ? @pytest.mark.skipif(21,reason=\\\'當(dāng)條件不True時(shí)跳過(guò)\\\') 使用

    2024年02月13日
    瀏覽(20)
  • 前置路由守衛(wèi)、后置路由守衛(wèi),前置請(qǐng)求守衛(wèi)、后置請(qǐng)求守衛(wèi)

    在Vue 3和Axios中,路由守衛(wèi)和請(qǐng)求守衛(wèi)是用于控制路由跳轉(zhuǎn)和HTTP請(qǐng)求的關(guān)鍵機(jī)制。 下面是這些守衛(wèi)的介紹和使用方式: 前置路由守衛(wèi)(Before Route Guards) 前置路由守衛(wèi)在路由跳轉(zhuǎn)之前執(zhí)行,可以用來(lái)判斷是否允許用戶(hù)訪問(wèn)某個(gè)路由。在Vue 3中,你可以使用 router.beforeEach 添加全

    2024年04月26日
    瀏覽(22)
  • jmeter使用beanshell

    1.使用jar包需要將依賴(lài)和腳本放在安裝路徑下的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日
    瀏覽(19)
  • 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日
    瀏覽(26)
  • PostMan前置腳本/后置腳本/斷言

    1. 使用腳本的意義:利用腳本可以降低聯(lián)調(diào)工作量.,如 1.1 前置腳本請(qǐng)求前執(zhí)行;用于設(shè)置參數(shù), 可以用于多個(gè)用戶(hù)注冊(cè), 1.2 后置腳本可以對(duì)執(zhí)行請(qǐng)求結(jié)果進(jìn)行校驗(yàn),設(shè)置變量,用于下一個(gè)請(qǐng)求 http請(qǐng)求前執(zhí)行;用于設(shè)置參數(shù); http請(qǐng)求后執(zhí)行;可以測(cè)試請(qǐng)求執(zhí)行結(jié)果;可以解析結(jié)果

    2024年02月12日
    瀏覽(22)
  • Postman之腳本(前置腳本、后置腳本)

    Postman之腳本(前置腳本、后置腳本)

    目錄 review一下pm 前置腳本Pre-request Script 后置腳本Tests Postman中的所有的腳本編寫(xiě)都要通過(guò)pm pm =Postman的簡(jiǎn)寫(xiě) 常用的pm語(yǔ)法: pm.globals.set(\\\"variable_name\\\",\\\"variable_value\\\");? ? ? 設(shè)置全局變量 pm.globals.set(\\\"variable_key\\\", \\\"variable_value\\\"); ?設(shè)置環(huán)境變量 pm.globals.get(\\\"variable_name\\\"); ? ? ?獲取全

    2024年02月09日
    瀏覽(49)
  • jmeter通過(guò)BeanShell對(duì)接口參數(shù)進(jìn)行MD5和HmacSHA256加密【杭州多測(cè)師_王sir】

    jmeter通過(guò)BeanShell對(duì)接口參數(shù)進(jìn)行MD5和HmacSHA256加密【杭州多測(cè)師_王sir】

    一、在eclipse里面編寫(xiě)MD5加密算法 二、在eclipse里面自己編寫(xiě)HMACSHA256算法 三、在eclipse里面寫(xiě)好之后,導(dǎo)出來(lái)為jar包,命名為:base64.jar??放在jmeter/lib/ext中 1.md5方法就一個(gè)參數(shù),就是需要加密的數(shù)據(jù) 2.sha256_HMAC方法接收兩個(gè)參數(shù),message:需要被加密的數(shù)據(jù),secret:加密的秘鑰

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

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

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

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

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

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

    2024年02月12日
    瀏覽(24)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包