日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

前言

jmeter 這個工具既可以做接口的功能測試,也可以做自動化測試,還可以做性能測試,其主要用途就是用于性能測試。但是,有些公司和個人,就想用 jmeter 來做接口自動化測試。
 

你有沒有想過呢?

下面我就給大家講講,用 jmeter 如何做接口自動化測試。

90%測試猿都想學的Jmeter技能,你get嗎?

 

jmeter 與接口自動化測試

如果要你用 jmeter 來做接口自動化測試,你是不是把幾乎每一個測試用例,都是用一個取樣器來實現?

相信很多人都是這么想的,也是這么干的。

但是,很遺憾,你這種,是初級入門做法。你能實現所有的測試用例都被執行,但是,你寫腳本和維護腳本的時間,可能比你用手工執行所有的測試用例時間還要長,而且還可能長很多。

因為,只要開發人員改了接口一個地方,你得從所有取樣器中,找出與這個接口相關的所有取樣器,然后一一修改,萬一有遺漏,哪出現的失敗,不是 bug,而是你腳本的問題。所以說,這是入門級人干的事情。

那有沒有更好的辦法呢?

平時寫功能測試用例的時候,習慣用 Excel 的同學,可能就會想,我能把自動化測試用例每個信息都寫在 Excel 表格中,然后,使用 jmeter 的 CSV 數據文件讀取功能,把它讀取出來執行,是不是就可以呢?

這種方法,就比前面的方法好了很多,用例還是用 Excel 來維護,只是使用 jmeter 來讀取,執行就可以了。整體的可維護性要好很多很多,工作量也要少很多。

但是,在真正動手去做的時候,我們又會發現,困難重重。

寫過自動化測試用例的同學,應該會有這樣的經歷,就是做接口測試時,我們通常會先對某個接口各種參數進行測試,這樣,接口地址相同,但是參數不一樣,校驗的接口也一樣。

在做完單個接口之后,我們還會做由多個接口構成的業務測試,這個時候,每個接口地址都不一樣,接口請求的方法也可能不一樣,最后的校驗點,也可能變化,這樣的自動化腳本,應該要怎么寫呢?

第一個對單接口,編寫自動化測試腳本,可能還好實現,因為接口相同,那么他的請求方法肯定相同,雖然,請求頭、請求體、校驗信息可能不同,但是,至少還有共同點。

而第二個,對業務編寫自動化測試腳本,那就很難了,因為幾乎所有的都可能不同,請求的協議、方法、請求頭、請求體,全都可能不同,而且請求頭和請求體還可能要有動態值,這個怎么做呢?

萬事開頭難,只怕去實踐。只要你想好了,真正去動手做了,這很多問題,就不那么難了。

有很多事情,我們可以加條件判斷,和循環控制等邏輯控制器,就可以實現的。

靠我一篇文章,就把它全部寫出來,這是不現實的,所以,今天,主要講一個,被很多同學問到,難倒了一大片好漢的問題。

90%測試猿都想學的Jmeter技能,你get嗎?

 

看到這個問題,你想到什么方法?

實操案例

 

如果你在 jmeter 中,每個接口寫一個取樣器,這個問題很好解決,直接使用參數引用就可以解決,但是,這個同學的做法是把測試用例寫在 CSV 文件中,然后使用 jmeter 去讀取 CSV 文件,執行測試用例,如何來實現動態參數呢?
 

肯定,有的同學已經想到了,使用變量引用,在 CSV 中,按照 jmeter 的寫法,寫引用變量。
 

好了,給大家一個看一個參考:

90%測試猿都想學的Jmeter技能,你get嗎?

 

這個 CSV 文件中,有兩個不同的接口,說明是做的業務場景自動化測試,第一個接口,是注冊,那么每次注冊的賬戶肯定不能相同,如果相同了,那么第二次肯定失敗,所以,就使用了隨機函數,讓注冊的賬戶自動生成。
第二個接口是登錄,當然,可以用固定賬戶登錄,但是,我們前面進行注冊,最好還是用前面注冊的賬戶來登錄,這樣更加真實,body 中使用了變量引用,顯然,這是用到了關聯。

我們用 jmeter 寫個腳本,來運行下,看能否成功。

90%測試猿都想學的Jmeter技能,你get嗎?

 

從腳本來運行情況來看,我們可以取到名稱,地址,和請求體,但是,因為請求體在 CSV 中寫了 jmeter 函數,結果讀取出來運行時,還是原樣運行,并沒有對請求體中的函數進行執行。
 

怎么辦呢?

很多人,就卡在這了,不知道怎么辦了。

其實,我們想一下,現在是內容讀取出來了,但是內容是原樣進行請求,沒有對內容中的函數進行執行,現在的問題,只需要解決 body 中的函數,能被運行就可以了。

我們再想下,在 jmeter 中,有哪些可以運行函數的方法?jexl3 函數可以,groovy 函數可以。

Exl3 函數

jexl3 函數,是要運行一段代碼,返回代碼結果,我們的 body 是 JSON 格式,顯然不能直接運行,要想運行,還得寫 JAVA 代碼調用 JSON 運行才可以,非常復雜。

groovy 函數,是要運行一個表達式,顯然,也不行。

那還有沒有其他的函數呢?eval 函數,這個函數,返回的是字符串表達式運行的結果。

90%測試猿都想學的Jmeter技能,你get嗎?

 

此時,我們修改下我們 jmeter 中取樣器的請求體。

90%測試猿都想學的Jmeter技能,你get嗎?

 


90%測試猿都想學的Jmeter技能,你get嗎?

 

看,運行結果,函數被執行了,注冊的賬號動態變化了。

接下來,我們就把第 2 條用例,使用了關聯,也寫出來。

90%測試猿都想學的Jmeter技能,你get嗎?

 

現在,我們已經實現,在 jmeter 中,使用一個取樣器執行 2 個不同接口,并且動態參數值的自動化運行了。

現在,我們再把斷言加上。

90%測試猿都想學的Jmeter技能,你get嗎?

 

注意:斷言中,如果有中文,就要特別注意文件編碼

現在,我們再加大難度,在 CSV 文件中寫個 GET 接口。
 

90%測試猿都想學的Jmeter技能,你get嗎?

 

我們發現,多個接口請求方法不一樣,jmeter 肯定不能用 1 個取樣器了, get 請求沒有 body 參數,但是,請求頭要添加一個 Token 參數。

是不是一下楞圈了,不知道怎么動了?看懂下面的圖,你就知道怎么做了。

90%測試猿都想學的Jmeter技能,你get嗎?

 

在取樣器的前面增加一個條件判斷,判斷是請求方法,根據請求方法,執行 POST 取樣器或 GET 取樣器

然后,把循環次數設置為 CSV 文件條數一致,其他的地方,應該就比較容易理解了。

 

END

看最后,多條測試用例,只用 2 個取樣器就搞定了。以后,改動 CSV 文件,可能都不用動 jmeter 腳本,增加測試用例,改下循環控制器數量就可以了。
 

當然,這還不是最完美的,里面還有諸多不足。給想用 jmeter 做接口自動化測試的同學開了個頭,更多的,還需要同學們自己動手,也歡迎同學們,在文章后面留言討論。
 

注意,這篇文章的技術,只適合在自動化中,不能用這個腳本進行性能測試。

分享到:
標簽:Jmeter
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定