2014-12-30 17 views
1

我有一個要測試的服務API,它返回一些不同國家的各種參數的默認值。國家代碼是服務的模板參數。即JMeter爲forEach控制器填充用戶定義的變量

http://${hostname}:${port}/country/${countryCode}

一個國家或地區代碼,我可以使用的是「ALL」(其他爲「IN」,「美國」,「英國」,「MX」 ...),這將返回所有受API支持的國家和響應也將包含國家代碼。因此,我可以填充我需要測試的所有國家/地區代碼。 Groovy的素文字

import groovy.json.JsonSlurper 
def slurper = new JsonSlurper() 
def result = slurper.parseText(prev.getResponseDataAsString()) 

assert prev.isResponseCodeOK() 

def countries = result.country 
assert countries instanceof List // Should get as [IN, US, UK, MX] for e.g. 
def numOfCountries = countries.size() 

我試圖使用變量「國家」,這是所有我需要測試在ForEachController服務的國家名單。爲此,我將需要格式中的UDV名稱

country_1 , country_2 , country_3 ... 

如何使用該名稱格式將列表元素保存到UDV中。問題是我不知道或者不能假設有多少國家被支持,所以UDV不能提前命名。

可以這樣做嗎?我是否正確地解決問題?歡迎任何不同的方法。

感謝

回答

0

我不熟悉的常規,但這裏有雲:

你有你在你的腳本國家 - 列表。如果你創建一個for循環(在你的groovy腳本中),你可以動態地創建你的變量名("country_" + [loop iterator])並將它插入你的vars.put()

所以:

for(int x=0; x < v.size(); x++) 
{ 
    String country_name = "country_" + x; 
    vars.put(country_name, v[x]); 
} 
相關問題