[OutSystem] BDD Framework에 추가된 태그 기능

BDDFrame Work는 OutSystems 쓰기 단위 테스트를 위한 도구입니다.
그동안 리액티브 웹 앱/모바일 앱의 센터 액션은 테스트가 불가능했으나 BDD Framework Client Side가 출시되면서 개선됐다.
 
 → Client Action용 BDD Framework 자습서
이 추가와 함께 BDD 프레임워크에도 해시태그 기능이 추가됐는데 그 동작(Client Side에도 이 기능이 있음)을 확인해 보겠습니다.

환경을 확인하다


Personal Environment(Version 11.12.0 (Build 30002))
Service Studio (Version 11.11.3)
BDDFramework(Version 1.4.0)

문서


Forge 웹 사이트에서
BDDFramework - Documentation의 Tagging 항목입니다.

표식


테스트 용례에 테스트를 표시하고 실행할 때
  • 특정 태그가 있는 태그만 실행
  • 특정 태그가 없는 태그만 실행
  • 그렇게 말해도 돼.

    태그 만들기


    우선, 테스트 용례에 사용되는 라벨을 정의합니다.
    BDD Framework에서 제공하는 사용자 정의 응용 프로그램 템플릿으로 만든 테스트 모듈에는 기본적으로 "Template Tag"이라는 Block이 있습니다.

    이것은 템플릿이기 때문에 복사해서 사용해야 한다.
    레이블에 대해서는 전용 UI Flow를 준비하는 것이 좋습니다.
  • UI Flow에서 템플릿 복사
  • 블록 이름(예: SlowTest Tag)
  • 블록의 로컬 변수인 "TagLabel"의 Default Value에 레이블 이름(예: SlowTest)
  • 을 지정합니다.
    위 절차에 따라 3개의 라벨을 만들었다.

    테스트 용례에 라벨을 붙이다


    태그는 테스트 키트(화면) 단위가 아니라 테스트 용례(BDD cenario Block) 단위로 부여됩니다.
    BDDDScenario의 Placeholder로'Tags'를 추가해 제작된 태그 블록을 드래그 앤 드롭 형태로 구성했다.
    다음은 Category1과 SlowTest의 태그가 부여된 곳입니다.이렇게 하면 하나의 테스트 용례에 여러 개의 탭을 추가할 수도 있다.

    특정 태그가 있는 경우에만 실행


    다음은 문서는 없지만 API의 구현을 읽고 확인하는 방법입니다.
    테스트 화면의 URL에 대한 질의열에 "ExecuteTag=태그 이름"을 추가하는 데 필요한 수량입니다.
    예: https:///호스트/모듈 이름/화면 이름.aspx?_ts=637597807487161022&ExecuteTag=Category2
    탭이 지정되지 않은 테스트 용례는 다음과 같습니다. 'Skipped' 이고 전체는 회색입니다.

    특정 태그가 있는 경우 실행 안 함


    이것도 API의 실현에서 시작된 것이다.
    SkipTag = 마크업 서명을 지정합니다.
    ExecuteTag도 마찬가지로 여러 개를 지정하려면 '& SkipTag = Category 2 & SkipTag = SlowTest' 처럼 '&' 로 여러 탭을 연결해서 지정하고 배열합니다.

    API V2


    BDD Framework 버전이 업그레이드됨에 따라 테스트 키트(화면)를 실행하는 REST API'RunTestSuite'버전 2가 추가됐다.

    IF의 차이점



    추가 Input Parameter:Tag 지정


    이 매개 변수는 헤더가 전달하는 지정입니다. HTTP 요청을 보낼 때 헤더에 전달하십시오.
    SkipTags: 비실행 객체의 레이블 이름입니다.여러 개 있을 때, 로 연결
    ExecuteTags: 실행 객체의 레이블 이름입니다.여러 개 있을 때, 로 연결
    지정한 두 탭은 실행할 때 모두 건너뜁니다.

    추가 Output Parameter:화면 테스트


    테스트 세트에 해당한다.
    돌아온 사람은 이름이 아니라 URL입니다.

    변경된 Output Parameter:테스트 용례 실행 결과


    V1의 IF에서는 개별 테스트 용례에 대해서만 실패 내용을 나타내는 Text형 값(List of Text 유형)이 실패 경우에만 반환됩니다.
    V2는 성패와 상관없이 각 테스트 용례의 상황을 나타내는 결과를 내놓는다.
    다만, 불협화음을 느끼는 부분도 있다.
    다음 TestScenario Results[1]의 테스트 용례는 건너뛰기 요청을 보내는 것입니다.
    따라서 IsSkipped:true, IsSuccess:false, Tags에 BDDDScennario에 놓인 라벨이 있는 것 같다고 가정한다.사실 모든 것은 거짓이고 진실하며 비어 있는 목록이다.

    사용 방법 연구


    주요 용도는 다음과 같습니다.
  • 실행 속도에 따라 라벨을 구분한다.예를 들어 느린 테스트는 중요한 순간에만 실행되고 개발 중인 TDD 테스트에서는 실행되지 않는다.이 경우 위 예에서 설명한 대로 "SlowTest"레이블
  • 을 준비합니다.
  • 환경에서 실행할 수 없는 테스트가 있을 때.예를 들어 개발 환경에서 연결 대상이 없는 외부 시스템은 실현할 수 없다.이럴 때 연결부에 있는 시스템 이름의 라벨 만들기
  • SmokeTest
  • 기다려봐.
    태그가 표준화되지 않으면 실행하기 어려울 수 있으므로 CoE 등을 통해 일반 부품으로 제공하기를 희망합니다.

    좋은 웹페이지 즐겨찾기