jmeter接口測試教程


一、jmeter接口請求方法介紹

http的組成部分:

請求url、請求方法get/post常用的、請求頭header、請求body、響應response;

http和https的本質區別:https增加了ssl,加密處理,沒有證書是不能通過抓包來獲取數據的;

1.1get請求

get請求的傳參格式

window打開cmd輸入命令:jmeter打開

 添加線程組》request請求》get請求方式,參數要放在parameters中,不能放body里,為的是在請求接口時直接拼在路徑后面

1.2 post請求

需要把參數放到body里面,不能在請求路徑里面暴露出來,為了安全性,如果參數中有中文那么content encoding編碼格式必須要:utf-8,否則請求后會亂碼

二、jmeter變量

2.1用戶定義的變量

test-plan測試計划頁面,用戶定義的變量位置如下圖

后續需要用到這個變量值時,可以直接用${url}直接調用了

2.2用戶參數

添加》前置處理器》User Parameters

 

 

2.3函數生成變量

 

2.4BeanShell變量

菜單》前置處理器》BeanShell

vars:

使用方法:
vars.get(String key),從jmeter中獲得變量值
vars.put(String key, String value),數據存到jmeter變量中

在第一個請求中添加腳本處理器,腳本如下,vars.put是固定語法輸出待提取的腳本的,id是輸出的字段,需要調用該字段則用${id},字段和value之間需要用,分割,且value值需要雙引號;其他請求(第二個接口)也可以直接調用該處理結果;

 

線程組》取樣器》添加debug sampler,查看結果樹,可以查看變量的值

 

2.5數據文件變量:

 

 是否忽略首行,選擇了false表時不忽略,如果在文件中首行是參數字段,那么需要忽略:true,首行直接取value

 

2.6配置元件用戶定義的變量

 

2.7jmeter正則表達式提取器

菜單位置:后置處理器

引用名稱:其他地方引用的變量名稱,可自定義;

正則表達式:()括號表示提取字符串中的部分值,前后是提取的邊界內容;(.+?)表示"id":后的是需要提取的信息,括號表示需要提取的信息,點.是任意字符,+是表示數據中滿足條件后會再次查后面的字符是否滿足條件5和1,滿足則一起返回51,直到不滿足條件的數據終止,再往后面繼續查,中斷后再滿足的條件的數據算第二個數組,?表示循環查詢數據只要滿足.+條件則返回數據,不滿足則返回空,即0次,那么51會展示5和1,兩個數組;

 

 runoo+b,可以匹配 runoob、runooob、runoooooob 等,+ 號代表前面的字符必須至少出現一次(1次或多次)。

runoo*b,可以匹配 runob、runoob、runoooooob 等,* 號代表前面的字符可以不出現,也可以出現一次或者多次(0次、或1次、或多次)。

colou?r 可以匹配 color 或者 colour,? 問號代表前面的字符最多只可以出現一次(0次、或1次),是最小匹配;

模板:正則表達式的提取模式。如果正則表達式有多個提取結果,則結果是數組形式,模板$1$,$2$等等,表示把解析到的第幾個值賦給變量;從1開始匹配,以此類推。若只有一個結果,則只能是$1$;

匹配數字:正則表達式匹配數據的所有結果可以看做一個數組,匹配數字即可看做是數組的第幾個元素。-1表示全部,0隨機,1第一個,2第二個,以此類推。若只要獲取到匹配的第一個值,則填寫1

我們在第一個請求中添加正則提取器、然后再新建一個請求,入參的value是第一個請求正則中的變量名稱{id}

 

 沒加?則提取到冒號:后全部的字段

圖1待提取的響應

 表達式

 提取結果

 加了問好?提取到括號后的字符截至

 

 表達式擴展:

\d:數字

\d{8}:匹配到的數字次數,達到條件則返回

 

 

 

 

[131159110]\d{8}表示獲取字符串里面開頭數字符合[131159110]限定的,即1、3、5、9、0,然后8個連續的數字,則就匹配成功

 

 

(131|159|110)\d{8}表示獲取字符串開頭為131|159|110的

 

 

 

三、jmeter配置元件請求頭默認值(添加多個接口共用的部分)

 

四、jmeter cookie管理

線程組》配置元件》cookie管理器

添加cookie是為了將想要存儲的數據存儲在cookie里,設置cookie方式如下

 

五、jmeter 授權管理

如果請求的接口加了用戶信息的認證,那么沒有認證信息的傳參,則不會有響應數據,如何設置認證信息,如下

線程組》配置元件》HTTP Authorization Manager

 在請求頭中會帶經過MD5編碼后的信息,可以用base64解碼查看

六、jmeter斷言

線程組添加響應斷言:設置中用響應文本,包含字段,斷言信息配置response中的字段,包含該字段則響應成功,否則響應失敗,在查看結果樹中可以查看原因,通過則展示請求通過的響應數據;

如下是斷言失敗的情況

七、jmeter接口測試數據分離

多個接口請求,請求地址不同,請求參數不同,用if控制器,如果是get請求則如下:

循環控制器(Loop Controller): 作用:指定其子節點運行的次數;

把需要用到的路徑參數、傳參等信息放到文件中

因為首行定義了名字,所以我們需要忽略首行

if控制器判斷如果方法是get方法,interpret需要勾選,為了性能更好,勾選后必須用函數助手生成公式

__jexl3和__groovy方法

${__groovy("${methods}"=="Get",)}

如果不勾選,則輸入公式:"${methods}"=="Get"

 斷言是響應數據中有true則響應成功

 

八、jmeter HTML測試報告dashboard report

生成步驟:

打開cmd 進入jmeter 目錄bin目錄

執行命令:

-n 是無GUI模式

-t 是腳本路徑

-l(小L)是存放測試數據的文件,文件名必須不存在,會自創,查看結果樹,聚合報告等都在里面

-e是生成html報告

-o是存放html報告的地方,也需要文件名不存在,會自創

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM