jMeter에서 몇 가지 성능 테스트가 있는데 하나의 HTTP 요청에서 BeanShell PostProcessor가 있습니다. 사용자의 이메일 주소를 CSV 파일의 맨 위에 작성해야합니다 (맨 위의 최신 항목). 이 파일은 매우 중요합니다.jMeter BeanShell 포스트 프로세서 동기화
import org.apache.commons.io.FilenameUtils;
import org.apache.jmeter.services.FileServer;
import java.text.*;
import java.io.*;
import java.util.*;
try {
String email = vars.get("emailPrefix") + "+" + vars.get("environment") + "-jm-" + vars.get("randomEmailNumber")+"@someEmail.com";
log.info(email);
String separator = System.getProperty("file.separator");
File mFile = new File(FileServer.getFileServer().getBaseDir() + separator + "investors_" + vars.get("environment") + ".csv");
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(mFile), "UTF8"));
String result = "";
String line = "";
while((line = br.readLine()) != null){
result = result + "\n" + line;
}
result = email + "," + result;
FileOutputStream fos = new FileOutputStream(mFile);
fos.write(result.getBytes());
fos.flush();
} catch(Exception e) {
System.out.println("Exception in 2 1 4 /getContactInformation::Email writer:" + e.toString());
throw e;
}
하지만 한 번에 즉, 100 스레드를 실행하려고하면, 언젠가는 모든 이메일이 기록 또는 CSV 파일 (내용이 실행의 중간에 삭제) 빈 종료된다하지 않도록, 발생합니다.
마지막으로이 CSV 파일을 읽으면 내 문제가 해결 될 수 있지만 jMeter는이를 수행 할 수 없습니다.
간단한 방법,이 포스트 프로세서를 동기화하는 방법 또는 이것을 다시 쓰는 방법이 있습니까?
메모리에 저장할 수 없으므로이 CSV 파일을 다른 테스트에서 응용 프로그램에 로그인하는 데 사용합니다. 크리티컬 섹션 컨트롤러를 시험해 보겠습니다. 그리고 아마 그것을 Groovy로 다시 작성할 수도 있습니다. – medy75