JMter随记
線程組( Threads (Users))理解:一個虛擬用戶組,線程組內線程數量在運行過程中不會發生改變。 注意事項:線程間變量相互獨立。
一個測試計劃內可以包含多個線程組。 可定義內容: 取樣器錯誤后執行的操作:繼續執行,啟動下一個線程,停止線程,停止測試,立刻停止 線程屬性:線程數量,線程啟動間隔時間(0為立刻啟動所有線程),單線程循環次數,線程執行順序,是否使用調度器。 調度器配置:持續時間,啟動延遲,啟動時間,結束時間
HTTP信息頭管理器理解:定義信息頭,在其覆蓋下的所有元件都會使用該信息頭。例如定義在測試計劃中的信息頭,即該測試計劃所有請求的信息頭,可以添加cookie 和refer信息
##################參數化################:
1、從csv文件中讀取,右鍵線程組中添加一個“配置元件”->“CSV Data Set Config”,Virable Names中填寫變量名,如果csv文件中有多個變量,則用逗號隔開,win10 操作系統需要放在jmeter文件中的bin文件夾下,然后再在需要參數化的地方修改填寫的參數名即可:"${}"
2、選項-函數助手對話框,可以選擇隨機數,然后點擊數生成,然后修改腳本中的: 某個參數為對應的值即可
?
?
3、“配置元件”->“用戶定義的變量” ,理解:用戶自定義的變量,可用于存儲接口路徑等信息 ,可以參數化
?
?
##################斷言##################:
可以驗證獲取的信息是否正確
##################關聯##################
一個接口與另一個接口之間存在前后依賴關系時,在第一個接口增加后置處理器
第一種方法jp@gc - JSON Path Extractor需要提前安裝插件:
1、添加后置處理器選擇:jp@gc - JSON Path Extractor
學生金幣充值 中的sign 從登陸接口返回信息中獲得,因此需要在登陸接口中增加后置處理器,檢查返回json格式,然后層級結構去取。
例如登陸接口返回
json格式為:
{
?"error_code": 0,
?"login_info": {
? ?"userId": 1,
??"sign": "d58e3582afa99040e27b92b13c8f2280",
??"login_time": "20171207113501"
??}
??}
sign為login_info節點下的信息,因此需要先獲取login_info節點然后拿到sign
?"$"代表接口返回的全部,然后再返回的全部信息中先找到login_info,然后才能找到sign,即輸入的格式為:$.login_info.sign
?提前的信息必須為json格式
?
?第2種方法:正則表達式:"sign": "(.*)",
????? 登陸返回的json格式中:"sign": "978969b31afc182e4185b87ac73dfd23",? 對應的正則表達式為:"sign": "(.*)",
?在登陸下點擊右鍵,選擇添加-后置處理器-正則表達式提取器(插件無需安裝)
?
?
############################連接數據庫################################
點擊“測試計劃”先導入文件: mysql-connector-java-5.1.7-bin? ,
1、在線程組上,右鍵點擊添加>配置元件>JDBC Connection Configuration 2、配置連接信息,注意填寫Variable name,Database Url填寫jdbc:mysql://數據庫IP或hostname:端口號/數據庫 3、在線程組上,右鍵點擊添加創建>sample>JDBC request :填寫Variable name與第4步中Variable name一致。其中“Query type ”選擇Select Statement 只支持查詢,如果支持其他SQL語句使用選擇Callable Statement寫sql語句
jdbc:mysql://211.149.218.16:3306/jxz?allowMultiQueries=true&characterEncoding=UTF-8?????characterEncoding=UTF-8 解決亂碼問題
?select * from bt_stu where real_name ='薛寶釵' ;
update bt_stu? set? phone= '13144471273' where real_name ='薛寶釵' ;
insert into bt_stu (`real_name`,`sex`,`phone`,`type`,`class`) value ('薛寶釵','1','13456784666','1','巨蟹座');? 注意前邊是``? 不是''
select * from bt_stu where real_name ='薛寶釵' ;
?
轉載于:https://www.cnblogs.com/jyjcode/p/8040305.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
- 上一篇: JSON与对象之间的相互转换
- 下一篇: js 类数组arguments详解