---
sourceDocument: 호주 애플리케이션 빌드 또는 수정
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ko-KR/application-development

 Release :

    - australia

ft:locale :

    - ko-KR

ft:publication_title :

    - 호주 애플리케이션 빌드 또는 수정

ft:clusterId :

    - cadev

bundleId :

    - cadev

workflow :

    - Development, Data, and Analytics


---

# ATF 테스트 API

# Automated Test Framework 테스트 API - ServiceNow Fluent {#ariaid-title1}

* 릴리스 버전: Australia
* 
* 업데이트 날짜 2026년 03월 12일
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 소요 시간: 10분

테스트 API는 Automated Test Framework 변경 후에 인스턴스가 작동하는지 확인하기 위해 실행할 수 있는 자동화된 테스트\[sys_atf_test\]를 정의합니다.
주:  
최신 ServiceNow Fluent API 설명서 및 예제는 [ServiceNow Fluent API 참조](https://servicenow.github.io/sdk/) 및 [ServiceNow SDK 예제 리포지토리](https://github.com/ServiceNow/sdk-examples) 는 의 위치에 있습니다 GitHub.

테스트에 대한 Automated Test Framework 일반적인 정보는 문서를 참조하십시오 [Automated Test Framework (ATF)](https://servicenow-prod.fluidtopics.net/RKzthEGP_8_yLYFLAiWyiA "(ATF)를 Automated Test Framework 사용하면 자동화된 테스트를 만들어 실행하고, 변경 후에 인스턴스가 작동하는지 확인할 수 있습니다. 예를 들어 업그레이드 후, 애플리케이션 개발 중 또는 업데이트 세트로 인스턴스 구성을 배포할 때 테스트가 실행됩니다. 실패한 테스트 결과를 검토하여 실패를 유발한 변경 사항과 검토해야 하는 변경 사항을 식별합니다.").
**관련 개념**   

* [ServiceNow Fluent](https://servicenow-prod.fluidtopics.net/LkgjsL6Ogxn6hUPsJ73QXQ "도메인별 프로그래밍 언어를 사용하여 소스 코드에서 애플리케이션 메타데이터를 정의합니다.ServiceNow Fluent")

## 테스트 객체 {#ariaid-title2}

실행할 일련의 단계가 포함된 자동 테스트 \[sys_atf_test\]를 만듭니다.
{#atf-test-object-now-ts__table_vy2_525_jq__entry__3}{#atf-test-object-now-ts__now-id-desc2}

| 이름 | 유형 | 설명 |
|-|-|-|
| $id | 문자열 또는 숫자 | 필수 메타데이터 객체의 고유 ID입니다. 애플리케이션을 빌드할 때 이 ID는 고유한 sys_id으로 해시됩니다. 자세한 내용은 [ServiceNow Fluent 언어 구성](https://servicenow-prod.fluidtopics.net/bd4_Ogu8TJjhKosNwonOfw "ServiceNow Fluent 언어 구문은 API를 사용하여 ServiceNow Fluent 소스 코드에서 개발하기 위한 추가 기능을 제공합니다.") 문서를 참조하십시오. 형식: `Now.ID['문자열' 또는 숫자]` |
| 이름 | 문자열 | 테스트의 고유 이름입니다. |
| 설명 | 문자열 | 테스트가 수행하는 작업에 대한 설명입니다. |
| 활성 | 부울 | 테스트가 활성 상태인지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다. * true: 테스트가 활성 상태입니다. * false: 테스트가 활성 상태가 아닙니다. {#atf-test-object-now-ts__ul_cxj_srr_4bc} 기본값: true |
| failOnServerError | 부울 | 테스트 중 서버 오류가 발생할 때 실패할지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다. * true: 서버 오류가 발생하면 테스트에 실패합니다. * false: 서버 오류가 발생해도 테스트에 실패하지 않습니다. {#atf-test-object-now-ts__ul_sc1_5w2_ybc} 기본값: true |
| 구성 함수 | 함수 | 테스트의 단계입니다. 테스트 단계는 atf 함수 내에서 명령문으로 전달됩니다. 예: (atf) => { atf.form.openNewForm({ table: 'sn_example_table', formUI: 'standard_ui', view: '', }) } 테스트 단계에 대한 자세한 내용은 다음 문서를 참조하십시오 [지원되는 테스트 단계](https://servicenow-prod.fluidtopics.net/xVwL5gvNLlUGoi_rF4akuw#atf-test-object-now-ts__section_q5c_qmp_ccc). |
| $meta | 객체 | 애플리케이션 메타데이터의 메타데이터입니다. installMethod 속성을 사용하면 애플리케이션 메타데이터를 특정 상황에서만 로드되는 출력 디렉터리에 매핑할 수 있습니다. $meta: { installMethod: 'String' } installMethod에 유효한 값: * demo: 데모 데이터 로드 옵션을 선택한 경우 애플리케이션과 함께 설치할 metadata/unload.demo 디렉터리에 애플리케이션 메타데이터를 출력합니다. * 첫 번째 설치: 애플리케이션이 인스턴스에 처음 설치될 때만 설치할 메타데이터 /언로드 디렉터리에 애플리케이션 메타데이터를 출력합니다. {#atf-test-object-now-ts__ul_n3q_y3s_42c} |
[표 1. 속성]

{#atf-test-object-now-ts__table_vy2_525_jq}  
출력 변수가 있는 테스트 단계의 출력 값은 변수로 저장하고 `구문 output.<output-variable>`을 사용하여 다른 단계에 대한 입력으로 사용할 수 있습니다. 출력 변수는 다음 예시의 `atf.server.log` 와 같이 해당 필드의 입력으로 직접 사용하거나 템플릿 문자열 내에서 사용할 수 있습니다.  

    import { Test } from '@servicenow/sdk/core'

    Test({
            active: true,
            failOnServerError: true,
            name: 'Simple example',
            description: 'An illustrative test written in fluent',
            $id: Now.ID[1],
        },
        (atf) => {
            atf.form.openNewForm({
                table: 'sn_table_app_reptile_table',
                formUI: 'standard_ui',
                view: '',
            })
            atf.form.setFieldValue({
                table: 'sn_table_app_reptile_table',
                formUI: 'standard_ui',
                fieldValues: {
                    reptiles: 'lizard' as any,
                },
            })
            const output = atf.form.submitForm({ assertType: 'form_submitted_to_server', formUI: 'standard_ui' })
            atf.server.recordValidation({
                recordId: output.record_id,
                table: 'sn_table_app_reptile_table',
                assertType: 'record_validated',
                enforceSecurity: true,
                fieldValues: 'reptiles=lizard',
            })
            atf.server.log({
                log: `Submitted record with sys_id: ${output.record_id} to table ${output.table}`
            })
        }
    )

### 지원되는 테스트 단계 {#atf-test-object-now-ts__section_q5c_qmp_ccc}

다음 테스트 단계가 지원됩니다. 단계 속성에 대한 자세한 내용은 설명서를 [Automated Test Framework (ATF) 테스트 단계 범주](https://servicenow-prod.fluidtopics.net/pvGK2MSuVfJkup7L6GWiGA "특정 사용자 인터페이스 또는 ServiceNow AI Platform 기능에 대한 테스트 단계를 찾습니다.") 참조하십시오.  
주:  
양식의 테스트 단계에 사용할 수 있는 일부 필드는 에서 속성으로 사용할 수 없습니다.ServiceNow Fluent
{#atf-test-object-now-ts__table_uqw_2mp_ccc__entry__2}

| 범주 | 단계 |
|-|-|
| [애플리케이션 내비게이터 범주](https://servicenow-prod.fluidtopics.net/CBKU7r0zJ71WgV5GOCX6bw#test-steps-app-navigator-category "애플리케이션 내비게이터에서 메뉴와 모듈의 기능을 확인합니다.") | * atf.applicationNavigator.applicationMenuVisibility * atf.applicationNavigator.moduleVisibility * atf.applicationNavigator.navigateToModule {#atf-test-object-now-ts__ul_dxm_cmp_ccc} |
| [이메일 범주](https://servicenow-prod.fluidtopics.net/2_mtYQfUIDI7uu0oOpTnnQ#test-steps-email-category "(ATF)를 사용하여 Automated Test Framework 이메일 알림, 아웃바운드 이메일 플로우 및 인바운드 이메일 응답을 테스트합니다.") | * atf.email.generateInboundEmail * atf.email.generateInboundReplyEmail * atf.email.generateRandomString * atf.email.validateOutboundEmail * atf.email.validateOutboundEmailGeneratedByFlow * atf.email.validateOutboundEmailGeneratedByNotification {#atf-test-object-now-ts__ul_exm_cmp_ccc} |
| [양식 범주](https://servicenow-prod.fluidtopics.net/J0Qt_iQVHC8PrWTD5lxUmQ#test-steps-form-category "양식의 필드 및 UI 작업 기능을 확인합니다.") | * atf.form.addAttachmentsToForm * atf.form.clickDeclarativeAction * atf.form.clickModalButton * atf.form.clickUIAction * atf.form.declarativeActionVisibility * atf.form.fieldStateValidation * atf.form.fieldValueValidation * atf.form.openExistingRecord * atf.form.openNewForm * atf.form.setFieldValue * atf.form.submitForm * atf.form.uiActionVisibility {#atf-test-object-now-ts__ul_lxm_cmp_ccc} |
| [범주의 서비스 포털 양식](https://servicenow-prod.fluidtopics.net/ufg~nsD~AX7MZWsjFs2Zjg#test-steps-forms-portal-category "양식 위젯에서 서비스 포털 필드 및 UI 작업의 기능을 확인합니다.") | * atf.form_SP.addAttachmentsToForm * atf.form_SP.clickUIAction_SP * atf.form_SP.fieldStateValidation_SP * atf.form_SP.fieldValueValidation_SP * atf.form_SP.openForm_SP * atf.form_SP.openServicePortalPage * atf.form_SP.setFieldValue_SP * atf.form_SP.submitForm_SP * atf.form_SP.uiActionVisibilityValidation_SP {#atf-test-object-now-ts__ul_fxm_cmp_ccc} |
| [Quick start tests for Dashboards](https://www.servicenow.com/docs/access?context=quick-start-tests-dashboards&version=australia&pubname=australia-now-intelligence&ft:locale=en-US) | * atf.reporting.responsiveDashboard * atf.reporting.responsiveDashboardSharing {#atf-test-object-now-ts__ul_hxm_cmp_ccc} |
| [REST 범주](https://servicenow-prod.fluidtopics.net/SfGfbkmdvVPAhph7E5brlA#test-steps-rest-category "REST 호출의 기능을 확인합니다.") | * atf.rest.assertJsonResponsePayloadElement * atf.rest.assertResponseHeader * atf.rest.assertResponseJSONPayloadIsValid * atf.rest.assertResponsePayload * atf.rest.assert응답시간 * atf.rest.assertResponseXMLPayloadIsWellFormed * atf.rest.assertStatusCode * atf.rest.assertStatusCodeName * atf.rest.assertXMLResponsePayloadElement * atf.rest.sendRestRequest {#atf-test-object-now-ts__ul_ixm_cmp_ccc} |
| [서버 범주](https://servicenow-prod.fluidtopics.net/q~o2~UbgTFRRoCnjgZmByQ#test-steps-server-category "서버 측 작업을 수행합니다. 예를 들어 기록을 쿼리 및 업데이트하거나, 사용자를 가장하거나, 서버 측 스크립트를 실행합니다.") | * atf.server.addAttachmentsToExistingRecord * atf.server.checkoutShoppingCart * atf.server.createUser * atf.server.impersonate * atf.server.log * atf.server.recordDelete * atf.server.recordInsert * atf.server.recordQuery * atf.server.recordUpdate * atf.server.recordValidation * atf.server.replayRequestItem * atf.server.runServerSideScript * atf.server.searchForCatalogItem * atf.server.setOutputVariables {#atf-test-object-now-ts__ul_jxm_cmp_ccc} |
| [서비스 카탈로그 범주](https://servicenow-prod.fluidtopics.net/qpxlj8q_TbjZV41JtQL82w#test-steps-service-catalog-category "에서 단일 카탈로그 항목 트랜잭션뿐만 아니라 요청자 및 이행자 플로우 서비스 카탈로그를 확인합니다.") | * atf.catalog.addItemToShoppingCart * atf.catalog.openCatalogItem * atf.catalog.openRecordProducer * atf.catalog.orderCatalogItem * atf.catalog.setCatalogItemQuantity * atf.catalog.setVariableValue * atf.catalog.submitRecordProducer * atf.catalog.validatePriceAndRecurringPrice * atf.catalog.variableStateValidation * atf.catalog.validateVariableValue {#atf-test-object-now-ts__ul_kxm_cmp_ccc} |
| [서비스 포털 범주의 서비스 카탈로그](https://servicenow-prod.fluidtopics.net/LlY2JkrbtmO6ioEAJtj7nA#test-steps-catalog-portal-category "에서 카탈로그 항목 트랜잭션 및 요청자 플로우 서비스 포털를 확인합니다.") | * atf.catalog_SP.addItemtoShoppingCart_SP * atf.catalog_SP.addOrderGuidetoShoppingCart_SP * atf.catalog_SP.addRowToMultiRowVariableSet_SP * atf.catalog_SP.navigatewithinOrderGuide_SP * atf.catalog_SP.openCatalogItem_SP * atf.catalog_SP.openOrderGuide_SP * atf.catalog_SP.openRecordProducer_SP * atf.catalog_SP.orderCatalogItem_SP * atf.catalog_SP.reviewIteminOrderGuide_SP * atf.catalog_SP.reviewOrderGuideSummary_SP * atf.catalog_SP.saveCurrentRowOfMultiRowVariableSet_SP * atf.catalog_SP.setCatalogItemQuantity_SP * atf.catalog_SP.setVariableValue_SP * atf.catalog_SP.submitOrderGuide_SP * atf.catalog_SP.submitRecordProducer_SP * atf.catalog_SP.validateOrderGuideItem_SP * atf.catalog_SP.validatePriceAndRecurringPrice_SP * atf.catalog_SP.variableStateValidation_SP * atf.catalog_SP.validateVariableValue_SP {#atf-test-object-now-ts__ul_gxm_cmp_ccc} |
[표 2. 테스트 단계]

{#atf-test-object-now-ts__table_uqw_2mp_ccc}

