Automated Test Framework 테스트 API - ServiceNow Fluent

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 10분
  • 테스트 API는 Automated Test Framework 변경 후에 인스턴스가 작동하는지 확인하기 위해 실행할 수 있는 자동화된 테스트[sys_atf_test]를 정의합니다.

    주:
    최신 ServiceNow Fluent API 설명서 및 예제는 ServiceNow Fluent API 참조ServiceNow SDK 예제 리포지토리 는 의 위치에 있습니다 GitHub.

    테스트에 대한 Automated Test Framework 일반적인 정보는 문서를 참조하십시오 Automated Test Framework (ATF).

    테스트 객체

    실행할 일련의 단계가 포함된 자동 테스트 [sys_atf_test]를 만듭니다.

    표 1. 속성
    이름 유형 설명
    $id 문자열 또는 숫자 필수 메타데이터 객체의 고유 ID입니다. 애플리케이션을 빌드할 때 이 ID는 고유한 sys_id으로 해시됩니다. 자세한 내용은 ServiceNow Fluent 언어 구성 문서를 참조하십시오.

    형식: Now.ID['문자열' 또는 숫자]

    이름 문자열 테스트의 고유 이름입니다.
    설명 문자열 테스트가 수행하는 작업에 대한 설명입니다.
    활성 부울 테스트가 활성 상태인지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 테스트가 활성 상태입니다.
    • false: 테스트가 활성 상태가 아닙니다.

    기본값: true

    failOnServerError 부울 테스트 중 서버 오류가 발생할 때 실패할지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 서버 오류가 발생하면 테스트에 실패합니다.
    • false: 서버 오류가 발생해도 테스트에 실패하지 않습니다.

    기본값: true

    구성 함수 함수 테스트의 단계입니다. 테스트 단계는 atf 함수 내에서 명령문으로 전달됩니다. 예:
    (atf) => {
        atf.form.openNewForm({
            table: 'sn_example_table',
            formUI: 'standard_ui',
            view: '',
        })
    }

    테스트 단계에 대한 자세한 내용은 다음 문서를 참조하십시오 지원되는 테스트 단계.

    $meta 객체 애플리케이션 메타데이터의 메타데이터입니다.
    installMethod 속성을 사용하면 애플리케이션 메타데이터를 특정 상황에서만 로드되는 출력 디렉터리에 매핑할 수 있습니다.
    $meta: {
          installMethod: 'String'
    }
    installMethod에 유효한 값:
    • demo: 데모 데이터 로드 옵션을 선택한 경우 애플리케이션과 함께 설치할 metadata/unload.demo 디렉터리에 애플리케이션 메타데이터를 출력합니다.
    • 첫 번째 설치: 애플리케이션이 인스턴스에 처음 설치될 때만 설치할 메타데이터 /언로드 디렉터리에 애플리케이션 메타데이터를 출력합니다.

    출력 변수가 있는 테스트 단계의 출력 값은 변수로 저장하고 구문 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}`
            })
        }
    )

    지원되는 테스트 단계

    다음 테스트 단계가 지원됩니다. 단계 속성에 대한 자세한 내용은 설명서를 Automated Test Framework (ATF) 테스트 단계 범주 참조하십시오.

    주:
    양식의 테스트 단계에 사용할 수 있는 일부 필드는 에서 속성으로 사용할 수 없습니다.ServiceNow Fluent
    표 2. 테스트 단계
    범주 단계
    애플리케이션 내비게이터 범주
    • atf.applicationNavigator.applicationMenuVisibility
    • atf.applicationNavigator.moduleVisibility
    • atf.applicationNavigator.navigateToModule
    이메일 범주
    • atf.email.generateInboundEmail
    • atf.email.generateInboundReplyEmail
    • atf.email.generateRandomString
    • atf.email.validateOutboundEmail
    • atf.email.validateOutboundEmailGeneratedByFlow
    • atf.email.validateOutboundEmailGeneratedByNotification
    양식 범주
    • 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.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
    Quick start tests for Dashboards
    • atf.reporting.responsiveDashboard
    • atf.reporting.responsiveDashboardSharing
    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.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.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.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