http接口簡單測試
端口地址:http://xxx.xxx.xxx.xxx:9002/school/tree
步驟 | 操作 | 參數 |
1.添加線程組 | 項目下>編輯>添加>線程>線程組 | 填入名稱,線程數等 |
2.添加用戶定義自變量 | 項目下>編輯>添加>配置文件>用戶定義自變量 |
名稱:ip,值:xxx.xxx.xxx.xxx 名稱:port,值:9002 |
3.添加http請求 | 線程組下>編輯>添加>取樣器>HTTP請求 |
1.使用用戶自定義變量:ip:${ip},端口號:${port}, 2.路徑:/school/tree, 3.添加傳入的參數/消息體數據(可選)消息體格式是json,例如 {"schoolId": 13, |
4.添加請求監聽器 | 請求下>編輯>添加>監聽器>查看結果樹/彙總圖/beanshell監聽器 | |
5.添加http頭信息頭處理器 | 編輯>配置元件>http信息頭處理器 |
名稱:Content-type,charset,Content-length 值:application/json,utf-8,length |
6.添加BeanShell 預處理程序 | 編輯>前置處理器>Beanshell預處理器 | prev.setDataEncoding("utf-8"); |
處理cookie和session
方法一:直接在線程組添加http請求cookie管理器
方法二:請求頭中cookie信息:set-cookie{xxxxxxxx},path=/futureloan
步驟 | 操作 | 參數 | |
獲取cookie部分 | 1.在獲取cookie的請求下添加正則表達式處理器 | 編輯>添加>後置處理器>正則表達式處理器 |
要檢查的響應字段選擇:請求頭 引用名稱:cookie 正則表達式:set-cookie{.*},path=/futureloan 模板:$1$ |
2.線程組下添加Debug Sampler獲取正則表達式結果 |
編輯>添加>取樣器>調試取樣器 編輯>Sampler>Debug Sampler |
不用填 | |
4.線程組下添加察看結果樹獲取正則表達式結果 | 編輯>添加>監聽器>察看結果樹 | 不用填 | |
使用cookie | 3.在需要發送cookie的http請求下添加cookie管理器 | 添加>配置元件>http cookie管理器 |
名稱: 值:${cookie} 域:xxx.xxx.xxx.xxx 路徑:/futureloan |
參數化
1.使用用戶定義變量
項目下>編輯>添加>配置文件>用戶定義自變量
2.使用函數
函數類型 | 參數解釋 | 例子 |
_Random string 隨機字符串 |
Random string length:長度 Chars to use for random string generation:用於隨機字符串生成的字符
|
Random string length:8 Chars to use for random string generation:0123456789 存儲結果的變量名(可選):phone8 生成:${__RandomString(8,0123456789,phone8)} 使用:phone:156${__RandomString(8,0123456789,phone8)} |
_time 生成隨機時間 |
||
_UUID | 取唯一id | |
_char | 將一組數字轉化爲unicode | |
3.添加csv配置文件
步驟 | 操作 | 參數 |
1.新建csv文件,每一列是一個變量 |
15666667574 jennnifer 18 15688887574 young 19 15699997574 tony 20 |
phone,name,age |
1.在線程組添加配置文件 | 編輯>添加>配置元件>csv數據文件設置 | 變量名稱:phone,name,age |
2.在http請求的參數中使用 |
http請求-參數-添加 |
參數名:id 值:${phone} 參數名:name 值:${name} |
錄製腳本
jemter作爲代理服務器
步驟 | 操作 | 參數 |
接口測試
接口自動化
數據加密和批量創建測試數據beanshell
1.操作數據庫
數據庫url和端口127.0.0.1:3306
數據庫名:zhaopin
表名:admin
編碼:utf-8
步驟 | 操作 | 參數 |
1.下載一個mysql-connect-jar | 下載到jmeter的lib/ext目錄下 | 無 |
2.添加JDBC連接 | 線程組下>編輯>添加>配置元件>JDBC Connection Configuration |
Variable Name:變量名,隨便設 Database Url:jdbc:mysql://127.0.0.1:3306/zhaopin?useUnicode=true&characterEncoding=utf8 JDBC Driver Class:com.mysql.jdbc.Driver Username:數據庫用戶名 Passwd:數據庫密碼 |
3.添加JDBC請求 | 線程組下>編輯>添加>取樣器(Sampler)>JDBC Request |
Query type:Update statement(修改操作選這個) Query(sql語句): insert into admin(id,name,password,school_id)values('hnlg001','華南理工大學','123456',12) |
4.添加察看結果樹 | 線程組下>編輯>添加>監聽器>察看結果樹 | 不需要 |
2.數據加密
在線程組添加beanshell取樣器,將加密代碼copy進去
線程組下>編輯>添加>取樣器>beanshell取樣器
將輸出的pwd變量轉爲jmeter的變量:vars.put("jemeterData",pwd),
sql語句中使用jmeter變量:insert into admin(id,name,password,school_id)values('hnlg001','華南理工大學',${jmeterData},12)
文件下載
獲取token的url:http://127.0.0.1:9004/auth/admin/login
測試url:http://127.0.0.1:9004/dev-api/studentJos/excel/1/${token}
參數:token
步驟 | 操作 | 參數 |
1.登錄的get請求獲取token |
1.創建http請求 |
消息體數據: {"username": "hnlggz001", |
2.添加察看結果樹,看到token在響應數據response body裏面 |
{"code":10000,"message":null,"success":true, "data":"xxxxx"} |
|
3.添加正則表達式提取器 |
要檢查的響應字段:Body(unescaped) 名稱:token 正則表達式:"data":"(.*)" |
|
2.文件下載的http請求 | 1.創建http請求 |
路徑:dev-api/studentJos/excel/1/${token} |
2.創建http頭信息管理器 |
名稱:token 值:${token} |
|
3.察看結果樹 | 無 |
源數據:{"status":"ok",data:{"fileName":"xx.png","fileUrl":"xxx.png?token=xxxxx"},fileVersion}
正則表達式選取token:"fileUrl":"(.*?)"
獲取響應結果
導出測試數據
將jmeter的bin目錄添加到系統變量path去,解決jmeter不是內部或外部指令的問題
jmeter -n -t D:\testing\基於web的高校就業信息系統\登錄獲取token.jmx -l report.jtl -e -o D:\testing\基於web的高校就業信息系統