jmeter巧用ForEach控制器
前段時間做接口自動化的時候遇到很多查詢接口,接口出參會隨著入?yún)ype的變化,得到不同type下的數(shù)據(jù)。
如上圖,是接口query_financial_stock的說明。測試時候?qū)θ雲(yún)inancial_type分別傳入值100301、100302、100303、100304、100305、100306進行驗證。
上述入?yún)⒌玫降慕Y(jié)果,對應(yīng)的sql如下:
SELECT
jfp.stock_code,
jfp.stock_name,
jfp.financial_ranking,
jfp.industry_code,
jfp.innercode
FROM
jy_financial_performance jfp
WHERE
jfp.financial_type = “financialtype”ANDjfp.industryname=“{industry_name}”
ORDER BY
jfp.financial_ranking ASC
LIMIT 5
不借助jmeter,修改where條件語句,在數(shù)據(jù)庫執(zhí)行也能很快驗證完畢。但當(dāng)類似接口有七八個的時候,每個接口類似的type有6~10個不等的時候,你有沒有想過“偷懶”的方法。
借助jemeter的ForEach控制器,三個步驟可以快速實現(xiàn)。
1、 定義financial_type值
在jmeter“用戶定義的變量”中定義financial_type各個值
financial_type_1 = 100301
financial_type_2 = 100302
financial_type_3 = 100303
financial_type_4 = 100304
financial_type_5 = 100305
financial_type_6 = 100306
如下圖:
2、 添加ForEach控制器
如上圖,輸入前綴是financial_type, 左下角勾選“Add _ before number”,與輸入前綴拼接后為“financial_type_”。start index for loop為0,end index for loop為6,是“左開右閉”,即(0,6]。ForEach控制器會依次取financial_type_1、financial_type_2、financial_type_3、financial_type_4、financial_type_5、financial_type_6 的值,并賦值給 financial_type。
3、 請求接口
接口請求時,將設(shè)置入?yún)inancial_type=${financial_type},每次ForEach控制器更新financial_type字段值時,接口請求入?yún)⒍紩鄳?yīng)變化。如下圖:
此外,還需添加一個后置控制器JDBC PostProcessor(前置控制器PreProcessor也可以),這個是為更準(zhǔn)確的斷言做數(shù)據(jù)準(zhǔn)備。將需要做斷言進行校驗的字段(stock_code,stock_name,financial_ranking,industry_code, innercode),sql選出并輸出(stock_code,stock_name,financial_ranking,industry_code,id)。如下圖:
4、 斷言
設(shè)置合適的斷言,會提高很大接口自動化的效率。如上面這個接口,主要需要關(guān)注輸出參數(shù)stock_code,stock_name,financial_ranking,industry_code,id的數(shù)據(jù)。如下圖,對這些數(shù)據(jù)做斷言。
響應(yīng)斷言的“模式匹配規(guī)則”建議選擇“包括”,對于有一些無關(guān)緊要的輸出字段可以用正則匹配的方法。“包括”只要斷言數(shù)據(jù)包含在響應(yīng)數(shù)據(jù)里,同時還可以用正則進行匹配。“匹配”是需與響應(yīng)數(shù)據(jù)完全一致,支持正則匹配,但需全部匹配。“Equals”是完全相同。“Substring”是只要斷言數(shù)據(jù)在響應(yīng)數(shù)據(jù)里即可,是包含關(guān)系,不支持正則。“否”是沒有斷言的數(shù)據(jù)。
總結(jié)
以上是生活随笔為你收集整理的jmeter巧用ForEach控制器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Koordinator 1.0 正式发布
- 下一篇: TFT型液晶显示模块能够依据不同的需求分