워크플로
워크플로는 캡처된 트래픽 처리, 능동 단계 실행, 데이터 변환을 위한 재사용 가능한 자동화 파이프라인입니다. 별도의 스크립트를 작성할 필요가 없습니다.
워크플로 유형
| 유형 | 실행 계기 | 일반적인 용도 |
|---|---|---|
| 패시브 | 새로 캡처된 트래픽 | 주목할 패턴 표시, 요청 태그 지정, 발견 사항 자동 생성. |
| 액티브 | 수동 실행 | 추가 요청 전송, 작업 연결, 다단계 테스트 실행. |
| 변환 | 테스트 입력, 변환 작업 또는 찾아 바꾸기 | JavaScript 서식 정리나 JSON 정규화 등 텍스트 또는 바이트 변환. |
패시브 워크플로는 백그라운드에서 계속 실행됩니다. 액티브 워크플로는 선택한 요청 집합에 대해 필요할 때 실행됩니다.
워크플로 캔버스
워크플로를 열고 워크플로를 선택하여 캔버스를 엽니다.
- 노드는 중앙 패널에 표시됩니다. 각 노드에는 타입이 지정된 입력 및 출력 포트가 있습니다.
- 출력 포트에서 입력 포트로 클릭하여 끌면 연결할 수 있습니다.
- 노드를 클릭하면 오른쪽에 설정 패널이 열립니다.
- 상단 도구 모음에는 실행, 활성화/비활성화, 가져오기/내보내기 컨트롤이 있습니다.
노드 유형
| 노드 | 설명 |
|---|---|
| 시작 / 종료 | 패시브, 액티브 또는 변환 워크플로 유형에 맞는 진입 및 종료 노드. |
| 조건 | 조건 분기, JS 조건 분기, HTTPQL 일치, 점검 범위 일치, 문자열 포함, 정규식 일치. |
| 인코딩 | Base64, URL, 16진수, HTML 인코딩/디코딩. |
| 서식과 해시 | JSON 압축/서식 정리, MD5, SHA-1, SHA-256. |
| 텍스트 작업 | 앞뒤 문자 제거, 결합, 분할, 찾아 바꾸기, JQ 변환, Grep 추출. |
| JavaScript | 워크플로 SDK를 사용하는 사용자 지정 로직. 트래픽 읽기, 파일 작업, 발견 사항 생성이 가능합니다. |
| 연동 | 로그, Webhook, 워크플로 호출, 요청 보내기, 찾아 바꾸기 규칙. |
실제 포트와 설정은 노드 팔레트에서 확인하세요. 그래프를 다시 연결하려고 노드를 삭제하기보다는 연결을 클릭하여 해당 링크를 조작합니다. 저장 또는 Ctrl+S(macOS에서는 Command+S)로 저장합니다.
공유와 범위
워크플로는 기본적으로 같은 작업 공간의 프로젝트 간에 공유됩니다. 정의를 해당 프로젝트에만 유지하려면 프로젝트별을 켭니다. 정의를 공유한다고 각 프로젝트의 트래픽, 결과, 메모가 공유되는 것은 아닙니다. 다른 작업 공간이나 설치 환경으로 이동할 때는 워크플로 JSON을 내보내고 가져오세요.
실제 사용 전 테스트
패시브 및 액티브 워크플로에는 URL, 요청 원문, 응답 원문을 테스트 데이터로 입력하는 HTTP 테스트 섹션이 있습니다. 워크플로를 활성화하고 필드를 채운 뒤 워크플로 테스트를 클릭합니다. 테스트는 실행 전에 편집 내용을 저장합니다. 다른 화면으로 이동했다가 돌아와도 테스트 데이터 값은 워크플로별로 유지됩니다.
변환 워크플로에는 대신 테스트 입력과 출력이 있습니다. 대표적인 작은 입력부터 시작한 다음 실제 크기에 가까운 리소스로 테스트하세요. 테스트 데이터를 지정해도 임의의 JavaScript나 요청 보내기 노드가 무해해지는 것은 아닙니다. 워크플로 코드는 여전히 설정된 작업을 수행할 수 있습니다.
JavaScript와 파일
워크플로 JavaScript는 Ogma SDK와 호환되는 fs/path 가져오기를 지원합니다. 파일 작업에는 sdk.fs.readFile, writeFile, appendFile, exists, readDir, mkdir, unlink를 사용하고 플랫폼에 맞는 경로에는 sdk.path를 사용합니다. 이는 Ogma 보조 기능이며 Node.js 표준 라이브러리 전체가 아닙니다.
리소스 내보내기 도구에서는 response.getBody().toText()를 읽고, sdk.path.join으로 대상 경로를 정하고, 상위 디렉터리를 만듭니다. 기존 파일을 덮어쓰지 않으려면 sdk.fs.exists를 확인하세요. 실행 전에 파일시스템 경로를 검토하세요. 워크플로 파일시스템 보조 기능은 Ogma 호스트에서 실행되며, 플러그인의 전용 디렉터리를 사용하는 sdk.fs와 다릅니다. 그 별도 런타임은 플러그인 SDK를 참조하세요.
워크플로 가져오기
- 워크플로 도구 모음에서 가져오기를 클릭합니다.
- JSON 워크플로 파일을 선택합니다.
- 캔버스에 워크플로가 열립니다. 활성화 전에 노드 설정을 확인하세요.
- 워크플로를 저장합니다.
내보낸 워크플로 JSON 파일은 Ogma 설치 환경 간에 공유하거나 버전 관리에 저장할 수 있습니다.
캡처 기록에 워크플로 실행
액티브 워크플로는 이전에 캡처한 요청에 다시 실행할 수 있습니다.
- 워크플로를 엽니다.
- 기록에 실행을 클릭합니다.
- 기록 스캔 대화 상자에서 필요하면 HTTPQL 필터를 입력하여 워크플로가 처리할 요청을 제한합니다.
- 실행을 클릭합니다.
일치 항목 수를 검토하고 작업을 시작합니다. 진행 상황과 오류는 스캔 작업에 표시되며, 로깅이 켜져 있으면 실행 기록에도 표시됩니다. 패시브 워크플로는 과거 트래픽 처리를 위해 기록 스캔과 요청에 다시 실행을 제공합니다.
주목할 소수의 리소스에는 HTTP 기록 행을 하나 이상 선택하고 마우스 오른쪽 버튼으로 클릭한 뒤 워크플로로 보내기에서 활성화된 액티브 워크플로를 선택합니다. 정의를 변경하거나 전체 기록을 처리하지 않고 선택한 항목을 전달할 수 있습니다.
기록 스캔 필터 입력란 옆의 AI 버튼은 자연어 설명에서 HTTPQL 표현식을 생성합니다.
워크플로 실행과 결과
실행 세부 정보가 필요하면 워크플로 설정의 로깅 활성화를 켭니다. 찾아 바꾸기 변환을 포함하여 패시브, 액티브, 변환 워크플로에 적용됩니다. 꺼져 있어도 처리는 실행되지만 실행/단계 로그를 추가하지 않습니다. 문제를 진단하려면 다시 켜고 테스트를 반복하세요.
- 실행을 클릭하면 노드별 단계 출력을 확인할 수 있습니다.
- 오류가 발생한 노드는 강조 표시됩니다.
- 실행 중 생성된 발견 사항은 발견 사항 화면에 표시됩니다.
- 실행 중 추출된 변수는 단계 상세 패널에서 확인할 수 있습니다.
모두 지우기는 선택한 워크플로의 저장된 실행 기록을 삭제합니다. 디버깅 증거를 유지해야 하면 지우기 전에 로그를 다운로드하세요. 로그에는 스크립트 본문 전체 같은 큰 출력이 저장될 수 있으므로 대량 변환에서는 필요하지 않으면 꺼 두세요.
패시브 워크플로 활성화
- 워크플로를 엽니다.
- 캔버스 설정이 완전한지 확인합니다(필수 포트 중 연결되지 않은 포트가 없어야 합니다).
- 도구 모음의 활성화를 켭니다.
활성화된 패시브 워크플로는 새 트래픽을 자동 처리합니다. 비활성화하면 삭제하지 않고 일시 중지할 수 있습니다.