Sseung
셀레니움을 활용하여 테스트를 위한 여러 사용자 로그인 자동화하기
시스템을 테스트할 때 여러 사용자로 권한을 테스트하기 위해 반복적인 로그인이 필요한 경우가 있습니다.
본 포스팅에서는 셀레니움을 활용하여 반복적으로 여러 사용자를 로그인 시킨 브라우저 환경을 준비하는 작업이 필요한 경우 해당 작업을 자동화 하는 방법을 소개합니다.
셀레니움이란 # 셀레니움(Selenium)은 웹 애플리케이션의 자동화 테스트를 위한 오픈 소스 도구로, 브라우저와의 상호작용을 자동화하여 웹 페이지를 테스트하고 제어할 수 있습니다.
Selenium은 여러 프로그래밍 언어를 지원하며, 다양한 브라우저에서 실행될 수 있는 테스트 스크립트를 작성할 수 있습니다.
워크플로우(순서도) 테스트케이스 추출 시도(3) - 깊이 우선 탐색(DFS, Depth-First Search) 알고리즘적용 예제2
지난 글에 이어 이번 포스팅에서는 지난 포스팅에서 만든 워크플로우를 토대로 깊이 우선 탐색(DFS)를 적용하여 워크플로우의 테스트 케이스를 추출해보도록 하겠습니다.
워크플로우 테스트 케이스 추출 # 깊이 우선 탐색(DFS) 알고리즘을 코드적으로 구현하기 위해서는 그래프 클래스, 그래프를 구성하는 노드 클래스, 실질적인 검색을 수행하는 DFS 클래스가 필요합니다.
각각의 필요한 클래스를 작성하여 최종적으로는 워크플로우에 적용해보도록 하겠습니다.
노드 클래스 # 노드 클래스를 선언해보겠습니다.
워크플로우 테스트케이스 추출 시도(2) - 깊이 우선 탐색(DFS, Depth-First Search) 알고리즘적용 예제
지난 글에 이어 이번 포스팅에서는 간단한 비지니스 로직으로 워크플로우를 작성보도록 하겠습니다.
워크플로우 예시 # 비지니스 로직 예시 # 워크플로우 예제를 만들기 위한 비지니스 로직 예시를 들어보겠습니다.
A사는 문서결재 업무를 워크플로우 기능을 이용해 구성하고 업무를 자동화하려 합니다.
A사의 문서결재 업무는 다음과 같은 조건이 충족되어야합니다.
문서는 작업중, 결재중, 승인됨, 재작업 의 상태를 가질 수 있습니다. 문서 결재가 모두 승인되면 문서는 승인됨 상태가 됩니다. 문서 결재가 진행중일 때 문서는 결재중 상태가 됩니다. 문서는 결재가 진행되기 전에는 작업중 상태입니다. 문서 결재가 반려되면 문서는 재작업을 통해 다시 문서 결재를 시작해야한다. 이 경우 상신자에게 재작업 임무가 주어지며 해당 재작업 임무를 완료하면 문서 결재가 다시 시작된다. 상신자에게 재작업 임무가 떨어질 때부터 재작업 임무를 완료하기 전까지 문서는 재작업 상태입니다. 문서 결재는 총 2개 단계의 승인자를 거쳐야하며 1단계는 매니저, 2단계는 최종 승인자로 구성되어있습니다. 문서 결재가 시작되면 1단계 승인, 2단계 승인을 거쳐 모든 단계에서 통과하면 문서 결재가 성공적으로 종료되며 승인됨 상태가 됩니다. 문서 결재를 올리는 상신자는 1단계 및 2단계에 어떤 승인자에게 문서를 결재받을것인지 직접 지정합니다. 문서 결재는 1단계 승인 진행 후 2단계 승인이 진행되는 선형적 방식으로 이루어집니다. 1단계의 매니저로부터 문서결재를 승인받지 못하면 해당 문서는 2단계인 최종 승인자에게 도달하지 못합니다. 1단계에 해당하는 매니저는 여러명이 될 수 있으며, 여러 매니저에게 승인을 받아야하는경우 모든 매니저에게 승인을 받아야 1단계 승인단계를 통과할 수 있습니다. 한사람의 매니저라도 해당 결재를 반려하면 1단계 승인을 받을 수 없습니다. 2단계에 해당하는 최종 승인자는 여러명이 될 수 있으며, 모든 최종 승인자에게 승인을 받아야 2단계 승인이 통과하고 문서 결재가 최종 승인되게 됩니다. 간단한 문서의 경우 2단계 승인자를 지정하지 않아도 되는 경우가 있습니다. 이 경우 1단계 승인자에 지정한 매니저에게만 승인받으면 문서 결재가 최종 승인됩니다. 모든 결재 프로세스에서 1단계 승인자에 할당된 매니저가 최소 한명 이상이 있다고 가정합니다. 워크플로우 작성 예시 # 위의 비지니스 로직 예시와 같이 문서 결재 시 고려해야하는 사항들을 글로 적으면 단계가 매우 복잡해 보입니다. 해당 비지니스를 순수 개발로 작성하고자 한다면 그 복잡도와 분량은 이루 말할 수 없을 것이며, 향후 수정, 개선내용이 있을 때 유지보수 측면에서 부담스러운 결과가 생길 수 있습니다.
워크플로우(순서도) 테스트케이스 추출 시도(1) - 깊이 우선 탐색(DFS, Depth-First Search) 알고리즘
본 포스팅은 실제 프로젝트에서 워크플로우의 테스트케이스 작성 시 겪게된 어려움을 해결하기 위해 시도해 봤던 내용을 공유하는 내용입니다. 시도해본 내용이니만큼 더 효율적인 디자인 패턴이나 방식이 있을 수 있을 수 있습니다.
워크플로우를 통해 복잡한 비즈니스 로직을 도식화 하는 경우에, 해당 워크플로우를 검증하기 위한 테스트케이스 추출과정은 복잡도가 올라감에 따라 수작업으로 처리하기에는 정확도와 효율이 매우 떨어지는 경향이 있습니다.
깊이 우선 탐색(DFS) 알고리즘을 통해 복잡한 워크플로우의 모든 경우의 수를 추출하고 해당 워크플로우를 검증하기 위한 테스트케이스를 확인하기 위한 방법으로 DFS 알고리즘을 활용하는 방법을 시도하게 되었습니다.
Bing의 AI 챗인 Open AI GPT-4 기반 COPILOT AI 를 사용하여 Highchart 예제 쉽게 만드는 방법
Innofactory는 자사의 Innofactory Highchart Extension을 자체적으로 개발하여 Thingworx 화면에서에서 기본 위젯보다 다채로운 차트를 표현할 수 있습니다.
본 포스팅에서는 Thingworx 데모를 위한 Highchart 구성 시 AI를 사용하여 간단하게 Highchart 데모 생성시간을 단축시킬 수 있는 방법을 제시합니다.
Bing의 Copilot이란? # Copilot은 Microsoft에서 제공하는 AI 서비스로, Bing 검색 인덱스에서만 퍼블릭 웹의 데이터에 접근하여 사용자에게 정보를 제공합니다. 기존의 Chat GPT와의 가장 큰 차이는 퍼블릭 웹 데이터에 접근이 가능하다는 것이며, Open AI의 Chat GPT-4 서비스에서도 웹 데이터에 접근하는 기능을 제공하기 시작했지만, 기존 GPT-3.5와 요금 정책이 달라져 요금 충전 후 답변 토큰 개수에 따라 요금을 차감하는 방식에서 월 구독제로 변경해야만 GPT-4를 사용할 수 있습니다. 이 때문에 횟수제한은 있지만 무료로 사용가능한 Copilot이 Chat GPT와의 차별성을 가지게 되었습니다.