Tough Day tough-day
힘든 하루 2 what-is-tough-day
"Tough Day 2"는 AEM 인스턴스의 제한을 강조할 수 있는 애플리케이션입니다. 기본 테스트 도구 모음을 사용하여 즉시 실행하거나 테스트 요구 사항에 맞게 구성할 수 있습니다. 응용 프로그램 프레젠테이션을 위해 이 녹화를 볼 수 있습니다.
How to Run Tough Day 2 how-to-run-tough-day
Adobe 저장소에서 Tough Day 2의 최신 버전을 다운로드하십시오. 응용 프로그램을 다운로드한 후 host
매개 변수를 제공하여 즉시 실행할 수 있습니다. 다음 예제에서는 AEM 인스턴스가 로컬로 실행되므로 localhost
값이 사용됩니다.
java -jar toughday2.jar --host=localhost
매개 변수를 추가한 후 실행되는 기본 제품군의 이름은 toughday
입니다. 여기에는 다음과 같은 사용 사례가 포함되어 있습니다.
- 페이지 및 라이브 카피 만들기(롤아웃 포함)
- 홈 페이지 가져오기
- queryBuilder에서 쿼리 실행
- 자산 계층 만들기
- 에셋 삭제
이 제품군에는 15%의 쓰기 작업과 85%의 읽기 작업이 포함되어 있습니다.
Suite 테스트를 실행하기 위해 Tough Day 2는 기본 콘텐츠 패키지를 설치합니다. installsamplecontent
매개 변수를 false
(으)로 설정하면 이 문제를 방지할 수 있지만, 실행하려는 테스트의 기본 경로도 변경해야 합니다. Jar가 매개 변수 없이 실행되면 Tough Day 2에 도움말 정보가 표시됩니다.
일반적으로 다음 패턴을 따라 애플리케이션을 사용할 수 있습니다.
java -jar toughday2.jar [--help | --help_full | --help_tests | --help_publish] [<global arguments> | <actions> | --runmode | --publishmode]
도움말 보기 getting-help
Tough Day 2는 명령줄에서 액세스할 수 있는 다양한 도움말 옵션을 제공합니다. 예:
java -jar toughday2.jar --help_full
아래 표에서 관련 도움말 매개 변수를 찾을 수 있습니다.
전역 매개 변수 global-parameters
Tough Day 2는 테스트에 대한 환경을 설정하거나 변경하는 글로벌 매개 변수를 제공합니다. 여기에는 타겟팅되는 호스트, 포트 번호, 사용된 프로토콜, 인스턴스에 대한 사용자 및 암호 등이 포함됩니다. 예:
java -jar toughday2.jar --host=host --protocol=https --port=4502 --duration=30m --dryrun=true
아래 목록에서 관련 매개변수를 찾을 수 있습니다.
--installsamplecontent=<Val>
--protocol=<Val>
--host=<Val>
--port=<Val>
--user=<Val>
--password=<Val>
--duration=<Val>
--timeout=<Val>
--suite=<Val>
--configfile=<Val>
--contextpath=<Val>
--loglevel=<Val>
--dryrun=<Val>
사용자 정의 customizing
사용자 지정은 명령줄 매개 변수 또는 yaml 구성 파일의 두 가지 방법으로 수행할 수 있습니다. 구성 파일은 대규모 사용자 지정 세트에 사용되며 Tough Day 2 기본 매개 변수를 재정의합니다. 명령줄 매개 변수는 구성 파일과 기본 매개 변수를 모두 재정의합니다.
테스트 구성을 저장하는 유일한 방법은 yaml 형식으로 복사하는 것입니다.
새 테스트 추가 adding-a-new-test
기본 toughday
도구 모음을 사용하지 않으려면 add
매개 변수를 사용하여 선택한 테스트를 추가할 수 있습니다. 아래 예제에서는 명령줄 매개 변수 또는 yaml 구성 파일을 사용하여 CreateAssetTreeTest
테스트를 추가하는 방법을 보여 줍니다.
명령줄 매개 변수 사용:
java -jar toughday2.jar --host=localhost --add CreateAssetTreeTest
yaml 구성 파일을 사용하여 다음을 수행합니다.
globals:
host : localhost
tests:
- add : CreateAssetTreeTest
동일한 테스트의 여러 인스턴스 추가 adding-multiple-instances-of-the-same-test
동일한 테스트의 여러 인스턴스를 추가하고 실행할 수도 있지만 각 인스턴스의 이름은 고유해야 합니다. 아래 예는 명령줄 매개 변수 또는 yaml 구성 파일을 사용하여 동일한 테스트의 두 인스턴스를 추가하는 방법을 보여 줍니다.
명령줄 매개 변수 사용:
java -jar toughday2.jar --host=localhost --add CreateAssetTreeTest name=FirstAssetTree --add CreateAssetTreeTest name=SecondAssetTree
yaml 구성 파일을 사용하여 다음을 수행합니다.
globals:
host : localhost
tests:
- add : CreateAssetTreeTest
properties:
name : FirstAssetTree
- add : CreateAssetTreeTest
properties:
name : SecondAssetTree
테스트 속성 변경 changing-the-test-properties
하나 이상의 테스트 속성을 변경해야 하는 경우 해당 속성을 명령줄 또는 yaml 구성 파일에 추가할 수 있습니다. 사용 가능한 모든 테스트 속성을 보려면 다음과 같이 --help <TestClass/PublisherClass>
매개 변수를 명령줄에 추가하십시오.
java -jar toughday2.jar --help CreatePageTreeTest
Yaml 구성 파일은 Tough Day 2 기본 매개변수를 덮어쓰고 명령줄 매개변수는 구성 파일과 기본값을 모두 재정의합니다.
아래 예제에서는 명령줄 매개 변수 또는 yaml 구성 파일을 사용하여 CreatePageTreeTest
테스트에 대한 template
속성을 변경하는 방법을 보여 줍니다.
명령줄 매개 변수 사용:
java -jar toughday2.jar --host=localhost --add CreatePageTreeTest template=/conf/toughday-templates/settings/wcm/templates/toughday-template
yaml 구성 파일을 사용하여 다음을 수행합니다.
globals:
host : localhost
tests:
- add : CreatePageTreeTest
properties:
template : /conf/toughday-templates/settings/wcm/templates/toughday-template
사전 정의된 테스트 세트 작업 working-with-predefined-test-suites
아래 예는 사전 정의된 세트에 테스트를 추가하는 방법과 사전 정의된 세트에서 기존 테스트를 다시 구성하고 제외하는 방법을 보여줍니다.
add
매개 변수를 사용하고 타깃팅된 사전 정의된 세트를 지정하여 사전 정의된 세트에 새 테스트를 추가할 수 있습니다.
명령줄 매개 변수 사용:
java -jar toughday2.jar --host=localhost --suite=toughday --add CreatePageTreeTest
yaml 구성 파일을 사용하여 다음을 수행합니다.
globals:
host : localhost
suite : toughday
tests:
- add : CreatePageTreeTest
지정된 세트의 기존 테스트는 config
* *매개 변수를 사용하여 다시 구성할 수도 있습니다. 또한 테스트 클래스 이름이 아닌 테스트 세트 이름과 실제 이름을 지정합니다. Test Class의 name
속성에서 테스트 이름을 찾을 수 있습니다. 테스트 속성을 찾는 방법에 대한 자세한 내용은 테스트 속성 변경 섹션을 참조하십시오.
CreatePageTreeTest
(이름이 UploadAsset
임)에 대한 기본 자산 제목 아래의 예제에서 "NewAsset"으로 변경되었습니다.
명령줄 매개 변수 사용:
java -jar toughday2.jar --host=localhost --suite=toughday --config UploadAsset title=NewAsset
yaml 구성 파일을 사용하여 다음을 수행합니다.
globals:
host : localhost
suite : toughday
tests:
- config : UploadAsset
properties :
title : NewAsset
또한 exclude
매개 변수를 사용하여 기본 구성에서 미리 정의된 세트나 게시자에서 테스트를 제거할 수도 있습니다. 또한 Test C lass
이름이 아닌 Suite 이름과 실제 테스트 이름도 지정합니다. 테스트 클래스의 name
속성에서 테스트 이름을 찾을 수 있습니다. 아래 예에서는 CreatePageTreeTest
(UploadAsset
) 테스트가 toughday 제품군에서 제거됩니다.
명령줄 매개 변수 사용:
java -jar toughday2.jar --host=localhost --suite=toughday --exclude UploadAsset
yaml 구성 파일을 사용하여 다음을 수행합니다.
globals:
host : localhost
suite : toughday
tests:
- exclude : UploadAsset
실행 모드 run-modes
힘든 날 2는 보통 및 상수 부하 모드 중 하나로 실행할 수 있습니다.
normal 실행 모드에는 두 개의 매개 변수가 있습니다.
-
concurrency
- 동시성은 Tough Day 2에서 테스트 실행을 위해 만들 스레드 수를 나타냅니다. 이러한 스레드에서는 기간이 만료되거나 실행할 테스트가 더 이상 없을 때까지 테스트가 실행됩니다. -
waittime
- 동일한 스레드에서 두 개의 연속 테스트 실행 사이의 대기 시간입니다. 값은 밀리초 단위로 표현해야 합니다.
아래 예는 명령줄을 사용하여 매개 변수를 추가하는 방법을 보여줍니다.
java -jar toughday2.jar --host=localhost --add CreateAssetTreeTest --runmode=normal concurrency=20
또는 yaml 구성 파일을 사용하여 다음을 수행합니다.
runmode:
type : normal
waittime : 300
concurrency : 200
상수 부하 실행 모드는 스레드 수가 아니라 시작된 테스트 실행을 일정 수 생성하여 일반 실행 모드와 다릅니다. 같은 이름의 실행 모드 매개변수를 사용하여 로드를 설정할 수 있습니다.
테스트 선택 test-selection
테스트 선택 프로세스는 두 실행 모드 모두에 대해 동일하며 다음과 같습니다. 모든 테스트에는 스레드에서 실행될 가능성을 결정하는 weight
속성이 있습니다. 예를 들어 가중치가 5인 테스트와 가중치가 10인 테스트가 두 개 있는 경우 후자가 전자 테스트보다 두 배 더 많이 실행될 가능성이 있습니다.
또한 테스트에는 실행 수를 지정된 숫자로 제한하는 count
속성이 있을 수 있습니다. 이 숫자가 전달되면 테스트가 더 이상 실행되지 않습니다. 이미 실행 중인 모든 테스트 인스턴스는 구성된 대로 실행을 완료합니다. 다음 예에서는 명령줄에서 또는 yaml 구성 파일을 사용하여 이러한 매개변수를 추가하는 방법을 보여 줍니다.
java -jar toughday2.jar --host=localhost --add CreateAssetTreeTest weight=5 --add CreatePageTreeTest weight=10 count=100 --runmode=normal concurrency=20
또는
- add : CreateAssetTreeTest
properties :
name : UploadAsset
weight : 5
base : 3
foldertitle : IAmAFolder
assettitle : IAmAnAsset
count : 100
count
매개 변수에 구성된 양과 정확히 일치하지 않습니다. 실행 중인 스레드 수에 비례하는 편차가 필요합니다(concurrency parameter
에 의해 제어됨).시험 실행 dry-run
드라이 실행은 주어진 입력(명령줄 매개 변수 또는 구성 파일)을 모두 구문 분석하여 이를 기본값과 병합한 다음 결과를 출력합니다. 아무 테스트도 실행되지 않습니다.
java -jar toughday2.jar --host=localhost --suite=toughday --add CreatePageTreeTest --dryrun=true
출력 output
Tough Day 2는 테스트 지표와 로그를 모두 출력합니다. 자세한 내용은 다음 섹션을 참조하십시오.
테스트 지표 test-metrics
Tough Day 2는 현재 평가할 수 있는 9개의 테스트 지표를 보고합니다. * 기호가 있는 지표는 성공적으로 실행된 후에만 보고됩니다.
이러한 지표는 add
매개 변수를 사용하여 추가할 수 있는 게시자의 도움을 받아 작성됩니다(테스트 추가와 유사). 현재 다음 두 가지 옵션이 있습니다.
- CSVPubliser - 출력이 CSV 파일입니다.
- ConsolePublisher - 출력이 콘솔에 표시됩니다.
기본적으로 두 게시자가 모두 활성화됩니다.
또한 지표가 보고되는 두 가지 모드가 있습니다.
- 단순 게시 모드 - 실행 시작부터 게시 시점까지의 결과를 보고합니다.
- 간격 게시 모드 - 주어진 시간대에 결과를 보고합니다. 게시 모드 매개 변수 간격 을 사용하여 시간대를 설정할 수 있습니다.
다음 예제에서는 명령줄 또는 yaml 구성 파일을 사용하여 intervals
매개 변수를 구성하는 방법을 보여 줍니다.
명령줄 매개 변수 사용:
java -jar toughday2.jar --host=localhost --add CreatePageTreeTest --publishmode type=intervals interval=10s
yaml 구성 파일을 사용하여 다음을 수행합니다.
publishmode:
type : intervals
interval : 10s
tests:
-add : CreatePageTreeTest
로깅 logging
Tough Day 2는 Tough Day 2를 실행한 동일한 디렉터리에 로그 폴더를 만듭니다. 이 폴더에는 두 가지 유형의 로그가 있습니다.
- toughday.log: 응용 프로그램 상태, 디버깅 정보 및 글로벌 메시지와 관련된 메시지가 들어 있습니다.
- toughday_<testname>.log: 지정된 테스트와 관련된 메시지입니다.
로그는 덮어쓰지 않으며 후속 실행은 메시지를 기존 로그에 추가합니다. 로그에는 여러 수준이 있습니다. 자세한 내용은 loglevel 매개 변수.을(를) 참조하십시오.