重點:引數化、csv讀取資料、函式
難點:正規表示式
手工編寫指令碼
介面引數
介面的傳遞引數可由:
1、介面文件、api文件、swagger工具整合
2、抓包工具
錄製指令碼
badboy工具錄製
1、介面文件、api文件、swagger
2、抓包工具
http**伺服器
1、**配置
使用jmeter做介面測試的時候建議加上斷言。做效能測試的時候斷言課加可不加
http資訊頭管理器:http請求頭的必帶引數
後置處理器:獲取到請求的值傳給變數
***:輸出各種報告結果
引數化
引數值以 $ 取值
使用者定義的變數:
同乙個執行緒組,使用者定義變數值是不會變的(解決方法,可以把隨機函式放到引數值裡面)
斷言
json提取器
$.欄位名
層級取值:$.欄位名[索引值].二級欄位名
正規表示式:通常都是由perl語言改進來的
說明:(1)引用名稱:下乙個請求要引用的引數名稱,如填寫title,則可用$引用它。
(2)正規表示式:
():括起來的部分就是要提取的。
.:匹配任何字串。
+:一次或多次。
?:不要太貪婪,在找到第乙個匹配項後停止。
(3)模板:用$$引用起來,$1$表示解析到的第1個值
(4)匹配數字:0代表隨機取值,1代表全部取值,通常情況下填0
(5)預設值:如果引數沒有取得到值,那預設給乙個值讓它取。
補充:(.)換行符以外的所有字元
* 多次
? 一次
.* 0次或多次
.+ 1次或多次
[0-9] 1數字
[0-9]+ 至少匹配一次
\d+ 匹配0到多個數字
\w+ 多個字母或數字都可以匹配
[a-z]+ 配置所有字母
正規表示式:主要就是:左邊界(.*?)右邊界,左右邊界就是為了能準確定位到想匹配的內容,(.*?) 是替換了想要提取的內容
裡面的'?'為非貪婪匹配,(非貪婪模式就是說在遇到第乙個右邊界後就停止匹配,這樣就可以精確拿到想要的內容)
模板:對應正規表示式提取器型別,樣式為:$n$,
若模板為:$0$,則為整個表示式匹配到的內容,就是包括小括號內跟小括號外的內容
若模板為:$1$,則對應正規表示式中的第乙個(.*?)所匹配的內容,
若模板為:$2$,則對應正規表示式中的第二個(.*?)所匹配的內容,
若模板為$1$$2$,則把2個(.*?)所匹配的內容拼接起來,
匹配數字:正規表示式匹配資料的最終結果可以看做乙個陣列,匹配數字即可看做是陣列的第幾個元素。
當為 0 時,隨機返回匹配的資料
當為 1 時,表示返回匹配結果陣列的第乙個元素。當為負數(-1,-2,-99都可以)時,表示返回全部元素,並且同時會返回乙個元素總數的變數如sessid,在引用時:通過$的方式來取第1個匹配的內容,$來取第2個匹配的內容。
預設值:匹配失敗時的預設值。通常用於後續的邏輯判斷
檔案讀取
在國內置議使用.txt的文字格式檔案,如果使用.csv格式檔案很有可能出現亂碼
在.txt文字中,以換行為區分遍歷資料,在csv資料檔案設定中變數要以英文,分割
常用函式 random、time、v函式
random 隨機數
time 時間函式
如果引數需要為當前日期,那公式為:$ 或者 $
$ :格式化生成時間格式 2018-06-01 11:08:23:635
$ :預設該公式精確到毫秒級別,13位數 1527822855323
$ :該公式精確到秒級別,10位數 1527822871
v 巢狀函式
已經定義了乙個變數a 要再在這個變數名後面加乙個變數(如遞增數字)n 不能直接用$},必須用巢狀函式__v :$)}指令碼調優
寫入檔案
如果要把乙個介面請求到的資料寫到乙個檔案中去,則在察看結果數中的所有資料寫入乙個檔案,瀏覽到路徑即可
外掛程式安裝場景設計
階梯場景(stepping thread group)
next add *** threads *** seconds *** using ramp-up ***
next add *** threads *** seconds *** using ramp-up ***
波浪式場景(uitimate thread group)
serveragent 服務監控軟體(安裝在伺服器中啟動)
啟動服務監控,用tcpd
預設啟動
startagent.sh 預設埠4444
自定義埠啟動
startagent.sh --udp-port 0 --tcp-port 自定義埠號
--udp-port 0 關閉udp服務
三 指令碼編寫與執行
編寫指令碼的思路 明確指令碼實現的功能 哪些資料是變化的,把變化的資料用變數來表示 使用哪種流程控制 使用哪些系統命令 1 編寫指令碼 使用vim文字編輯器 每行一條linux命令,按執行順序依次編寫 2 賦予可執行許可權 若直接執行指令碼檔案,必須具有可執行屬性 3 執行指令碼檔案 指令碼檔案路徑...
Mysql資料備份三 指令碼備份mysqldump
使用mysqldump進行備份,這個是最保險最安全的資料備份方法.雖然使用它比mysqlhotcopy要慢些,但其匯出的是sql語句文字檔案,不存在平台的相容性問題.也可用於備份除myisam型別以外的資料表.下面給出shell指令碼,大家可以根據自己的實際需要對其進行修改,以完成自己需要的功能.s...
jmeter4 0指令碼錄製
jmeter錄製指令碼有兩種方式。1.通過第三方工具錄製比如 badboy,然後轉化為jmeter可用的指令碼 2.使用jmeter本身自帶的錄製指令碼功能。本次使用jmeter本身自帶的錄製指令碼功能 1.新建測試計畫 2.新增執行緒組 3.新增http cookie manager 4.新增 h...