Autify Connect 통합
  • 24 Oct 2024
  • 8 읽을 분
  • 기여자
  • 어두운

Autify Connect 통합

  • 어두운

기사 요약

*이 페이지의 일부는 기계 번역되었습니다.

이 문서에서는 Autify CLI(명령줄 인터페이스) 및 기타 기존 CI/CD 통합과 함께 Autify Connect를 사용하는 방법에 대해 설명합니다. Autify CLI는 다른 여러 명령어와 마찬가지로 Autify Connect를 위한 통합되고 간소화된 환경을 제공하며, 이미 CI/CD 통합에서도 이를 지원하고 있습니다.

먼저 Autify Connect 개요를 읽고 Autify Connect에 대한 개념을 이해하시기 바랍니다.

Autify Connect의 사용 사례

자세한 내용을 살펴보기 전에 Autify Connect의 사용 사례에 대한 분위기를 조성해 보겠습니다. Autify Connect는 인터넷을 통해 엔드포인트를 사용할 수 없는 경우에도 Autify의 테스트를 실행하는 한 가지 중요한 기능을 제공합니다. 이를 통해 세 가지 사용 사례가 열립니다:

  1. 장기간 실행되는 정적 액세스 포인트를 사용하여 비공개 네트워크의 엔드포인트에 대한 테스트.
  2. 로컬 컴퓨터의 임시 액세스 포인트를 통해 사설 네트워크의 엔드포인트에 대해 테스트
  3. 로컬 머신의 임시 액세스 포인트를 통해 로컬 호스트 엔드포인트에 대해 테스트

사용 사례 1

autify-connect-case-1.png

사용 사례 1은 방화벽 뒤의 스테이징 환경이나 기업 내부 웹사이트 등 개인 웹사이트에 대해 Autify의 테스트를 실행하려는 경우입니다. 이 경우 "회사 네트워크"와 같은 정적 액세스 포인트가 있는 개인 네트워크 내에서 하나 이상의 Autify Connect 클라이언트를 실행해야 합니다. 그런 다음 누군가 액세스 포인트의 가용성을 유지하는 한, 즉 정적 액세스 포인트를 데몬화 및 모니로팅하여 Autify Connect 클라이언트를 계속 실행하는 한, 프라이빗 네트워크 내에서 실행하려는 모든 테스트에 해당 액세스 포인트를 사용할 수 있습니다.

사용 사례 2

autify-connect-case-2.png

사용 사례 2는 사용 사례 1과 동일한 대상 엔드포인트를 위한 것이지만 액세스 포인트가 임시적이며 로컬 컴퓨터에서 실행됩니다. 이 경우에는 이러한 장기 실행 프로세스를 관리할 필요가 없습니다. 대신 필요할 때 임시 액세스 포인트를 생성하고 임시 액세스 포인트로 Autify Connect 클라이언트를 실행하면 됩니다. 이제 Autify Connect 클라이언트를 계속 실행하고 로컬 컴퓨터가 대상 엔드포인트에 액세스할 수 있는 한 로컬 컴퓨터를 통해 비공개 네트워크에 대한 Autify 테스트를 실행할 수 있습니다.

사용 사례 3

autify-connect-case-3.png

사용 사례 3은 사용 사례 1, 2와는 완전히 다른 목적입니다. 대상 엔드포인트는 로컬 개발 서버와 같은 로컬 호스트/127.0.0.1이지만 여전히 이러한 로컬 엔드포인트에 대해 Autify 테스트를 실행하려고 합니다. 사용 사례 2에서 설명한 임시 액세스 포인트는 로컬 컴퓨터가 localhost에 액세스할 수 있기 때문에 이 경우에도 유용할 수 있습니다. 따라서 대상 엔드포인트가 완전히 다르더라도 사용 사례 2와 3 모두에 대한 솔루션은 동일합니다.

Autify CLI는 위의 모든 사용 사례를 지원하는 가장 쉬운 방법을 제공합니다. 하나씩 살펴보겠지만 궁금한 특정 사용 사례의 섹션으로 바로 이동할 수 있습니다.

시작하기

Autify CLI는 로컬 컴퓨터에서 Autify Connect를 쉽게 작동할 수 있는 일련의 명령을 제공합니다. 이 명령들을 살펴보면 Autify Connect를 시작하는 데 어려움이 없다는 것을 알게 될 것입니다.

전제 조건

테스트 시나리오 기록

변수.제품 이름 웹}}에서 테스트 시나리오를 만들어야 합니다. 비공개 엔드포인트 또는 '로컬 호스트' 엔드포인트(예: 개발 서버)에 대해 시나리오를 기록합니다. 기록된 테스트 시나리오의 Autify URL(예: https://app.autify.com/projects/0000/scenarios/0000)에 유의하세요.

다음 섹션에서는 모두 테스트 시나리오를 대상으로 사용하지만 https://app.autify.com/projects/0000/test_plans/0000과 같은 URL을 전달하여 테스트 계획을 사용할 수도 있습니다.

로컬 호스트/127.0.0.1레코딩의 경우, 지금은localhost/127.0.0.1대신localhost.autify.com`을 사용해야 합니다.

로컬 호스트/127.0.0.1로 시나리오를 녹화하는 경우 테스트를 실행할 때localhost.autify.com으로 URL 대체를 요청해야 합니다. 이 제한을 없애기 위해 작업 중입니다. 그때까지는localhost.autify.com으로 기록하거나localhost.autify.com`으로 URL을 바꿔야 합니다.

Autify CLI 설치

Autify CLI를 설치하고 {{변수.제품명 웹}}의 개인 액세스 토큰을 설정해야 합니다. 자세한 내용은 Autify CLI 문서를 참조하세요.

Autify Connect 클라이언트 설치

아래 명령을 실행합니다. 그러면 Autify CLI의 캐시 디렉토리에 적절한 autifyconnect 바이너리가 다운로드됩니다:

인증 연결 클라이언트 설치

출력 예시:

$ autify connect 클라이언트 설치
Autify Connect 클라이언트 설치 중(버전: v0.6.1)... 완료됨
Autify Connect 클라이언트를 성공적으로 설치했습니다(경로: /홈/노드/.캐시/autify/autifyconnect, 버전: Autify Connect 버전 v0.6.1, 빌드 ca0972e)

1. 장기 실행 정적 액세스 포인트로 프라이빗 네트워크의 엔드포인트에 대해 테스트하기

:::(경고)
아래 단계는 시작 또는 데모용으로만 제공됩니다. 프로덕션 용도의 경우, systemd, supervisord 등과 같은 수퍼바이저에서 직접 autifyconnect 바이너리를 실행하는 것이 좋습니다. 프로덕션에서 autifyconnect를 실행하고 작동하는 방법은 이 문서를 참조하세요.
:::

이 사용 사례에서는 정적 액세스 포인트를 한 번 생성한 후 재사용합니다. 먼저 Autify CLI로 액세스 포인트를 생성합니다:

autify connect access-point create --name ACCESS_POINT_NAME --web-workspace-id WORKSPACE_ID

이 명령은 생성된 키를 Autify CLI의 config 디렉터리에 자동으로 저장합니다.

UI를 통해 액세스 포인트를 생성하는 것을 선호하는 경우 그렇게 할 수도 있습니다. 액세스 포인트가 생성되면 아래 명령어로 액세스 포인트의 이름과 키를 저장합니다. STDIN을 통해 생성된 키를 입력하라는 메시지가 표시됩니다:

autify connect access-point set --name ACCESS_POINT_NAME

생성한 액세스 포인트로 Autify Connect 클라이언트를 시작하겠습니다. 이 터미널을 어딘가에서 계속 실행하세요:

자동 인증 연결 클라이언트 시작

이제 정적 액세스 포인트를 사용할 준비가 되었습니다. 액세스 포인트로 기록한 Autify 테스트 시나리오를 실행합니다:

autify 웹 테스트 실행 TEST_SCENARIO_URL --autify-connect ACCESS_POINT_NAME --wait

이 명령은 액세스 포인트에 연결하여 테스트 시나리오를 시작하고 테스트가 완료될 때까지 기다립니다.

2. 로컬 컴퓨터의 임시 액세스 포인트를 통해 개인 네트워크의 엔드포인트에 대해 테스트하기

이 경우 정적 액세스 포인트가 필요하지 않고 임시 액세스 포인트만 있으면 됩니다. Autify CLI는 Autify Connect 클라이언트를 실행할 때 임시 액세스 포인트의 자동 생성/삭제를 지원합니다.

아래 명령을 실행합니다. 임시 액세스 포인트를 생성하고, 생성된 키로 Autify Connect Client를 실행하고, 테스트 시나리오를 실행합니다. 테스트 시나리오가 완료되면 Autify Connect 클라이언트가 중지되고 임시 액세스 포인트도 자동으로 삭제됩니다:

autify 웹 테스트 실행 TEST_SCENARIO_URL --autify-connect-client --wait

출력 예시:

$ autify 웹 테스트 실행 https://app.autify.com/projects/000/scenarios/0000 --autify-connect-client --wait
[Autify Connect Manager] 2022-09-15T19:54:39.213Z 정보 임시 액세스 지점이 만들어졌습니다: autify-cli-UUID
Autify Connect 클라이언트를 시작하는 중...
[Autify Connect Manager] 2022-09-15T19:54:39.253Z 정보 Autify Connect 클라이언트 시작 중(액세스 지점: autify-cli-UUID, debugServerPort: 51035, 경로: /사용자/러너/라이브러리/캐시/autify/autifyconnect, 버전: Autify Connect 버전 v0.6.2, 빌드 0913a76)
Autify Connect 클라이언트가 준비될 때까지 기다리는 중...
[Autify Connect 클라이언트] 2022-09-15T19:54:39.262Z 정보 디버그 서버 서비스 시작 http://localhost:51035
[인증 연결 클라이언트] 2022-09-15T19:54:39.262Z 정보 인증 연결 서버와의 보안 연결을 시작하는 중입니다. 세션 ID는 "..."입니다.
[Autify Connect 클라이언트] 2022-09-15T19:54:40.509Z 정보 연결에 성공했습니다!
Autify Connect 클라이언트가 준비되었습니다!
✅ 성공적으로 시작됨: https://app.autify.com/projects/000/results/1111 (기능: Linux Chrome 104.0)
🕐 테스트 결과를 기다리는 중: https://app.autify.com/projects/000/results/1111
  대기 중... (시간 초과: 300초)
테스트 통과!: https://app.autify.com/projects/000/results/1111
Autify Connect 클라이언트가 종료될 때까지 기다리는 중...
[인증 연결 클라이언트] 2022-09-15T19:54:51.932Z 정보 인터럽트 수신.
[Autify Connect Client] 2022-09-15T19:54:51.932Z 정보 종료 완료.
[Autify Connect Manager] 2022-09-15T19:54:52.358Z 정보 임시 액세스 포인트가 삭제됨: autify-cli-UUID
[Autify Connect Manager] 2022-09-15T19:54:52.362Z 정보 Autify Connect 클라이언트가 종료됨(코드: 0, 신호: null)
인증 연결 클라이언트가 종료되었습니다.

이 명령은 대부분의 사용 사례에 적용되지만 Autify Connect 클라이언트를 별도로 실행하려면 먼저 기록된 테스트 시나리오가 속한 작업 공간 ID로 실행하세요(작업 공간 ID는 /projects/ 뒤의 URL 안에 있음):

autify connect client start --web-workspace-id 000

그런 다음, 생성된 임시 액세스 포인트에 대해 테스트 시나리오를 실행합니다(이름은 이전 명령의 출력에 'Autify Connect 클라이언트 시작(액세스 포인트: autify-cli-UUID,...`와 같이 표시되어야 합니다):

autify 웹 테스트 실행 TEST_SCENARIO_URL --autify-connect "autify-cli-UUID" --wait

3. 로컬 컴퓨터의 임시 액세스 포인트를 통해 localhost 엔드포인트에 대해 테스트하기

이 경우 로컬 컴퓨터에서 임시 액세스 포인트가 필요합니다. Autify CLI는 Autify Connect 클라이언트를 실행할 때 임시 액세스 포인트 자동 생성/삭제를 지원합니다.

우선, 별도의 터미널에서 '로컬 호스트' 서버를 실행합니다. 작업 실행기에 따라 rails 서버, npm 실행 시작 등이 될 수 있습니다. 또한 테스트 시나리오가 http://localhost.autify.com:3000과 같은 로컬 엔드포인트에 대해 기록된다고 가정합니다(기억하세요: 로컬 호스트를 기본으로 지원하길 원하지만 현재는localhost.autify.com`을 사용하여 녹화하거나 URL을 대체해야 합니다.)

그런 다음 사용 사례 2와 동일한 명령을 실행합니다:

autify 웹 테스트 실행 TEST_SCENARIO_URL --autify-connect-client --wait

로컬 호스트/127.0.0.1`에 대해 테스트 시나리오를 녹화한 경우, 현재로서는 아래와 같이 URL 교체를 요청해야 합니다:

autify 웹 테스트 실행 TEST_SCENARIO_URL --autify-connect-client --wait --url-replacements http://localhost=http://localhost.autify.com

localhost 개발 사용 사례 데모

다음은 사용 사례 3의 일반적인 개발 주기를 보여주는 단계별 예시입니다:

  1. 아주 간단한 localhost 애플리케이션을 시작합니다.
    • 아래 명령은 macOS의 http://localhost:8000에서 정적 http 서버를 시작합니다. 나머지를 진행하는 동안 포그라운드에서 계속 실행합니다.
echo Hello world! > index.html
python3 -mhttp.server
  1. http://localhost.autify.com:8000` 서버에 대한 테스트 시나리오를 기록합니다.
    • 텍스트 요소에 텍스트가 "Hello world!"여야 한다는 어설션을 추가합니다.
    • 실제 사용 사례에서는 이 테스트 시나리오를 팀원들과 공유하고 선택적으로 스테이징/프로덕션 엔드포인트 테스트에도 사용해야 합니다.
  2. Autify Connect 클라이언트를 사용하여 Autify에서 테스트 시나리오를 실행합니다.
autify 웹 테스트 실행 https://app.autify.com/projects/000/scenarios/000 --autify-connect-client --wait
  1. 테스트 통과를 확인합니다.
  2. 애플리케이션을 수정합니다.
echo Hello Autify! > index.html
  1. 동일한 명령으로 Autify Connect 클라이언트를 사용하여 Autify에서 동일한 테스트 시나리오를 실행합니다.
autify 웹 테스트 실행 https://app.autify.com/projects/000/scenarios/000 --autify-connect-client --wait
  1. 이번에는 테스트가 실패했는지 확인합니다.
    • 로컬 변경으로 인해 회귀 실패가 발생하는 경우를 모방한 것입니다.

위에서 볼 수 있듯이, 하나의 명령으로 Autify를 통해 localhost 애플리케이션을 확인할 수 있습니다. 원하는 경우 해당 명령을 작업 실행기(예: Rake/npm/등)에 임베드하여 네이티브로 실행할 수 있습니다.

Autify Connect를 위한 CI/CD 통합

당사의 모든 공식 CI/CD 통합은 내부적으로 Autify CLI를 사용합니다. 따라서 이러한 CI/CD 연동 서비스에서도 위와 동일한 작업을 수행할 수 있습니다.

코드 리뷰 프로세스 중 CI/CD 러너 내부의 localhost 서버에 대한 테스트 시나리오 실행

Autify-local-EN.png

사용 사례 3을 확장하여 CI/CD 런너(예: GitHub Actions 호스팅 런너) 내부에서도 동일한 작업을 수행할 수 있습니다. 이렇게 하면 추가 인프라 없이도 코드 리뷰 프로세스 중에 Autify 테스트를 실행할 수 있습니다. 이는 코드 리뷰 프로세스와 Autify의 통합을 막는 중요한 장애물입니다. 코드 리뷰 통합에 대한 자세한 내용은 여기를 참조하세요(https://help.autify.com/docs/integrate-with-code-review-process).

이 통합을 사용하려면 '로컬 호스트' 서버가 CI/CD 러너 내부에서도 제대로 실행되고 작동할 수 있어야 합니다. 일반적인 함정은 데이터베이스(시드), 기타 마이크로서비스(모의, 모노레포 또는 도커), 자격 증명(비밀 저장소에 설정해야 함) 및 네트워크(CI/CD 관리형 런너가 비공개 네트워크에 상주하지 않을 수 있음) 등입니다.

로컬 머신처럼 작동하면 CI/CD 런너 내부의 '로컬 호스트' 서버에 대해 테스트 시나리오를 실행할 수 있습니다.

예를 들어, GitHub Actions 및 Rails 애플리케이션이 있습니다. 이 워크플로를 Rails 애플리케이션의 GitHub 리포지토리에 추가할 수 있습니다. 그런 다음 각 풀 리퀘스트는 CI/CD 러너 내에서 rails 서버를 실행하고 Autify Connect 클라이언트를 통해 Autify 테스트를 실행합니다:

을 설정합니다:
  pull_request:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - 사용: 액션/체크아웃@v3
      - 사용: ruby/setup-ruby@v1
        with:
          ruby-version: '3.0'
      # 백그라운드에서 Rails 서버 실행. 데이터베이스나 환경 변수를 통한 자격 증명 전달과 같은 추가 설정이 필요할 수 있습니다.
      - 실행: 번들 실행 레일즈 서버 --daemon
      - 사용: autifyhq/actions-web-test-run@v2
        with:
          access-token: ${{ secrets.AUTIFY_WEB_ACCESS_TOKEN }}
          # 테스트 시나리오가 http://localhost.autify.com 에 대해 기록되었다고 가정합니다.
          autify-test-url: https://app.autify.com/projects/000/scenarios/000
          autify-connect-client: true
          wait: true
          timeout: 300

대기하는 동안 GitHub Actions 호스팅 러너의 시간이 소모됩니다. 시간 초과 값을 연장할 때 주의하세요.

사용자를 대신하여 인프라 내에서 이러한 프로세스를 실행하는 것을 지원받고 싶으시다면 저희에게 연락해 주세요.

여기서 한 가지 우려되는 점은 CI/CD 제공업체가 백도어 등의 악용으로 보인다는 이유로 오래 지속되는 TCP 연결을 끊거나 거부할 수 있다는 점입니다. 자체 호스팅 러너는 이러한 제한과 비용 문제를 피할 수 있습니다(Amazon EC2와 같은 러너의 플랫폼에 대한 비용을 지불해야 하지만).

다른 곳에서 이미 실행 중인 Autify Connect 클라이언트로 테스트 시나리오 실행하기

이 시나리오는 사용 사례 1에 대한 것으로 Autify Connect 클라이언트가 이미 실행 중이므로 매우 간단합니다. 이미 소프트웨어를 개인 네트워크 애플리케이션에 배포했다고 가정합니다. 그런 다음 공용 네트워크 애플리케이션에 대해 할 수 있는 것처럼 테스트 시나리오를 실행하기만 하면 됩니다.

다음은 배포 단계 이후의 GitHub 작업의 예입니다. 이 단계에서는 YOUR_ACCESS_POINT_NAME이라는 연결 액세스 포인트 인증을 사용하여 인증 테스트를 시작합니다.

- 사용: autifyhq/actions-web-test-run@v2
  와
    access-token: ${{ secrets.AUTIFY_WEB_ACCESS_TOKEN }}
    autify-test-url: https://app.autify.com/projects/000/scenarios/000
    autify-connect: YOUR_ACCESS_POINT_NAME

결론

이 문서에서는 Autify Connect의 사용 사례, Autify CLI와 함께 Autify Connect 클라이언트를 사용하는 방법, Autify Connect 클라이언트와 함께 Autify 테스트를 쉽게 실행하는 방법에 대해 설명합니다. 이 통합을 통해 비공개 네트워크에 대한 테스트 또는 '로컬 호스트' 개발 서버에 대한 테스트와 같이 웹사이트를 고유하게 테스트할 수 있는 다양한 기능을 CI/CD 런너 내부에서도 쉽게 사용할 수 있습니다.


이 문서가 도움이 되었습니까?

What's Next
Changing your password will log you out immediately. Use the new password to log back in.
First name must have atleast 2 characters. Numbers and special characters are not allowed.
Last name must have atleast 1 characters. Numbers and special characters are not allowed.
Enter a valid email
Enter a valid password
Your profile has been successfully updated.