最近在用json schema做接口測試,在調試腳本的過程中,經常遇到莫名其妙的報錯:A接口定義的josn schema字符串會被用來判斷B接口,驗證後發現是用戶自定義變量組件是全局變量(作用域爲線程組而非單http請求)
問題描述
用例結構如下:
-
使用的是用戶自定義變量組件(User Defined Variables)來存放對應變量jsonSchemaStr,然後每個用戶自定義變量組件放在對應的http請求組件下。
-
使用Bean Shell獲取並打印jsonSchemaStr信息:
String schemaData = vars.get("jsonSchemaStr");
log.info(">>>>>>>>>>>>>>>>>schemaData: " + schemaData);
- 運行一下後發現,接口A和B獲取到的變量均爲“B”:
解決方案
使用用戶參數組件(User Parameters)來存放jsonSchemaStr即能解決問題: