日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

用Jmeter进行接口测试及乱码问题

發布時間:2025/3/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用Jmeter进行接口测试及乱码问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

web接口測試工具:

? ? ?手工測試的話可以用postman ,自動化測試多是用到 Jmeter(開源)、soupUI(開源&商業版)。

? ? ?

下面將對前一篇Postman做接口測試中的接口用Jmeter來實現。

一、Jmeter 的使用步驟

打開Jmeter 安裝包,進入\bin 中,找到"jmeter.bat", 點擊打開即可。

在下圖打開的Jmeter 頁面中,右鍵“測試計劃” -> “添加” -> "Threads(Users)" -> “線程組”, 建立線程組。

右鍵“線程組” -> “添加” -> “Sample”?-> “HTTP請求”, 輸入“服務器名稱或IP”,對應的端口號,http默認端口號80,可以不寫。

以下請求為GET, 所有“方法”那選擇“GET”, 輸入對應的路徑,添加參數及值。

注意: “服務器名稱或IP”中不用輸入http://, 請求時會自動加入(eg, 輸入api.test.cn).

右鍵“線程組” -> “添加” -> “監聽器”?-> “察看結果數”, 添加“察看結果數”, 以察看運行后的結果,如果所示。

這是一個簡單的接口請求例子。

二、接口請求實例

1. “用戶定義的變量” 的應用

以獲取學生信息接口(stu_info) 為例,添加一個“用戶定義的變量”,設置變量"host" 以及值,這樣在獲取學生信息接口(stu_info)就可以通過"${host}"取得“服務器名稱或IP”的值。

?

登陸接口(login)接口也可以應用“用戶定義的變量”的方法,如上圖所示,在“用戶定義的變量”中添加"username", "password" 變量及對應的值, 應用到登陸接口(login)接口請求中即可。

?2. "HTTP Cookie 管理器"的應用

以金幣充值接口(gold_add)為例,建立一個HTTP請求改名“金幣充值”,選取請求方式POST, 輸入對應的host, path以及同請求一起發送的參數和值。

由于此接口有權限驗證,需要admin用戶才可以做操作,需要添加cookie, 因此需要添加"HTTP Cookie 管理器"以傳遞Cookie。

添加"HTTP Cookie 管理器" 方法如下圖所示, 右鍵“金幣充值” -> “添加”?->?“配置元件” -> "HTTP Cookie 管理器"?

設置Cookie 的名稱(即username 的值),值(即login Response 中的sign 值),域(已在“用戶定義的變量”中設置,只需輸入變量即可,格式為${host})

最后可以通過“察看結果數”的響應數據查看結果。

3. 建立接口間的關聯

以下以登陸接口(login)和金幣充值接口(gold_add)為例,在這兩個接口間建立關聯,讓金幣充值接口(gold_add)可以實時取得登陸接口(login)的"sign" 值,不必再“HTTP Cookie 管理器”中手動輸入最新的sign 值。

從“察看結果樹”可以看出,登陸接口(login)的Response 結構為Json格式, sign 在 login_info 里面一層。

3.1 應用"jp@gc - JSON Path Extractor" 來實現

右鍵“登陸” -> “后置處理器?->?"jp@gc - JSON Path Extractor"?

通過“察看結果數”得到Response 的結果后, 將“JSONPath Expression” 輸入"$.login_info.sign", 設置變量"sign2", 給金幣充值接口(gold_add)用

因此需要在“HTTP Cookie 管理器”中將${username}的值輸入${sign2},代替之前手動輸入的那一串碼。

3.2?右鍵“登陸” -> “后置處理器?->?"正則表達式提取器"?

輸入對應的值,?"jp@gc - JSON Path Extractor" 中類似,將“引用名稱”輸入"sign2",以保證和“HTTP Cookie 管理器”的一致。將正則表達式中的式用login 接口返回的?"sign": "cd2b43f1688e472e3a516b5a2c6831e8",??中的一串碼用(.*) 替換即可。

各參數的含義參考下表:

參數

釋義

引用名稱

在HTTP等請求中,引用此數據,需要用到的名稱

正則表達式

用于將需要的數據提取出來

模板

表示使用提取到的第幾個值:
$-1$:表示取所有值
$0$:表示隨機取值
$1$:表示取第1個
$2$:表示取第二個
以此類推:$n$:表示取第n個

匹配數字(0代表隨機)

0 代表隨機取值,1 代表全部取值

缺省值

如果正則表達式沒有搜找到值,則使用此缺省值

4. 設置斷言

以“增加學生”接口(add_stu)為例,增加響應斷言,以驗證添加的數據是否成功。如下圖所示設置

通過“察看結果數”可以看到“增加學生” 金幣結果為綠色,同時響應數據里的確有斷言中的設置的"1000"。

?

?5. “HTTP信息頭管理器”的使用

以下圖中的“獲取所有學生信息” 為例,右鍵“獲取所有學生信息” -> “添加”?->?“配置元件” -> "HTTP Cookie 管理器" , 輸入對應的名稱和值即可。

注意:??這里的值需要輸入完整的url, 包括http:// (eg, 輸入http://api.test.cn)

6. POST 文件的使用方法

與其他POST請求中添加key-value, json 數據不同的是,這個需要在HTTP 請求中點擊“Flies Upload” tab, 點擊“添加”, 然后通過“瀏覽”上傳本地的文件。

注意: 參數名稱必須為"file"。

7. "CSV Data Set Config" 和 “函數助手對話框”的使用

以增加學生接口(add_stu)為例,在本地創建一個文件,添加name 和sex的值,對腳本設置5個線程或者循環5次,以加入這5個用戶。?

右鍵“線程組” -> “添加” -> “配置元件”?->?"CSV Data Set Config",如果僅應用于“增加學生”接口的話,可以直接在“增加學生”接口下面創建"CSV Data Set Config"。

根據下圖添加對應的,"Variable Names" 輸入"name" 和"sex", 以逗號隔開,為避免插入的數據亂碼,將file encoding 設置為utf-8。

由于"CSV Data Set Config"中的變量名為name 和sex,因此在“增加學生”接口的"Body Data" 中將值分別替換為${name}, ${sex}。

由于“phone”的唯一性,每次插入一條學生信息時phone 都要求不一樣,所以對后面8位用隨機函數來實現。

8. 數據庫的應用

以下是JMeter 驅動數據庫列表:

數據庫

驅動

數據庫url

mysql

com.mysql.jdbc.Driver

jdbc:mysql://host:port/{dbname}?allowMultiQueries=true

oracle

org.postgresql.Driver

jdbc:postgresql:{dbname}

PostgreSQL

oracle.jdbc.driver.OracleDriver

jdbc:oracle:thin:user/pass@//host:port/service

MSSQL

com.microsoft.sqlserver.jdbc.SQLServerDriver

或者

net.sourceforge.jtds.jdbc.Driver

?

jdbc:sqlserver://IP:1433;databaseName=DBname

或者

jdbc:jtds:sqlserver://localhost:1433/"+"library"

?

以下以mysql 數據庫為例。

添加一個"JDBC Connection Configuration", 根據上表中對mysql的要求設置下圖的值。?

添加一個"JDBC Request", 由于在Query 中有insert 和select, 所以Query Type 需要選擇"Callable Statement", 如果是單個的select 或者insert,可以選取對應的Select Statement 和Update?Statement。

通過察看結果數看到"JDBC Request" 請求成功,響應數據里返回insert 和select 的結果。

登陸mysql 數據庫,查詢發現和Jmeter 中通過察看結果數看到的結果一致。

?

?**注意點:修改Jmeter 中的中文亂碼要將"\bin" 路徑下的"jmeter.properties" 文件中設置為 "sampleresult.default.encoding=utf-8",如下所示。

對于Jmeter 里中文顯示不出來的問題,可以打開"\bin" 路徑下的"jmeter.properties" 文件,如下圖所示,將這幾個JS開頭的注釋去掉。

對于以上兩個問題,修改后,需將Jmeter 重啟才能起效。

轉載于:https://www.cnblogs.com/loved-wangwei/p/9127592.html

總結

以上是生活随笔為你收集整理的用Jmeter进行接口测试及乱码问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。