前置處理器
前置處理器中,我覺得BeanShell 預處理程序,用戶參數,JDBC 預處理程序用的比較多
JDBC 預處理程序:跟JDBC request類似,不做過多介紹
BeanShell 預處理程序:准備在進階篇中介紹,基礎篇不做過多介紹,會用到java
用戶參數:我在工作中用的很少,還是喜歡用戶自定義變量
后置處理器
主要元器件:正則表達式提取器,JSON提取器,邊界提取器,XPath提取器,BeanShell 后置處理程序
正則表達式提取器
APPly to
Main sample and sub-samples:作用於主節點的取樣器及對應子節點的取樣器
Main sample only:僅作用於主節點的取樣器
Sub-samples only:僅作用於子節點的取樣器
JMeter Variable:作用於jmeter變量(輸入框內可輸入jmeter的變量名稱),從指定變量值中提取需要的值。
要檢查的響應字段
主體:響應報文的主體,最常用
Body(unescaped):主體,是替換了所有的html轉義符的響應主體內容,注意html轉義符處理時不考慮上下文,因此可能有不正確的轉換,不太建議使用
Body as a Document:從不同類型的文件中提取文本,注意這個選項比較影響性能
信息頭:響應信息頭(如果你使用的是中文版的Jmeter,會看到這一項是信息頭,這是中文翻譯問題,應以英文為准)
Request Headers:請求信息頭
URL:請求url
響應代碼:比如200、404等
響應信息:響應信息
參數設置說明
引用名稱:參數名稱,可以被調用
正則表達式:使用正則表達式解析響應結果,正則的基本使用方法可參考正則表達式的官方說明
模板:如果正則表達式有多個提取結果,則結果是數組形式,模板$1$,$2$等等,表示把解析到的第幾個值賦給變量;從1開始匹配,以此類推。若只有一個結果,則只能是$1$;
匹配數字(0代表隨機):正則表達式匹配數據的結果可以看做一個數組,表示如何取值:0代表隨機取值,正數n則表示取第n個值(比如1代表取第一個值),負數則表示提取所有符合條件的值。
缺省值:默認值,取不到的情況,參數名稱賦的值
舉例
view=1&token=721652512141&name=ggui
要取token值
正則表達式:token=(\d+)&name=ggui
特別說明
".?"在正則中非常好用,能解決大部分匹配
上面表達式可改寫成token=(.?)&name=ggui
JSON提取器
用於提取請求返回結果中的某個值或者某一組值,標准寫法為$.key,其中key為返回結果中的一個鍵,如果是多層則繼續用.key即可,如果遇到key的value值為一個List,則使用.key[n],其中n為list中元素的索引
參數設置說明
Names of created variables:參數名稱,可以被調用
JSON Path expressions:表達式
Match No.(0 for Random):匹配編號,-1匹配所屬有,0隨機,其他則從1開始
Default Values:默認值,取不到的情況,參數名稱賦的值
舉例
{ "data":[ { "name":"張三", "age":18 }, { "name":"李四", "age":28 } ] }
要取第一個人的姓名
JSON Path expressions:$.data[0].name
要取年齡>18的姓名
JSON Path expressions:$.data[?(@.age>18)].name
邊界提取器
參數設置說明
引用名稱:參數名稱,可以被調用
左邊界:要提取字符的左邊
有邊界:要提取字符的右邊
匹配數字(0代表隨機):匹配編號,-1匹配所屬有,0隨機,其他則從1開始
缺省值:默認值,取不到的情況,參數名稱賦的值
舉例
view=1&token=721652512141&name=ggui
左邊界:token=
右邊界:&name
可得到結果721652512141
PS:注意,左右邊界盡可能唯一,能更精確匹配到想提取的字符
XPath提取器
XML Parsing Options(要解析的XML參數)
Use Tidy(tolerant parser):當需要處理的頁面是HTML格式時,必須選中該選項;如果是XML或XHTML格式(例如RSS返回),則取消選中
Quiet:表示只顯示需要的HTML頁面
報告異常:表示顯示響應報錯
顯示警告:表示顯示警告
Use Namespaces:如果啟用該選項,后續的XML解析器將使用命名空間來分辨
Validate XML:根據頁面元素模式進行檢查解析
Ignore Whitespace:忽略空白內容
Fetch external DTDs:如果選中該項,外部將使用DTD規則來獲取頁面內容
Return entire XPath fragment of text content:返回文本內容的整個XPath片段
參數設置說明
引用名稱:參數名稱,可以被調用
XPath Query:用於提取值的XPath表達式
匹配數字:匹配編號,-1匹配所屬有,0隨機,其他則從1開始
缺省值:默認值,取不到的情況,參數名稱賦的值
舉例
要獲取【百度一下】按鈕上的文字
XPath Query://input[@id="su"]/@value
BeanShell 后置處理程序
介於本階段是基礎篇,Beanshell相關的放在進階篇介紹,這里不做過多講解
總結
本章節講述前置和后置處理器,前置處理器的元器件和Beanshell后置處理器會在進階篇介紹,后置處理器介紹了最常用的正則表達式提取器,JSON提取器,邊界提取器,XPath提取器。