一個完整的jmeter APP登錄接口測試實例


 

本人主要做一個知識的歸類與記錄,如是轉載類文章,居首都會備注原鏈接,尊重原創者,謝謝!
 此文轉載原鏈接:https://www.cnblogs.com/kaerxifa/p/8029106.html

 

最終效果:

知識點:

通過HTTP信息頭管理器, 正則表達式提取器 提取登錄要用的token,memcard,Debug SamplerCSV Data set  config參數化登錄,循環控制器,察看結果樹

具體實現思路:

  1.首先調通登錄接口(登錄請求,登錄應答)

  本例中,登錄請求使用post請求向服務器發送用戶名及密碼,使用get請求獲得登錄成功后的信息

  2.因為token的值是動態的,所以要get到登錄后頁面的信息,需要通過正則表達式提取器 獲得每次登錄請求返回的token值。把這個值寫到get請求的信息頭中

  (即LoadRunner中的關聯操作)

  3.添加Debug Sampler,查看每次執行腳本,腳本中包含的所有變量,值是否是正確的。這些變量可以是:

         a.用戶自定義的變量

    b.接口關聯時用到的變量(通過后置處理器--JSON提取器 呀 正則表達式提取)目前我更喜歡使用JSON提取器    

  4.本例中 需要對登錄請求作參數化,把用戶名密碼寫入一個文件,通過配置CSV Data set  config,來不斷讀取文件中的值

  5.本例中一共准備了4組登錄數據,添加一個循環控制器,把CSV Data set  config 以及要參數化的請求放到這個邏輯控制器下

  (它的作用域是對其子節點的  sampler有效,作用是控制采樣器的執行順序)

  6.添加斷言,也就是驗證登錄接口 服務器下發數據是否符合預期結果。斷言方式常用的有2種:

    a.響應斷言

    b.JSON斷言

  目前感覺JSON斷言更實用一點,因為可以驗證不同字段的值是否正確。   

  技巧:接口調不通時,在察看結果樹時,除了查看響應數據,還要注意觀察請求的信息是否正確(發送請時給的參數是否正確)

具體實現:

添加一個線程組

用戶定義的變量

可以把請求中一些重復出現的內容寫在這,后面在寫請求的時候,直接通過${host}的方式調用即可。我這里是把請求的地址寫在了這里

 

 

 

添加HTTP信息頭管理器

 把公共的請求的headers信息填寫在這里

 

 注意發送POST請求時,如果不在請求頭中填寫Content-Type這個參數,響應結果會提示參數問題 ,格式不正確之類的

 

添加一對請求,分別是登錄請求、登錄成功后的請求

請求接口的內容可以找開發要,也可以通過抓包的方式獲得

 登錄請求:

登錄成功后的頁面:

獲得這個頁面的返回結果,需要在這個請求的請求頭中添加 token 和 memcard的值

 

 

 正則表達式提取動態數據

正則表達式提取token和memcard(要先了解正則表達式的寫法),小括號中是要提取的內容

 

提取token的方法一樣

添加Debug Simpler

默認設置即可

 

 

 

在提取memcard時卡住了,一開始 模板 對應的值寫的 $1$,執行腳本后,登錄成功后請求返回的結果是 用戶不存在,查了一些資料,

又觀察 察看結果樹中的請求信息,發現memcard的值是6

 

 Debug Simpler中顯示正則表達式提取到的memcard的值一共有4個,其中有正確的值,試着把正則表達式提取器 模板的值改變$0$后,再執行腳本就沒問題了

 

 添加斷言:

對登錄成功后的請求添加斷言(可加可不加,通過察看結果樹的響應數據,也可以確定是否請求成功)

code的值為0,表示請求成功

 

 

 斷言結果:

下面這樣就表示,成功,如果斷言失敗,會給出錯誤提示信息

 

 

通過CSV Data Set Config 參數化用戶名 密碼:

Filename是參數化文件存放的位置,可以是絕對路徑,也可以是相對路徑,我這里使用相對路徑

在要參數化的取樣器(請求)中通過${username},${password}的方式調用 

 

 

做完這一步之后直接運行腳本遇到的問題:

我只想給登錄這個請求參數化,一共准備了4個用戶名,密碼.可是執行腳本只能讀取 參數化文件准備的第1行數據 ,上面的腳本只有1次請求(用到參數化內容的),所以只會讀取第1行數據,循環的話,會往下讀。

所以有了下面的操作

添加循環控制器:

把要參數化的請求和相關的配置放到這個邏輯控制器下面 

要實現本例的效果,其實可以不添加這個循環控制器,直接把線程組的循環次數改為4也可以,效果一樣,但是意義完不同。

直接改線程的循環次數,相當於是4個線程同時進行登錄操作,等於做了並發的操作。

 

 

最后的察看結果樹報告顯示如下:

請求成功,且返回的內容也是正確的。


免責聲明!

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



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