Automated Test Framework 테스트 API - ServiceNow Fluent

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 소요 시간: 9분
  • Test API에는 변경 후 인스턴스가 작동하는지 확인하기 위해 자동화된 테스트[sys_atf_test]를 생성하고 실행하는 객체가 포함되어 있습니다.

    주:
    테스트 API는 Automated Test Framework 단방향 동기화만 지원합니다. 소스 코드에서 ATF 테스트를 정의한 후 메타데이터가 소스 코드 외부에서 수정되면 이러한 변경 내용이 동기화되지 않고 소스 코드에 반영되지 않습니다.

    테스트 객체

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

    표 1. 속성
    이름 유형 설명
    $id 문자열 또는 숫자 필수 다음 형식으로 제공되는 메타데이터 개체의 고유 ID입니다. 여기서 <value> 는 문자열 또는 숫자입니다.
    $id: Now.ID[<value>]

    애플리케이션을 빌드할 때 이 ID는 고유한 sys_ID로 해시됩니다.

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

    기본값: true

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

    기본값: true

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

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

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

    import { Test } from '@servicenow/sdk/core'
    import '@servicenow/sdk-core/global'
    
    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}`
            })
        }
    )

    지원되는 테스트 단계

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

    주:
    양식의 테스트 단계에 사용할 수 있는 일부 필드는 의 ServiceNow Fluent속성으로 사용할 수 없습니다.
    표 2. 테스트 단계
    범주 단계
    애플리케이션 내비게이터 범주
    • atf.applicationNavigator.moduleVisibility
    • atf.applicationNavigator.navigateToModule
    • atf.applicationNavigator.applicationMenuVisibility
    이메일 범주
    • atf.email.validateOutboundEmailGeneratedByNotification
    • atf.email.generateRandomString (영문)
    • atf.email.generateInboundReplyEmail
    • atf.email.validateOutboundEmailGeneratedByFlow
    • atf.email.generateInboundEmail
    • atf.email.validateOutboundEmail
    범주의 서비스 포털 양식
    • atf.form_SP.openForm_SP
    • atf.form_SP. openServicePortalPage
    • atf.form_SP.setFieldValue_SP
    • atf.form_SP. fieldValueValidation_SP
    • atf.form_SP.fieldStateValidation_SP
    • atf.form_SP.uiActionVisibilityValidation_SP
    • atf.form_SP.clickUIAction_SP
    • atf.form_SP.submitForm_SP
    서비스 포털 범주 내 서비스 카탈로그
    • atf.catalog_SP.openRecordProducer_SP
    • atf.catalog_SP.openOrderGuide_SP
    • atf.catalog_SP.openCatalogItem_SP
    • atf.catalog_SP.saveCurrentRowOfMultiRowVariableSet_SP
    • atf.catalog_SP.addRowToMultiRowVariableSet_SP
    • atf.catalog_SP.setVariableValue_SP
    • atf.catalog_SP.validateVariableValue_SP
    • atf.catalog_SP.variableStateValidation_SP
    • atf.catalog_SP.validatePriceAndRecurringPrice_SP
    • atf.catalog_SP.navigatewithinOrderGuide_SP
    • atf.catalog_SP.setCatalogItemQuantity_SP
    • atf.catalog_SP.validateOrderGuideItem_SP
    • atf.catalog_SP.reviewOrderGuideSummary_SP
    • atf.catalog_SP.reviewIteminOrderGuide_SP
    • atf.catalog_SP.addItemtoShoppingCart_SP
    • atf.catalog_SP.addOrderGuidetoShoppingCart_SP
    • atf.catalog_SP.submitOrderGuide_SP
    • atf.catalog_SP.submitRecordProducer_SP
    • atf.catalog_SP.orderCatalogItem_SP
    Quick start tests for Dashboards
    • atf.reporting.responsiveDashboard
    • atf.reporting.responsiveDashboardSharing
    REST 범주
    • atf.rest.assertResponseJSONPayloadIsValid
    • atf.rest.assertXMLResponsePayloadElement
    • atf.rest.assertResponseXMLPayloadIsWellFormed
    • atf.rest.assertStatusCodeName
    • atf.rest.sendRestRequest
    • atf.rest.assertStatusCode
    • atf.rest.assertResponseTime
    • atf.rest.assertJsonResponsePayloadElement
    • atf.rest.assertResponse헤더
    • atf.rest.assertResponsePayload
    서버 범주
    • atf.server.recordUpdate
    • atf.server.impersonate
    • atf.server.recordValidation
    • atf.server.createUser
    • atf.server.recordDelete
    • atf.server.log
    • atf.server.checkoutShoppingCart
    • atf.server.recordQuery
    • atf.server.recordInsert
    • atf.server.searchForCatalogItem
    • atf.server.replayRequestItem
    서비스 카탈로그 범주
    • atf.catalog.addItemToShoppingCart
    • atf.catalog.validatePriceAndRecurringPrice
    • atf.catalog.openRecordProducer
    • atf.catalog.setCatalogItemQuantity
    • atf.catalog.orderCatalogItem
    • atf.catalog.openCatalogItem
    • atf.catalog.setVariableValue
    • atf.catalog.submitRecordProducer
    • atf.catalog.validateVariableValue
    • atf.catalog.variableStateValidation
    양식 범주
    • atf.form.uiActionVisibility
    • atf.form.clickModalButton
    • atf.form.fieldValueValidation
    • atf.form.openNewForm
    • atf.form.openExistingRecord
    • atf.form.setFieldValue
    • atf.form.submitForm
    • atf.form.clickDeclarativeAction
    • atf.form.clickUIAction
    • atf.form.declarativeActionVisibility
    • atf.form.fieldStateValidation