2017-12-02 5 views
0

제가 처리 할 문제가 있습니다. 밤마다 모두 실행해야하는 100 가지 테스트 프레임 워크를 만들었습니다. 모든 테스트에는 문자열 목록을 만드는 동일한 단계가 있습니다. 각 테스트마다 새 문자열 이름을 지정하고 싶습니다. (필자는 수동으로 변경하지 않기 때문에 더 많은 시간을 복제 할 것입니다.) 임의의 이름을 생성하는 함수를 작성하여이를 목록 이름으로 사용하려고합니다. 선언 할 때 예외가 발생했습니다. 임의로 생성 된 임의의 이름을 가진 문자열입니다. 이 경우에는 이 random = 100545GKFN이었습니다. 100545GKFN이라는 이름으로 목록을 만들고 싶습니다. 가능합니까? Jmeter에서 각 스레드 그룹에서 동일한 목록 이름을 만들면 어떻게됩니까? Jmeter는 같은 이름의 여러 목록을 처리 할 수 ​​있습니까 (각각 다른 스레드 그룹에 있습니까)? 예를 들어 이름이 my_list 인 1000000 목록? 각각 다른 스레드 그룹에 있고 각 테스트에 따라 각 문자열에 추가 할 수 있습니까?jmeter - groovy에 변수 이름을 가진 문자열 목록을 만듭니다.

List<String> vars.get("random") = new ArrayList<String>(); 

답변

0

내가 완전히 ... 그럼에도 불구하고,이 같은 일부 다른 데이터 구조를 사용하여 질문을 이해하지 않았기 때문일 수 있습니다 :

Map<String, List<String>> domain = new HashMap<>(); 
    String name; 
    for (int i = 0; i < MAX_LISTS; i++) { 
     name = getRandomName(); //you provided this method 
     domain.put(name, new ArrayList<>()); 
    } 
0

선언 문은 그 바르에서 이상한 것 같다 .get ("random")는 null이거나 인스턴스화 된 객체를 리턴합니다. 반환 값을 List <>으로 선언하는 것이 문제입니다. 당신은 내가 해결

((List<String>) vars.get("random")).add(newRandomValue); 
0

처럼 문을 시도 할 수,

List<String> myRandomList = new ArrayList<String>(); 
// ... 
myRandomList = someFunctionThatReturnsARandomList(); 
// ... 
vars.set("random") = myRandomList; // Assuming vars is a key-value map type 

을 시도하거나 직접 액세스하려는 경우 목록

List<String> myRandomList = (List<String>) vars.get("random"); 

로 vars.get() 반환 값을 캐스팅 임의의 ID를 생성하고이를 ran_id라는 변수에 넣습니다. 목록을 만들 때마다이 명령을 사용하십시오.

props.put("list_${ran_id}", my_list);