내 연락처 정보
우편메소피아@프로톤메일.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
정규식 사용자 매개변수(RegEx UserParameter)는 사용자가 정규식을 기반으로 한 응답 데이터에서 값을 추출하여 적용하고, 이 값을 후속 매개변수로 매개변수로 전달할 수 있도록 하는 전처리기(Pre-Processor)입니다.HTTP 요청 또는 필요한 다른 장소. 이 기능은 동적 콘텐츠, 세션 ID, 토큰 등을 처리하는 데 매우 유연하며 자동화된 테스트 스크립트를 구현하기 위한 핵심 구성 요소입니다.
SpringBoot를 사용하여 다음 인터페이스 코드를 작성합니다.
@PostMapping(value = "/login",produces = "application/json;charset=UTF-8")
public String authenticate(@RequestBody JSONObject request) {
String validUsername = "admin";
String validPassword = "password";
String response = "{"total":2,"data":[{"id":123,"name":"John Doe","email":"[email protected]","phone":"123-456-7890","address":{"street":"123 Main St","city":"New York","state":"NY","zip":"10001"},"interests":["sports","music","travel"]},{"id":456,"name":"Jane Smith","email":"[email protected]","phone":"987-654-3210","address":{"street":"456 Elm St","city":"Los Angeles","state":"CA","zip":"90001"},"interests":["reading","cooking","hiking"]}]}";
if (request.getString("username").equals(validUsername) && request.getString("password").equals(validPassword)) {
return response;
} else {
return response;
}
}
그런 다음 다음 스크립트를 작성합니다.
스레드 그룹: 기본값 유지
HTTP 요청 1: 프로토콜 http, 서버 이름 또는 IP127.0.0.1, 포트 번호 8091, 메소드 POST, 경로/로그인, 콘텐츠 인코딩 utf-8, 메시지 본문 데이터
{
"username": "admin",
"password": "password"
}
정규식 추출器:设置的参数为引用名称var,正则表达式"id"😦.?),"이름":"(.?)", "email"(샘플 코드의 내용에서 알 수 있음), id와 이름을 추출하는 것이 목적이며 일치하는 숫자는 -1로 설정되고 기본값은 NotFound입니다.
이 시점에서 먼저 HTTP 요청 2와 정규식 사용자 매개변수를 비활성화한 다음 스크립트를 실행하고 결과 트리의 디버그 샘플러를 볼 수 있습니다. 응답 데이터의 응답 본문에서 다음 결과를 볼 수 있습니다.
JMeter변수:
JMeterThread.last_sample_ok=거짓
JMeterThread.pack=org.apache.jmeter.threads.샘플패키지@4fa1cf1
시작.HMS=165132
시작.MS=1720515092259
시작.YMD=20240709
테스트 시작.MS=1720578466746
_jm__threadgroup__idx=0
_제이미터.U_T=스레드 그룹 1-1
var=찾을 수 없음
var_1=
변수_1_g=2
var_1_g0="id":123, "name": "John Doe", "email"
var_1_g1=123
var_1_g2=존 도
var_2=
변수_2_g=2
var_2_g0="id":456, "name": "제인 스미스", "이메일"
var_2_g1=456
var_2_g2=제인 스미스
변수_매치번호=2
위 내용에서 해당 정규식에 의해 추출된 var 변수의 값을 확인할 수 있습니다. 이때 정규식 사용자 매개변수 전처리기의 적용을 계속해서 검증하고 다른 구성요소 매개변수를 계속 설정할 수 있습니다.
HTTP 요청 2: 프로토콜 http, 서버 이름 또는 IP127.0.0.1, 포트 번호 8091, POST 메서드, 경로/로그인, 콘텐츠 인코딩 utf-8, 매개변수에 두 개의 매개변수를 추가하고 각각 이름 123, 456을 입력합니다. 지금은 사용하지 마세요. 구체적인 의미에 관계없이 먼저 시도해 보겠습니다.
정규식 사용자 매개변수: 정규식 참조 이름은 var로 설정되고, 여기서 매개변수 이름은 위 정규식의 매개변수 이름과 일치해야 하며, 매개변수 이름 regexp 그룹 번호는 1로 설정되고, 매개변수 값 regex 그룹 번호가 설정됩니다. 2, 왜 이렇게 설정하나요? 이렇게 이해하면 됩니다. HTTP 요청 2에서 123과 456을 설정한 것이 아닌가요? 매개변수 이름 regexp 그룹 번호를 1로 설정한 것은 매개변수를 입력할 때 var_1_g1과 var_2_g1의 매개변수를 취하는 것으로 이해될 수 있습니다. HTTP 요청 2에서 매개변수가 여기 매개변수와 일치하면 매개변수와 데이터 사이의 관계에 대응하여 매개변수 값 정규식 그룹 번호가 2로 설정될 수 있는 길을 열어줍니다. 정규식 그룹 번호가 2로 설정되어 얻은 것 매개변수는 var_1_g2 및 var_2_g2가 됩니다.
다음 단계는 결과를 확인하는 것입니다. 결과 트리에서 HTTP 요청 2의 요청 본문에 대한 게시 데이터 데이터를 확인하는 것입니다. 전반적으로 요청이 실패했지만 필요한 것만 확인하면 됩니다. 확인 결과는 중요하지 않습니다.
POST http://127.0.0.1:8091/login
포스트 데이터:
123=존+도&456=제인+스미스
[쿠키 없음]
위의 POST 데이터를 보면 해당 데이터가 요청에 반영된 것을 확인할 수 있습니다.
● 범위: 정규식 사용자 매개변수는 다음 HTTP 요청 또는 샘플러에만 적용됩니다. 전역적으로 적용해야 하는 경우 변수와 함께 "정규식 추출기"를 사용하는 것이 좋습니다.
● 디버깅: "결과 트리 보기" 리스너를 사용하여 정규식 일치를 확인하여 올바른 데이터 추출을 보장합니다.
정규식 사용자 매개변수는 동적 데이터 처리를 단순화하고 테스트 스크립트의 유연성과 자동화를 향상시키는 JMeter의 강력한 기능입니다. 이 기능을 올바르게 구성하고 활용하면 복잡한 시스템의 성능 테스트 요구 사항에 효과적으로 대처할 수 있습니다.