前言:這里實(shí)現(xiàn)的功能是一個(gè)設(shè)計(jì)師提交案子給審核人審核(和設(shè)計(jì)師不是同一個(gè)人),所以請求接口的時(shí)候,HTTP信息頭管理器里的用戶認(rèn)證用戶需要用不一樣的賬號去扣,因此需要有兩個(gè)線程實(shí)現(xiàn)設(shè)計(jì)師提交審核,審核人進(jìn)行審核的過程。Jmeter線程之間是相互獨(dú)立街佑,各個(gè)線程組互不影響,如果線程A要用線程B的響應(yīng)結(jié)果作為請求參數(shù)捍靠,需要做以下處理沐旨。
提取參數(shù)需要用到后置處理器中的正則表達(dá)式提取器、BeanShell PostProcessor以及需要自行下載JSON Extractor的jar包插件榨婆。
下載地址:http://jmeter-plugins.org/downloads/file/JMeterPlugins-Extras-1.4.0.zip
1磁携、選擇具體線程右鍵,添加->后置處理器->正則表達(dá)式提取器良风。
2谊迄、選擇具體線程右鍵,添加->后置處理器->Bean Shell PostProcessor拖吼,將正則表達(dá)式提取器提取出來的內(nèi)容設(shè)置成Jmeter的內(nèi)置屬性鳞上。
“__setProperty”函數(shù)可以把某參數(shù)的值設(shè)置成jmeter本身的內(nèi)置屬性,而jmeter的內(nèi)置屬性是所有線程組都可以調(diào)用的吊档,是全局變量篙议。各個(gè)線程組調(diào)用時(shí),只需使用調(diào)用jmeter屬性的函數(shù)“__P”來調(diào)用相應(yīng)的屬性即可。
String project_id=bsh.args[0]; //獲取Bean Shell PostProcessor接收到的參數(shù)的第一個(gè)值
print(project_id);
${__setProperty(request_project_id,${project_id},)}; //調(diào)用函數(shù)__setProperty鬼贱,把Bean Shell PostProcessor中的project_id的值賦值給request_project_id移怯,并設(shè)置request_project_id為jmeter內(nèi)置屬性