溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Jmeter接口測(cè)試與數(shù)據(jù)驅(qū)動(dòng)

發(fā)布時(shí)間:2020-08-10 16:25:16 來(lái)源:網(wǎng)絡(luò) 閱讀:241 作者:louiezhou001 欄目:軟件技術(shù)

一. 背景

數(shù)據(jù)驅(qū)動(dòng)Data Driven Testing(DDT),是一種用于創(chuàng)建自動(dòng)化測(cè)試的方法,或者說(shuō)是一種架構(gòu), 本質(zhì)是輸入數(shù)據(jù)和用這些數(shù)據(jù)獲取測(cè)試結(jié)果, 使測(cè)試邏輯和測(cè)試數(shù)據(jù)分離.

DDT的優(yōu)點(diǎn)是測(cè)試工程師不必為每一個(gè)輸入數(shù)據(jù)創(chuàng)建一個(gè)單獨(dú)的測(cè)試用例, 測(cè)試在一個(gè)實(shí)例中創(chuàng)建, 并且輸入測(cè)試數(shù)據(jù)和預(yù)期結(jié)果在表格文件中獲取.


二. Jmeter 數(shù)據(jù)驅(qū)動(dòng)

首先創(chuàng)建url.csv文件作為輸入測(cè)試數(shù)據(jù), 內(nèi)容如下:

Jmeter接口測(cè)試與數(shù)據(jù)驅(qū)動(dòng)

以上內(nèi)容保存退出后也可以用文本編輯器編輯, 注意標(biāo)點(diǎn)符號(hào)

我是mac os, 保存目錄為/Users/louiezhou/home/url.csv

csv數(shù)據(jù)設(shè)置文件中要用到這個(gè)路徑

被測(cè)接口如下:

  • get方法:?https://postman-echo.com/get?foo1=bar1??

  • get方法:?https://postman-echo.com/get?foo2=bar2

  • post方法:?https://postman-echo.com/post? 入?yún)"foo1":"bar1","foo2":"bar2"}

API文檔來(lái)源:?https://docs.postman-echo.com/?version=latest#078883ea-ac9e-842e-8f41-784b59a33722

接下來(lái)到j(luò)meter里, 首先創(chuàng)建一個(gè)線(xiàn)程組

Jmeter接口測(cè)試與數(shù)據(jù)驅(qū)動(dòng)

在該線(xiàn)程組下創(chuàng)建一個(gè)普通http請(qǐng)求, 命名為postman-echo_header, 用于和數(shù)據(jù)驅(qū)動(dòng)比較

Jmeter接口測(cè)試與數(shù)據(jù)驅(qū)動(dòng)


添加一個(gè)循環(huán)控制器

Jmeter接口測(cè)試與數(shù)據(jù)驅(qū)動(dòng)

循環(huán)數(shù)量和數(shù)據(jù)表格文件中用例數(shù)量推薦保持一致.


在循環(huán)控制器下添加csv 數(shù)據(jù)文件設(shè)置

Jmeter接口測(cè)試與數(shù)據(jù)驅(qū)動(dòng)

在循環(huán)控制器下添加if 控制器,命名為if_get

Jmeter接口測(cè)試與數(shù)據(jù)驅(qū)動(dòng)

jmeter 5.0 + 版本, if控制器和old version 略有不同.

此處添加if主要是判斷如果是get方法就走這個(gè)if_get控制器, 如果是post方法, 就走if_post控制器.


在if_get控制器下添加一個(gè)http請(qǐng)求

命名規(guī)則為: ${caseSeq}_${apiSeq}_${apiName}

用例編號(hào)_API版本_API名稱(chēng), 這樣命名更為直觀(guān),便于理解

?Jmeter接口測(cè)試與數(shù)據(jù)驅(qū)動(dòng)

${apiType} =https 為API請(qǐng)求協(xié)議

${host} =postman-echo.com? 在用戶(hù)自定義變量中定義

${url}=/get

${param}=? foo1=bar1

拼接完整的是: https://postman-echo.com/get?foo1=bar1??


再來(lái)看if控制器的if_post

仍然是在循環(huán)控制器下新建一個(gè)if控制器,命名為if_post

Jmeter接口測(cè)試與數(shù)據(jù)驅(qū)動(dòng)


在if_post下新建一個(gè)http請(qǐng)求, 命名規(guī)則同if_get下http一致

Jmeter接口測(cè)試與數(shù)據(jù)驅(qū)動(dòng)

${param}={“foo1”:”bar1”, “foo2”:”bar2”}

拼接完整的請(qǐng)求是:

https://postman-echo.com/post

POST data:

{"foo1":"bar1","foo2":"bar2"}

因?yàn)槭莗ost方式, 入?yún)⒎绞脚cget有所區(qū)別, 因此還需要在該http下聲明一個(gè)http信息管理頭

Jmeter接口測(cè)試與數(shù)據(jù)驅(qū)動(dòng)

主流程到這里就完成了, 接下來(lái)看下零碎的地方

給每個(gè)http請(qǐng)求加上斷言

Jmeter接口測(cè)試與數(shù)據(jù)驅(qū)動(dòng)

雖然他們的預(yù)期值都是變量${expectValue}, 但實(shí)際值是不同的

用例C001的預(yù)期值:${expectValue}: foo1=bar1

用例C002的預(yù)期值${expectValue}:foo2=bar2

用例C003的預(yù)期值${expectValue}: {“foo1”:”bar1”,”foo2”:”bar2”}


再來(lái)看下用戶(hù)自定義變量

Jmeter接口測(cè)試與數(shù)據(jù)驅(qū)動(dòng)

目錄層級(jí)結(jié)構(gòu)

Jmeter接口測(cè)試與數(shù)據(jù)驅(qū)動(dòng)

添加相應(yīng)的監(jiān)聽(tīng)即可執(zhí)行了.


接下來(lái)看執(zhí)行結(jié)果

Jmeter接口測(cè)試與數(shù)據(jù)驅(qū)動(dòng)


Jmeter接口測(cè)試與數(shù)據(jù)驅(qū)動(dòng)


Jmeter接口測(cè)試與數(shù)據(jù)驅(qū)動(dòng)

Jmeter接口測(cè)試與數(shù)據(jù)驅(qū)動(dòng)

Jmeter接口測(cè)試與數(shù)據(jù)驅(qū)動(dòng)

Jmeter接口測(cè)試與數(shù)據(jù)驅(qū)動(dòng)

Jmeter接口測(cè)試與數(shù)據(jù)驅(qū)動(dòng)

在數(shù)據(jù)表格文件中還有些參數(shù)沒(méi)有用到, 比如priority字段, 可以根據(jù)需求適當(dāng)添加相應(yīng)判斷, 本篇幅僅為拋磚引玉, 如您有更好的idea, 歡迎拋過(guò)來(lái).


最后來(lái)一碗雞湯:

你現(xiàn)在的生活水平,是你三年前的工作狀態(tài)決定的;而你現(xiàn)在的努力程度,會(huì)決定你三年后的生活;軟件行業(yè)是個(gè)逆水行舟,不進(jìn)則退的行業(yè),既然選擇了這個(gè)行業(yè),那么就要努力地“敲”下去。


今日精選推薦

JMeter接口測(cè)試-if控制器

JMeter數(shù)據(jù)庫(kù)操作

Jmeter接口測(cè)試-正則表達(dá)式

JMeter中文返回亂碼

Jmeter接口測(cè)試-參數(shù)化

JMeter接口測(cè)試-基礎(chǔ)

測(cè)試-感想



咨詢(xún)工作加微信

Jmeter接口測(cè)試與數(shù)據(jù)驅(qū)動(dòng)

掃描二維碼


歡迎自薦和推薦, 需要的微信推送簡(jiǎn)歷!

請(qǐng)猛戳下面二維碼了解更多

Jmeter接口測(cè)試與數(shù)據(jù)驅(qū)動(dòng)


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI