KR102303182B1 - Automated Test Network System and Automated Test Method - Google Patents
Automated Test Network System and Automated Test Method Download PDFInfo
- Publication number
- KR102303182B1 KR102303182B1 KR1020200017380A KR20200017380A KR102303182B1 KR 102303182 B1 KR102303182 B1 KR 102303182B1 KR 1020200017380 A KR1020200017380 A KR 1020200017380A KR 20200017380 A KR20200017380 A KR 20200017380A KR 102303182 B1 KR102303182 B1 KR 102303182B1
- Authority
- KR
- South Korea
- Prior art keywords
- job
- worker
- scenario
- information
- machine
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H04L67/28—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
테스트 자동화 네트워크 시스템 및 테스트 자동화 방법이 제공된다. 상기 테스트 자동화 네트워크 시스템은 시나리오 정보를 입력받고, 상기 시나리오 정보에 기초한 유한 상태 기계(Finite State Machine, FSM) 시나리오를 생성하는 어플리케이션 서버로서, 상기 유한 상태 기계 시나리오는 적어도 하나의 스테이트(state)와, 상기 스테이트 간의 트랜지션과, 상기 스테이트에 임베딩되어 상기 트랜지션의 수행 조건으로 설정된 잡(job)을 포함하는 어플리케이션 서버, 상기 유한 상태 머신 시나리오를 수신하여 실행하는 머신 워커, 상기 시나리오 정보 및 상기 잡에 대응하는 잡 정보를 저장하고, 상기 시나리오 정보를 상기 어플리케이션 서버에 제공하고, 상기 잡 정보를 상기 머신 워커에 제공하는 데이터베이스, 상기 머신 워커로부터 상기 잡의 실행을 요청받고, 상기 잡을 처리하는 잡 워커 및 상기 잡 워커로부터 상기 잡에 대응하는 작업을 요청받아 응답하고, 외부 네트워크와 고립된 내부 네트워크를 포함한다.A test automation network system and test automation method are provided. The test automation network system is an application server that receives scenario information and generates a finite state machine (FSM) scenario based on the scenario information, wherein the finite state machine scenario includes at least one state; An application server including a transition between the states, a job embedded in the state and set as an execution condition of the transition, a machine worker receiving and executing the finite state machine scenario, the scenario information and corresponding to the job A database for storing job information, providing the scenario information to the application server, and providing the job information to the machine worker, a job worker requesting execution of the job from the machine worker, and processing the job, and the job It receives and responds to a request for a job corresponding to the job from a worker, and includes an external network and an isolated internal network.
Description
본 발명은 테스트 자동화 네트워크 시스템 및 테스트 자동화 방법에 관한 것이다. 구체적으로는, 유한 상태 기계(FSM; Finite State Machine)를 이용하여 자동으로 테스트를 수행하는 네트워크 시스템 및 방법에 관한 것이다.The present invention relates to a test automation network system and a test automation method. Specifically, it relates to a network system and method for automatically performing a test using a finite state machine (FSM).
HTTP(HyperText Transfer Protocol) 통신 입/출력을 제공하는 소프트웨어의 개발은 개발자의 단계별 작업 및 테스트를 통해서 이루어져 왔다. 즉, 개발하는 소프트웨어를 단계별로 모듈화 하고 모듈별로 테스트를 하여 결합하는 형식으로 소프트웨어가 개발되었다.The development of software that provides HTTP (HyperText Transfer Protocol) communication input/output has been accomplished through developer's step-by-step work and testing. In other words, software was developed in the form of modularizing the software to be developed step by step, testing each module and combining them.
이러한 개발 방식은 모듈의 결합에 따라 개별 모듈의 테스트에서 발견되지 않은 문제가 발생할 수 있어 완성된 소프트웨어의 최종 테스트 및 디버그(debug)가 필수적이고, 이에 따라 개별 모듈의 수정도 빈번하게 나타날 수 있다. 이에 따라서, 소프트웨어 개발의 비용 및 개발 기간이 늘어나고 불필요한 인적 리소스가 소모되는 불합리가 존재하였다. 따라서, 개발자가 손쉽게 소프트웨어를 제작하고 자동으로 테스트하여 디버그할 수 있는 시스템에 대한 니즈가 발생하고 있다.In this development method, problems that are not discovered in testing of individual modules may occur depending on the combination of modules, so final testing and debugging of the finished software is essential, and accordingly, modifications of individual modules may occur frequently. Accordingly, there is an irrationality in that the cost and development period of software development increase, and unnecessary human resources are consumed. Accordingly, there is a need for a system in which a developer can easily produce software and automatically test and debug the software.
본 발명이 해결하려는 과제는, 용이하게 HTTP 기반 소프트웨어를 테스트할 수 있는 테스트 자동화 네트워크 시스템을 제공하는 것이다.An object of the present invention is to provide a test automation network system that can easily test HTTP-based software.
본 발명이 해결하려는 다른 과제는, 용이하게 HTTP 기반 소프트웨어를 테스트할 수 있는 테스트 자동화 방법을 제공하는 것이다.Another problem to be solved by the present invention is to provide a test automation method that can easily test HTTP-based software.
본 발명이 해결하려는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다. The problems to be solved by the present invention are not limited to the above-mentioned problems, and other problems not mentioned will be clearly understood by those skilled in the art from the following description.
상기 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따른 테스트 자동화 네트워크 시스템은, 시나리오 정보를 입력받고, 상기 시나리오 정보에 기초한 유한 상태 기계(Finite State Machine, FSM) 시나리오를 생성하는 어플리케이션 서버로서, 상기 유한 상태 기계 시나리오는 적어도 하나의 스테이트(state)와, 상기 스테이트 간의 트랜지션과, 상기 스테이트에 임베딩되어 상기 트랜지션의 수행 조건으로 설정된 잡(job)을 포함하는 어플리케이션 서버, 상기 유한 상태 머신 시나리오를 수신하여 실행하는 머신 워커, 상기 시나리오 정보 및 상기 잡에 대응하는 잡 정보를 저장하고, 상기 시나리오 정보를 상기 어플리케이션 서버에 제공하고, 상기 잡 정보를 상기 머신 워커에 제공하는 데이터베이스, 상기 머신 워커로부터 상기 잡의 실행을 요청받고, 상기 잡을 처리하는 잡 워커 및 상기 잡 워커로부터 상기 잡에 대응하는 작업을 요청받아 응답하고, 외부 네트워크와 고립된 내부 네트워크를 포함한다.A test automation network system according to some embodiments of the present invention for solving the above problems is an application server that receives scenario information and generates a finite state machine (FSM) scenario based on the scenario information, wherein the A finite state machine scenario is an application server including at least one state, a transition between the states, and a job embedded in the state and set as a condition for performing the transition. a database for storing the executing machine worker, the scenario information and job information corresponding to the job, providing the scenario information to the application server, and providing the job information to the machine worker; It receives a request for execution, a job worker that processes the job, and receives and responds to a job corresponding to the job from the job worker, and includes an external network and an isolated internal network.
또한, 상기 잡은 API(Application Program Interface)를 요청하는 제1 잡과 웹페이지 URL(uniform resource locator)를 포함하는 제2 잡을 포함하고, 상기 잡 워커는 상기 제1 잡을 처리하는 제1 잡 워커와 상기 제2 잡을 처리하는 제2 잡 워커를 포함한다.In addition, the job includes a first job requesting an API (Application Program Interface) and a second job including a web page uniform resource locator (URL), wherein the job worker includes a first job worker for processing the first job and the and a second job worker for processing the second job.
또한, 상기 내부 네트워크는 내부 API 서버와 내부 웹 페이지를 포함하고, 상기 제1 잡 워커는 상기 제1 잡에 대응하여 상기 내부 API 서버에 상기 API를 요청하고, 상기 제2 잡 워커는 상기 제2 잡에 대응하여 상기 내부 웹 페이지에 상기 웹페이지 URL을 요청한다.In addition, the internal network includes an internal API server and an internal web page, the first job worker requests the API to the internal API server in response to the first job, and the second job worker is the second job worker The web page URL is requested from the internal web page in response to the job.
또한, 상기 외부 네트워크는 외부 API 서버와 외부 웹 페이지를 포함하고, 상기 제1 잡 워커는 상기 제1 잡에 대응하여 상기 외부 API 서버에 상기 API를 요청하고, 상기 제2 잡 워커는 상기 제2 잡에 대응하여 상기 외부 웹 페이지에 상기 웹페이지 URL을 요청한다.In addition, the external network includes an external API server and an external web page, the first job worker requests the API to the external API server in response to the first job, and the second job worker requests the API from the second job worker. The web page URL is requested from the external web page in response to the job.
또한, 상기 잡 워커와 상기 외부 네트워크를 연결하는 프록시 서버를 더 포함한다.In addition, it further includes a proxy server for connecting the job worker and the external network.
또한, 상기 외부 네트워크는 상기 어플리케이션 서버와 사용자를 연결해주는 웹 서버를 더 포함한다.In addition, the external network further includes a web server that connects the application server and the user.
또한, 상기 머신 워커로부터 로그를 수신하여 저장하고, 상기 로그는 상기 사용자에게 전송하는 로그 서버를 더 포함한다.The method further includes a log server that receives and stores a log from the machine worker and transmits the log to the user.
또한, 내부에 실행 스케쥴을 포함하고, 상기 실행 스케쥴에 따라 상기 어플리케이션 서버가 상기 유한 상태 기계 시나리오를 생성하게 지시하는 배치 시스템을 더 포함한다.The apparatus further includes a deployment system including an execution schedule therein, and instructing the application server to generate the finite state machine scenario according to the execution schedule.
또한, 상기 어플리케이션 서버가 상기 유한 상태 기계 시나리오를 생성하게 하고, 상기 어플리케이션 서버로부터 시나리오 결과를 수신하여 상기 유한 상태 기계 시나리오에 대응하는 서비스를 배포하는 배포 시스템을 더 포함한다.The method further includes a distribution system for causing the application server to generate the finite state machine scenario, and for receiving a scenario result from the application server and distributing a service corresponding to the finite state machine scenario.
또한, 상기 시나리오 정보는 다이어그램으로 편집된다.In addition, the scenario information is edited into a diagram.
상기 다른 과제를 해결하기위한 본 발명의 몇몇 실시예에 따른 테스트 자동화 방법은, 데이터베이스가 스테이트, 상기 스테이트 간의 트랜지션 및 상기 스테이트에 임베딩되어 상기 트랜지션의 수행 조건으로 설정된 잡을 포함하는 유한 상태 기계 시나리오에 대응하는 시나리오 정보를 수신하여 저장하고, 머신 워커가 상기 시나리오 정보에 따라 유한 상태 기계 시나리오를 실행하는 것을 포함하되, 상기 스테이트는 제1 스테이트 및 제2 스테이트를 포함하고, 상기 잡은 상기 제1 스테이트에 임베딩된 제1 잡을 포함하고, 상기 유한 상태 기계 시나리오를 실행하는 것은, 상기 제1 스테이트로 실행하고, 상기 제1 잡을 실행하고, 상기 제1 잡의 결과에 따라서 상기 제2 스테이트로 트랜지션하는 것을 포함하고, 상기 제1 잡을 실행하는 것은, 잡 워커가 외부 네트워크와 고립된 내부 네트워크에 제1 잡에 대응하는 요청을 전송하고, 상기 내부 네트워크가 상기 제1 잡에 대응하는 요청에 대해서 응답하는 것을 포함한다.A test automation method according to some embodiments of the present invention for solving the above other problem corresponds to a finite state machine scenario in which a database includes a state, a transition between the states, and a job embedded in the state and set as an execution condition of the transition receiving and storing scenario information, and a machine worker executing a finite state machine scenario according to the scenario information, wherein the state includes a first state and a second state, and the job is embedded in the first state and executing the finite state machine scenario includes executing to the first state, executing the first job, and transitioning to the second state according to a result of the first job; , executing the first job includes: a job worker sending a request corresponding to the first job to an internal network isolated from an external network, and the internal network responding to the request corresponding to the first job .
또한, 상기 시나리오 정보를 수신하는 것은, 상기 시나리오 정보가 다이어그램으로 편집되는 것을 포함하고, 상기 시나리오 정보가 다이어그램으로 편집되는 것은, 상기 스테이트에 대응하는 적어도 하나의 스테이트 다이어그램의 배치 정보가 저장되고, 상기 스테이트 다이어그램 사이에 상기 트랜지션에 대응하는 적어도 하나의 트랜지션 다이어그램의 배치 정보가 저장되고, 상기 스테이트 다이어그램에 상기 잡에 대응하는 잡 정보의 설정 정보가 저장되고, 상기 잡의 결과값에 따라 상기 트랜지션 중 어느 하나가 실행되는지에 대한 지정 정보가 저장되는 것을 포함한다.In addition, receiving the scenario information includes editing the scenario information into a diagram, and editing the scenario information into a diagram includes storing arrangement information of at least one state diagram corresponding to the state, and Arrangement information of at least one transition diagram corresponding to the transition is stored between state diagrams, and setting information of job information corresponding to the job is stored in the state diagram, and any one of the transitions according to the result value of the job is stored. and storing specific information as to whether one is executed.
또한, 상기 데이터베이스는 상기 잡 정보를 저장하고, 요청에 따라 제공한다.In addition, the database stores the job information and provides it according to a request.
또한, 상기 제1 잡은 API를 요청하는 잡이고, 상기 내부 네트워크는 내부 API 서버를 포함하고, 상기 잡 워커는 상기 내부 API 서버에 상기 API를 요청하는 제1 잡 워커를 포함한다.Also, the first job is a job that requests an API, the internal network includes an internal API server, and the job worker includes a first job worker that requests the API from the internal API server.
상기 제1 잡은 웹페이지 URL을 요청하는 잡이고, 상기 내부 네트워크는 내부 웹페이지를 포함하고, 상기 잡 워커는 상기 내부 웹페이지에 상기 웹페이지 URL을 요청하는 제2 잡 워커를 포함한다.The first job is a job that requests a webpage URL, the internal network includes an internal webpage, and the job worker includes a second job worker that requests the webpage URL from the internal webpage.
본 발명의 몇몇 실시예들에 따른 테스트 자동화 네트워크 시스템 및 테스트 자동화 방법은 다이어그램을 통해서 유한 상태 기계 시나리오를 편집하고 한번에 전체 시나리오를 테스트할 수 있어 소프트웨어 개발 과정에서 테스트에 소요되는 비용 및 개발 기간을 대폭 줄일 수 있다.The test automation network system and test automation method according to some embodiments of the present invention can edit a finite state machine scenario through a diagram and test the entire scenario at once, greatly reducing the cost and development period required for testing in the software development process. can be reduced
나아가, 본 발명의 몇몇 실시예들에 따른 테스트 자동화 네트워크 시스템 및 테스트 자동화 방법은 테스트에 따른 디버깅을 용이하게 할 수 있다.Furthermore, the test automation network system and test automation method according to some embodiments of the present invention may facilitate debugging according to the test.
상술한 내용과 더불어 본 발명의 구체적인 효과는 이하 발명을 실시하기 위한 구체적인 사항을 설명하면서 함께 기술한다.The specific effects of the present invention in addition to the above will be described together while describing specific details for carrying out the invention below.
도 1은 본 발명의 몇몇 실시예들에 따른 테스트 자동화 네트워크 시스템을 설명하기 위한 블록도이다.
도 2는 도 1의 테스트 자동화 시스템의 구조를 세부적으로 설명하기 위한 개념도이다.
도 3은 도 1의 네트워크 시스템의 구조를 세부적으로 설명하기 위한 개념도이다.
도 4 및 도 5는 본 발명의 몇몇 실시예들에 따른 테스트 자동화 방법을 설명하기 위한 시퀀스 다이어그램이다.
도 6은 본 발명의 일 실시예들에 따른 테스트 자동화 네트워크 시스템을 설명하기 위한 블록도이다.
도 7은 본 발명의 다른 실시예들에 따른 테스트 자동화 네트워크 시스템을 설명하기 위한 블록도이다.
도 8은 본 발명의 또 다른 실시예들에 따른 테스트 자동화 네트워크 시스템을 설명하기 위한 블록도이다.
도 9 내지 도 13은 본 발명의 몇몇 실시예들에 따른 테스트 자동화 방법의 시나리오 정보의 편집을 설명하기 위한 도면들이다.
도 14 내지 도 19는 본 발명의 몇몇 실시예들에 따른 테스트 자동화 방법의 시나리오 정보의 디버깅을 설명하기 위한 도면들이다.1 is a block diagram illustrating a test automation network system according to some embodiments of the present invention.
FIG. 2 is a conceptual diagram for explaining in detail the structure of the test automation system of FIG. 1 .
FIG. 3 is a conceptual diagram for explaining in detail the structure of the network system of FIG. 1 .
4 and 5 are sequence diagrams for explaining a test automation method according to some embodiments of the present invention.
6 is a block diagram illustrating a test automation network system according to an embodiment of the present invention.
7 is a block diagram illustrating a test automation network system according to other embodiments of the present invention.
8 is a block diagram illustrating a test automation network system according to another embodiment of the present invention.
9 to 13 are diagrams for explaining editing of scenario information in a test automation method according to some embodiments of the present invention.
14 to 19 are diagrams for explaining debugging of scenario information of a test automation method according to some embodiments of the present invention.
본 명세서 및 특허청구범위에서 사용된 용어나 단어는 일반적이거나 사전적인 의미로 한정하여 해석되어서는 아니된다. 발명자가 그 자신의 발명을 최선의 방법으로 설명하기 위해 용어나 단어의 개념을 정의할 수 있다는 원칙에 따라, 본 발명의 기술적 사상과 부합하는 의미와 개념으로 해석되어야 한다. 또한, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명이 실현되는 하나의 실시예에 불과하고, 본 발명의 기술적 사상을 전부 대변하는 것이 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 및 응용 가능한 예들이 있을 수 있음을 이해하여야 한다.The terms or words used in this specification and claims should not be construed as being limited to a general or dictionary meaning. In accordance with the principle that the inventor can define a term or concept of a word in order to best describe his invention, it should be interpreted as meaning and concept consistent with the technical idea of the present invention. In addition, the embodiments described in the present specification and the configurations shown in the drawings are only one embodiment in which the present invention is realized, and do not represent all the technical spirit of the present invention, so they can be substituted at the time of the present application. It should be understood that there may be various equivalents and modifications and applicable examples.
본 명세서 및 특허청구범위에서 사용된 제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. '및/또는' 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Terms such as first, second, A, B, etc. used in this specification and claims may be used to describe various elements, but the elements should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, a first component may be referred to as a second component, and similarly, a second component may also be referred to as a first component. The term 'and/or' includes a combination of a plurality of related listed items or any of a plurality of related listed items.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에서, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When a component is referred to as being “connected” or “connected” to another component, it is understood that the other component may be directly connected or connected to the other component, but other components may exist in between. it should be On the other hand, when it is said that a certain element is "directly connected" or "directly connected" to another element, it should be understood that no other element is present in the middle.
본 명세서 및 특허청구범위에서 사용된 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서 "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in this specification and claims are used only to describe specific embodiments, and are not intended to limit the present invention. The singular expression includes the plural expression unless the context clearly dictates otherwise. It should be understood that terms such as “comprise” or “have” in the present application do not preclude the possibility of addition or existence of features, numbers, steps, operations, components, parts, or combinations thereof described in the specification in advance. .
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해서 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs.
일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and should not be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present application. does not
또한, 본 발명의 각 실시예에 포함된 각 구성, 과정, 공정 또는 방법 등은 기술적으로 상호 간 모순되지 않는 범위 내에서 공유될 수 있다. In addition, each configuration, process, process, or method included in each embodiment of the present invention may be shared within a range that does not technically contradict each other.
이하에서, 도 1 내지 도 5를 참조하여, 본 발명의 몇몇 실시예에 따른 테스트 자동화 시스템 및 방법에 대해서 설명한다.Hereinafter, a test automation system and method according to some embodiments of the present invention will be described with reference to FIGS. 1 to 5 .
도 1은 본 발명의 몇몇 실시예들에 따른 테스트 자동화 네트워크 시스템을 설명하기 위한 블록도이고, 도 2는 도 1의 테스트 자동화 시스템의 구조를 세부적으로 설명하기 위한 개념도이다. 도 3은 도 1의 네트워크 시스템의 구조를 세부적으로 설명하기 위한 개념도이다. 도 4 및 도 5는 본 발명의 몇몇 실시예들에 따른 테스트 자동화 방법을 설명하기 위한 예시적인 시퀀스 다이어그램이다. 도 5는 도 4의 시퀀스 다이어그램에 연결된 하부 시퀀스 다이어그램이다.1 is a block diagram for explaining a test automation network system according to some embodiments of the present invention, and FIG. 2 is a conceptual diagram for explaining the structure of the test automation system of FIG. 1 in detail. FIG. 3 is a conceptual diagram for explaining in detail the structure of the network system of FIG. 1 . 4 and 5 are exemplary sequence diagrams for explaining a test automation method according to some embodiments of the present invention. Fig. 5 is a lower sequence diagram connected to the sequence diagram of Fig. 4;
도 1을 참조하면, 본 발명의 몇몇 실시예들에 따른 테스트 자동화 네트워크 시스템은 테스트 자동화 시스템(100), 내부 네트워크(200), 외부 네트워크(300) 및 프록시 서버(400)를 포함한다.Referring to FIG. 1 , a test automation network system according to some embodiments of the present invention includes a
테스트 자동화 시스템(100)은 외부 네트워크(300)로부터 시나리오 정보를 입력받을 수 있다. 시나리오 정보는 유한 상태 기계(Finite State Machine, FSM)에 기반한 시나리오에 대한 정보일 수 있다. 상기 시나리오 정보는 HTTP(HyperText Transfer Protocol) 통신 입/출력을 제공하는 소프트웨어의 실행에 대한 시나리오 정보일 수 있다. The
테스트 자동화 시스템(100)은 상기 시나리오 정보에 따라 소프트웨어의 테스트를 자동으로 수행할 수 있다. 테스트 자동화 시스템(100)은 내부 네트워크(200)에 요청을 주고 응답을 받아 테스트를 수행할 수 있다. 또한, 테스트 자동화 시스템(100)은 외부 네트워크(300)에 요청을 주고 응답을 받아 테스트를 수행할 수도 있다. 테스트 자동화 시스템(100)은 외부 네트워크(300)에 접속할 때 프록시 서버(400)를 거쳐 접속할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.The
내부 네트워크(200)는 외부 네트워크(300)로부터 고립된 네트워크일 수 있다. 내부 네트워크(200)는 테스트 자동화 시스템(100)과 서로 연결될 수 있다. 내부 네트워크(200)는 테스트 자동화 시스템(100)으로부터 요청을 수신하고, 상기 요청에 대한 응답을 테스트 자동화 시스템(100)에 제공할 수 있다.The
외부 네트워크(300)는 일반적인 인터넷 망을 포함하는 네트워크일 수 있다. 외부 네트워크(300)는 내부 네트워크(200)와는 연결되지 않을 수 있다. 외부 네트워크(300)는 원칙적으로 테스트 자동화 시스템(100)과도 분리될 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.The
외부 네트워크(300)는 프록시 서버(400)를 통해서 테스트 자동화 시스템(100)과 접속될 수 있다. 또는 외부 네트워크(300)는 테스트 자동화 시스템(100)과 제한적인 방식으로 연결될 수 있다.The
외부 네트워크(300)는 테스트 자동화 시스템(100)에 편집된 시나리오 정보를 전달할 수 있다. 테스트 자동화 시스템(100)은 외부 네트워크(300)에서 수신한 시나리오 정보를 저장할 수 있다. 또한, 테스트 자동화 시스템(100)은 상기 시나리오 정보에 대응하는 유한 상태 기계 시나리오를 생성하여 실행할 수 있다. 테스트 자동화 시스템(100)은 유한 상태 기계 시나리오의 실행에 따라 외부 네트워크(300)에 요청을 전송하고 그에 대한 응답을 수신할 수 있다. 이때, 테스트 자동화 시스템(100)은 프록시 서버(400)를 통해서 외부 네트워크(300)와 접속할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.The
프록시 서버(400)는 테스트 자동화 시스템(100)과 외부 네트워크(300) 사이를 간접적으로 접속시켜 주는 서버일 수 있다. 이를 통해서, 본 실시예들에 따른 테스트 자동화 네트워크 시스템은 외부 네트워크(300)와 테스트 자동화 시스템(100)의 망 분리를 도모할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다. 즉, 망 분리가 필요없는 경우에는 프록시 서버(400)가 생략되고 테스트 자동화 시스템(100)과 외부 네트워크(300)가 서로 직접 접속할 수도 있다.The
도 1 및 도 2를 참조하면, 테스트 자동화 시스템(100)은 어플리케이션 서버(110), 머신 워커(120), 제1 잡 워커(130), 제2 잡 워커(140), 데이터베이스(160) 및 로그 서버(150)를 포함할 수 있다.1 and 2 , the
어플리케이션 서버(110)는 외부 네트워크(300)로부터 시나리오 정보를 수신할 수 있다. 어플리케이션 서버(110)는 상기 시나리오 정보를 데이터베이스(160)에 저장할 수 있다. 어플리케이션 서버(110)는 데이터베이스(160)로부터 다시 상기 시나리오 정보를 불러올 수 있다. 어플리케이션 서버(110)는 상기 시나리오 정보에 대응하는 유한 상태 기계 시나리오를 생성할 수 있다. 어플리케이션 서버(110)는 머신 워커(120)로 유한 상태 기계 시나리오를 전송할 수 있다. The
상기 유한 상태 기계 시나리오는 스테이트(state), 트랜지션(transition) 및 잡(job)을 포함할 수 있다. 상기 스테이트는 유한한 상태를 의미하고, 상기 트랜지션은 스테이트 사이의 이동을 의미할 수 있다. 상기 잡은 상기 스테이트에서 수행되어 상기 트랜지션의 수행 조건이될 수 있다. 이에 대해서는 추후에 더 자세히 설명한다.The finite state machine scenario may include a state, a transition, and a job. The state may mean a finite state, and the transition may mean movement between states. The job may be performed in the state to be a condition for performing the transition. This will be described in more detail later.
머신 워커(120)는 어플리케이션 서버(110)로부터 상기 유한 상태 기계 시나리오를 수신할 수 있다. 머신 워커(120)는 상기 유한 상태 기계 시나리오를 실행할 수 있다. 머신 워커(120)는 상기 잡에 대한 잡 정보를 데이터베이스(160)로부터 수신할 수 있다. 머신 워커(120)는 상기 유한 상태 기계 시나리오에 포함된 잡의 실행을 제1 잡 워커(130) 및 제2 잡 워커(140)에 요청할 수 있다. 머신 워커(120)는 상기 유한 상태 기계 시나리오의 실행에 대한 로그(log)를 로그 서버(150)로 전송할 수 있다.The
상기 잡은 제1 잡 및 제2 잡을 포함할 수 있다. 제1 잡은 HTTP API(Application Program Interface)를 요청하는 잡일 수 있다. 제2 잡은 웹페이지 URL(Uniform Resource Locator)을 요청하는 잡일 수 있다. 상기 제1 잡 및 상기 제2 잡은 상기 잡의 일부 예시에 불과하고, 상기 잡은 상기 제1 잡 및 제2 잡 외에도 다양한 잡을 포함할 수 있다.The job may include a first job and a second job. The first job may be a job that requests an HTTP API (Application Program Interface). The second job may be a job that requests a web page Uniform Resource Locator (URL). The first job and the second job are only some examples of the job, and the job may include various jobs in addition to the first job and the second job.
제1 잡 워커(130)는 상기 제1 잡을 실행할 수 있다. 즉, 제1 잡 워커는 API를 내부 네트워크(200) 또는 외부 네트워크(300)에 요청할 수 있다. 제1 잡 워커(130)는 요청한 API에 대한 응답을 받아 머신 워커로 전송할 수 있다. 제1 잡 워커(130)가 내부 네트워크(200)에 요청을 전송하고, 응답을 받는 경우에는 직접적으로 내부 네트워크(200)와 접속할 수 있다. 다만, 제1 잡 워커(130)가 외부 네트워크(300)에 요청을 전송하고, 응답을 받는 경우에는 프록시 서버(400)를 통해 외부 네트워크(300)와 간접적으로 접속할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다. 제1 잡 워커(130)는 예를 들어 HTTP API일 수 있다.The
제2 잡 워커(140)는 상기 제2 잡을 실행할 수 있다. 즉, 제2 잡 워커는 웹페이지 URL을 내부 네트워크(200) 또는 외부 네트워크(300)에 요청할 수 있다. 제2 잡 워커(140)는 요청한 웹페이지 URL에 대한 응답을 받아 머신 워커로 전송할 수 있다. 즉, 제2 잡 워커(140)가 웹페이지에 접속하고 사전에 정의된 사용자동작(클릭, 텍스트입력, 폼전송 등)을 수행하여 그 결과를 머신 워커로 반환할 수 있다. 제2 잡 워커(140)가 내부 네트워크(200)에 요청을 전송하고, 응답을 받는 경우에는 직접적으로 내부 네트워크(200)와 접속할 수 있다. 다만, 제2 잡 워커(140)가 외부 네트워크(300)에 요청을 전송하고, 응답을 받는 경우에는 프록시 서버(400)를 통해 외부 네트워크(300)와 간접적으로 접속할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다. 제2 잡 워커(140)는 예를 들어 웹 클라이언트일 수 있다.The
로그 서버(150)는 머신 워커(120)가 수행하는 상기 유한 상태 기계 시나리오의 실행에 따른 로그를 저장할 수 있다. 로그 서버(150)는 상기 로그를 사용자에게 제공할 수 있다. 즉, 로그 서버(150)는 외부 네트워크(300)를 통해서 로그를 제공할 수 있다. 이때, 상기 로그는 머신 워커(120) 및 어플리케이션 서버(110)를 통해서 외부 네트워크(300)로 제공될 수도 있고, 어플리케이션 서버(110)를 통해서 외부 네트워크(300)로 제공될 수도 있다. 또는 로그 서버(150)에서 직접 외부 네트워크(300)로 제공될 수도 있다.The
데이터베이스(160)는 어플리케이션 서버(110)로부터 시나리오 정보를 수신할 수 있다. 데이터베이스(160)는 수신한 상기 시나리오 정보를 저장할 수 있다. 데이터베이스(160)는 어플리케이션 서버(110)가 요청할 때 저장된 시나리오 정보를 제공할 수 있다.The
데이터베이스(160)는 상기 잡 정보를 저장할 수 있다. 데이터베이스(160)는 상기 잡 정보를 머신 워커(120)가 요청할 때 제공할 수 있다. 데이터베이스(160)는 상기 잡 정보를 미리 저장하고 있을 수 있다.The
도 3을 참조하면, 내부 네트워크(200)는 내부 API 서버(210) 및 내부 웹 페이지(220)를 포함할 수 있다.Referring to FIG. 3 , the
내부 API 서버(210)는 제1 잡 워커(130)로부터 API를 요청받을 수 있다. 내부 API 서버(210)는 제1 잡 워커(130)에게 요청받은 API를 응답할 수 있다. 내부 웹 페이지(220)는 제2 잡 워커(140)로부터 웹 페이지 URL을 요청받을 수 있다. 내부 웹 페이지(220)는 제2 잡 워커(140)에게 요청받은 웹페이지 URL을 응답할 수 있다.The
외부 네트워크(300)는 외부 웹 페이지(310), 외부 API 서버(320), 웹 서버(330) 및 사용자 장치(340)를 포함할 수 있다.The
외부 API 서버(320)는 제1 잡 워커(130)로부터 API를 요청받을 수 있다. 외부 API 서버(320)는 제1 잡 워커(130)에게 요청받은 API를 응답할 수 있다. 외부 웹 페이지(310)는 제2 잡 워커(140)로부터 웹 페이지 URL을 요청받을 수 있다. 외부 웹 페이지(310)는 제2 잡 워커(140)에게 요청받은 웹페이지 URL을 응답할 수 있다.The
제1 잡 워커(130) 및 제2 잡 워커(140)는 각각 직접 내부 API 서버(210) 및 내부 웹 페이지(220)와 접속하여 상기 잡을 수행할 수 있다. 반면에, 제1 잡 워커(130) 및 제2 잡 워커(140)는 외부 네트워크(300)와 접속하는 경우 프록시 서버(400)를 통해서 각각 외부 API 서버(320) 및 외부 웹 페이지(310)와 접속하여 상기 잡을 수행할 수 있다.The
사용자 장치(340)는 시나리오 정보를 편집할 수 있다. 사용자 장치(340)는 사용자에 의해서 구동되어 시나리오 정보를 편집할 수 있다. 사용자 장치(340)가 편집한 시나리오 정보는 웹 서버(330)를 통해서 테스트 자동화 시스템(100)으로 전송될 수 있다. 구체적으로, 상기 시나리오 정보는 웹 서버(330)를 통해서 어플리케이션 서버(110)로 전송될 수 있다. 사용자 장치(340)는 예를 들어, 컴퓨터, 노트북, 넷북, PDA, MP4 플레이어와 같은 각종 통신 단말기, 또는 스마트폰, 스마트 노트, 태블릿 PC, 스마트카메라, 스마트 TV와 같은 각종 스마트 기기 중 어느 하나일 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.The
웹 서버(330)는 사용자 장치(340)가 편집한 시나리오 정보를 수신하여 테스트 자동화 시스템(100)의 어플리케이션 서버(110)로 전송할 수 있다. 상기 시나리오 정보는 어플리케이션 서버(110)를 거쳐 데이터베이스(160)에 저장될 수 있다.The
이하, 도 1 내지 도 5를 참조하여, 본 발명의 몇몇 실시예들에 따른 테스트 자동화 방법을 설명한다. Hereinafter, a test automation method according to some embodiments of the present invention will be described with reference to FIGS. 1 to 5 .
도 3 내지 도 5를 참조하면, 사용자 장치(340)는 어플리케이션 서버(110)에 시나리오를 실행해달라고 요청한다<1>. 이에 따라서, 어플리케이션 서버(110)는 데이터베이스(160)에 저장된 여러 시나리오 정보 중 어느 하나를 선택할 수 있다<2>. 이때, 데이터베이스(160)에 저장된 시나리오 정보는 사용자 장치(340)에 의해서 미리 편집되어서 저장된 시나리오 정보일 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다. 선택된 시나리오 정보는 어플리케이션 서버(110)로 로드될 수 있다.3 to 5 , the
이어서, 어플리케이션 서버(110)는 선택된 시나리오 정보에 대해서 실행을 데이터베이스(160)에 지시한다<3>. 이에 대해서 데이터베이스(160)는 실행 ID(Run ID)를 부여하여 어플리케이션 서버(110)에 회신할 수 있다<4>.Then, the
이어서, 어플리케이션 서버(110)는 상기 시나리오 정보에 대응하는 유한 상태 기계 시나리오를 생성한다<5>. 이때, 생성된 유한 상태 기계 시나리오는 적어도 하나의 스테이트와 상기 스테이스 사이의 트랜지션과, 상기 스테이트에 임베딩된 잡을 포함할 수 있다.Then, the
어플리케이션 서버(110)는 사용자 장치(340)로 실행 시작의 로그를 푸시(push)할 수 있다<6>. 이때, 상기 실행 시작의 로그는 어플리케이션 서버(110)에서 생성되어 사용자 장치(340)로 바로 푸시될 수도 있고, 로그 서버(150)로 저장되었다가 로그 서버(150)에 의해서 사용자 장치(340)로 전송될 수도 있다. 로그 서버(150)가 상기 실행 시작의 로그를 푸시하는 것은 바로 웹 서버(330)를 통해서 사용자 장치(340)로 푸시하거나, 머신 워커 및/또는 어플리케이션 서버를 통해서 푸시하는 것을 포함할 수 있다.The
어플리케이션 서버(110)는 머신 워커(120)에 유한 상태 기계 시나리오의 실행을 요청한다<7>. 이러한 요청은 상기 로그 푸시<6>와 동시에 수행될 수 있다. 이때, 상기 "동시"는 시간적 및 순서적으로 유사한 시점을 포함할 수 있다. 즉, 작업 <6> 및 <7>은 작업 <5>와 작업 <8> 사이에 이루어질 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.The
이어서, 머신 워커(120)는 유한 상태 기계 시나리오를 초기 스테이트로 실행한다<8>. 이때, 초기 스테이트는 상기 유한 상태 기계 시나리오가 처음 시작될 때 수행될 수 있도록 미리 지정될 수 있다. 이어서, 초기 스테이트에 임베딩된 잡을 수행하여 트랜지션이 수행될 수 있다. 이에 따라 사용자 장치(340)로 트랜지션에 대한 로그가 푸시될 수 있다<9>.Then, the
상기 트랜지션에 따라 머신 워커(120)는 상기 유한 상태 기계 시나리오의 새로운 스테이트로 진입할 수 있다<10>. 이에 따라 사용자 장치(340)로 스테이트 진입에 대한 로그가 푸시될 수 있다<11>.According to the transition, the
머신 워커(120)는 데이터베이스(160)에게 스테이트에 임베딩된 잡 정보를 요청할 수 있다<12>. 데이터베이스(160)는 머신 워커(120)의 요청에 응답하여 잡 정보를 회신할 수 있다<13>. 이에 따라 사용자 장치(340)로 잡의 수행이 시작되었다는 로그가 푸시될 수 있다<14>. 작업 <14>와 동시에 머신 워커(120)는 제1 잡 워커(130)에 잡을 수행할 것을 요청할 수 있다<15>. 이때, 작업 <15>는 현재 스테이트에 임베딩된 잡이 API를 요청하는 제1 잡인 경우를 예시로 들은 것이고, 본 실시예가 이에 제한되는 것은 아니다. 즉, 현재 스테이트에 임베딩된 잡이 API를 요청하는 제1 잡이 아닌 경우, 머신 워커(120)는 다른 방식으로 잡을 수행할 수 있다.The
제1 잡 워커(130)는 내부 API 서버(210)에 HTTP API를 요청할 수 있다<16>. 이에 대하여, 내부 API 서버(210)는 제1 잡 워커(130)에 HTTP API를 회신할 수 있다<17>. 제1 잡 워커(130)는 수신한 결과를 머신 워커(120)로 전송할 수 있다. 머신 워커(120)는 이를 통해 잡을 종료할 수 있다. 이에 따라 사용자 장치(340)로 잡의 종료에 대한 로그가 푸시될 수 있다<19>. 이어서, 머신 워커(120)는 잡의 결과를 테스트할 수 있다<20>. 머신 워커(120)는 상기 잡의 결과에 따라서 어떤 동작을 할지 결정할 수 있다. 이때, "동작"이란 트랜지션 및 시나리오 종료 등을 포함할 수 있다. 이에 따라 사용자 장치(340)로 잡의 결과에 따른 동작에 대한 로그가 푸시될 수 있다<21>.The
이어서, 머신 워커(120)는 상기 동작으로 트랜지션을 할 수 있다<22>. 물론, 이는 하나의 예시에 불과하고, 상기 동작으로 시나리오 종료도 가능할 수 있다. 이에 따라 사용자 장치(340)로 트랜지션에 대한 로그가 푸시될 수 있다<23>.Then, the
상기 트랜지션에 따라 머신 워커(120)는 상기 유한 상태 기계 시나리오의 새로운 스테이트로 진입할 수 있다<24>. 이에 따라 사용자 장치(340)로 스테이트 진입에 대한 로그가 푸시될 수 있다<25>.According to the transition, the
머신 워커(120)는 데이터베이스(160)에게 스테이트에 임베딩된 잡 정보를 요청할 수 있다<26>. 데이터베이스(160)는 머신 워커(120)의 요청에 응답하여 잡 정보를 회신할 수 있다<27>. 이에 따라 사용자 장치(340)로 잡의 수행이 시작되었다는 로그가 푸시될 수 있다<28>. 작업 <28>과 동시에 머신 워커(120)는 제2 잡 워커(140)에 잡을 수행할 것을 요청할 수 있다<29>. 이때, 작업 <29>는 현재 스테이트에 임베딩된 잡이 웹 페이지 URL을 요청하는 제2 잡인 경우를 예시로 들은 것이고, 본 실시예가 이에 제한되는 것은 아니다. 즉, 현재 스테이트에 임베딩된 잡이 웹 페이지 URL을 요청하는 제2 잡이 아닌 경우, 머신 워커(120)는 다른 방식으로 잡을 수행할 수 있다.The
제2 잡 워커(140)는 헤드리스 브라우저(Headless browser)를 실행할 수 있다<30>. 제2 잡 워커(140)는 헤드리스 브라우저를 통해 웹페이지URL에 접속하고 사전에 정의된 스크립트에 의해 사용자동작(클릭, 텍스트입력, 폼전송 등) 을 수행하여 그 결과를 머신 워커로 반환할 수 있다. 헤드리스 브라우저는 그래픽 사용자 인터페이스가 없는 브라우저일 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다. 즉, 제2 잡 워커(140)가 헤드리스 브라우저가 아닌 일반 브라우저를 실행할 수도 있다.The
제2 잡 워커(140)는 내부 웹 페이지(220)에 URL을 로드하고, 스크립트를 실행할 수 있다<31>. 이에 대하여, 내부 웹 페이지(220)는 제2 잡 워커(140)에 리스폰스를 회신할 수 있다<32>. 이 때, 제2 잡 워커(140)는 웹 페이지에 접속하고 사전에 정의된 사용자동작(클릭, 텍스트입력, 폼 전송 등)을 수행하여 그 결과를 반환할 수 있다. 제2 잡 워커(140)는 결과를 머신 워커(120)로 전송할 수 있다. 머신 워커(120)는 이를 통해 잡을 종료할 수 있다. 이에 따라 사용자 장치(340)로 잡의 종료에 대한 로그가 푸시될 수 있다<34>. 이에 따라서, 유한 상태 기계 시나리오가 종료될 수 있다.The
이에 따라, 머신 워커(120)는 종료된 결과를 어플리케이션 서버(110)로 전송할 수 있다<35>. 이에 따라 사용자 장치(340)로 유한 상태 기계 시나리오의 종료에 대한 로그가 푸시될 수 있다<36>.Accordingly, the
본 실시예에 따른 테스트 자동화 방법 및 테스트 자동화 네트워크 시스템은 기존의 단계별 소프트웨어 테스트와 달리 한번에 소프트웨어의 전체적인 수행을 자동으로 테스트할 수 있다. 따라서, 기존에 소프트웨어 개발에 걸리던 시간을 대폭 줄일 수 있고, 디버그를 용이하게 수행할 수 있다.The test automation method and test automation network system according to the present embodiment can automatically test the overall performance of software at once, unlike the existing step-by-step software test. Accordingly, it is possible to significantly reduce the time required for software development and to easily perform debugging.
나아가, 기존의 단계별 테스트에서 문제가 없더라도 전체적인 테스트에서 문제가 발생할 수 있는 상황을 미리 방지할 수 있어 소프트웨어 개발에 투자되는 비용과 시간을 최소화할 수 있다.Furthermore, even if there is no problem in the existing step-by-step test, a situation in which a problem may occur in the overall test can be prevented in advance, thereby minimizing the cost and time invested in software development.
이하, 도 6을 참조하여 본 발명의 몇몇 실시예들에 따른 테스트 자동화 네트워크 시스템을 설명한다.Hereinafter, a test automation network system according to some embodiments of the present invention will be described with reference to FIG. 6 .
도 6은 본 발명의 일 실시예들에 따른 테스트 자동화 네트워크 시스템을 설명하기 위한 블록도이다.6 is a block diagram illustrating a test automation network system according to an embodiment of the present invention.
도 6을 참조하면, 본 발명의 일 실시예에 따른 테스트 자동화 네트워크 시스템의 테스트 자동화 시스템(100)은 배치(Batch) 시스템(170)을 더 포함할 수 있다.Referring to FIG. 6 , the
배치 시스템(170)은 내부에 스케쥴을 저장할 수 있다. 배치 시스템(170)은 내부에 저장된 스케쥴에 따라서 어플리케이션 서버(110)가 유한 상태 기계 시나리오를 생성하도록 지시할 수 있다. 이때, 유한 상태 기계 시나리오는 데이터베이스(160)에 식별되는 ID를 가지고 저장되어 있을 수 있다. 이에 따라서, 배치 시스템(170)은 특정 ID를 가지는 유한 상태 기계 시나리오를 어떤 스케쥴로 실행시킬지를 내장하고 있다가 상기 스케쥴에 맞추어 어플리케이션 서버(110)에 유한 상태 기계 시나리오의 실행을 지시할 수 있다.
예를 들어, 카드의 매입과 정산과 같이 정기적으로 수행되어야하는 유한 상태 기계 시나리오의 경우 매일 또는 주 1회와 같이 정기적인 스케쥴에 따라서 테스트가 수행될 수 있다.For example, in the case of a finite state machine scenario that needs to be performed regularly, such as purchase and settlement of cards, the test may be performed according to a regular schedule, such as daily or once a week.
본 실시예는 이에 따라서, 테스트를 원하는 사용자가 일일이 시점에 따른 테스트를 지시하지 않더라도 자동으로 소프트웨어를 테스트할 수 있어 테스트의 용이성이 크게 향상될 수 있다.Accordingly, in the present embodiment, the software can be automatically tested even if the user who wants the test does not individually instruct the test according to the time point, so that the ease of testing can be greatly improved.
이하, 도 7을 참조하여 본 발명의 몇몇 실시예들에 따른 테스트 자동화 네트워크 시스템을 설명한다.Hereinafter, a test automation network system according to some embodiments of the present invention will be described with reference to FIG. 7 .
도 7은 본 발명의 다른 실시예들에 따른 테스트 자동화 네트워크 시스템을 설명하기 위한 블록도이다.7 is a block diagram illustrating a test automation network system according to other embodiments of the present invention.
도 7을 참조하면, 본 발명의 다른 실시예들에 따른 테스트 자동화 네트워크 시스템은 배포 시스템(500)을 더 포함할 수 있다.Referring to FIG. 7 , the test automation network system according to other embodiments of the present invention may further include a
배포 시스템(500)은 개발이 완료된 소프트웨어를 실제 외부 네트워크(300)에 배포하는 시스템일 수 있다. 배포 시스템(500)은 소프트웨어의 배포 전에 테스트 자동화 시스템(100)을 통해서 소프트웨어의 테스트를 완료하고 배포할 수 있다.The
구체적으로, 배포 시스템(500)은 테스트 자동화 시스템(100)의 어플리케이션 서버(110)와 접속할 수 있다. 배포 시스템(500)은 배포하려는 소프트웨어에 대응하는 유한 상태 기계 시나리오의 ID가 무엇인지 미리 저장할 수 있다. 배포 시스템(500)은 테스트 자동화 시스템(100)의 어플리케이션 서버(110)에 배포하려는 소프트웨어에 대응하는 유한 상태 기계 시나리오의 ID를 전달하고, 그 유한 상태 기계 시나리오의 실행을 지시할 수 있다.Specifically, the
어플리케이션 서버(110)는 배포 시스템(500)으로부터 전달받은 유한 상태 기계 시나리오의 ID의 유한 상태 기계 시나리오를 생성하고 머신 워커(120)에게 상기 유한 상태 기계 시나리오를 실행하게 할 수 있다.The
어플리케이션 서버(110)는 실행된 유한 상태 기계 시나리오의 결과값을 도출하여 배포 시스템(500)으로 전송할 수 있다. 배포 시스템(500)은 상기 유한 상태 기계 시나리오의 결과값을 통해서 배포하려는 소프트웨어의 정상 동작 여부를 확인할 수 있다. 배포 시스템(500)은, 만일 배포하려는 소프트웨어가 정상적으로 동작한다고 판단하는 경우 배포를 수행하고, 만일 배포하려는 소프트웨어가 비정상적으로 동작한다고 판단하는 경우 배포를 수행하지 않을 수 있다.The
본 실시예는 배포되기 전의 소프트웨어의 정상 동작 여부를 자동으로 체크할 수 있다. 따라서, 배포된 후의 소프트웨어의 문제가 발생하는 것을 방지할 수 있고, 소프트웨어의 안정적인 동작을 보장할 수 있다.According to the present embodiment, it is possible to automatically check whether the software before distribution is operating normally. Accordingly, it is possible to prevent problems of software after distribution and to ensure stable operation of the software.
이하, 도 8을 참조하여 본 발명의 몇몇 실시예들에 따른 테스트 자동화 네트워크 시스템을 설명한다.Hereinafter, a test automation network system according to some embodiments of the present invention will be described with reference to FIG. 8 .
도 8은 본 발명의 또 다른 실시예들에 따른 테스트 자동화 네트워크 시스템을 설명하기 위한 블록도이다.8 is a block diagram illustrating a test automation network system according to another embodiment of the present invention.
도 8을 참조하면, 본 발명의 또 다른 실시예들에 따른 테스트 자동화 네트워크 시스템은 배치 시스템(170) 및 배포 시스템(500)을 더 포함할 수 있다.Referring to FIG. 8 , a test automation network system according to another embodiment of the present invention may further include a
배치 시스템(170)은 내부에 저장된 스케쥴에 따라서 어플리케이션 서버(110)가 유한 상태 기계 시나리오를 생성하도록 지시할 수 있다. 또한, 배포 시스템(500)은 테스트 자동화 시스템(100)의 어플리케이션 서버(110)에 배포하려는 소프트웨어에 대응하는 유한 상태 기계 시나리오의 ID를 전달하고, 그 유한 상태 기계 시나리오의 실행을 지시할 수 있다.The
이에 따라서, 어플리케이션 서버(110)는 배포 시스템(500) 및 배치 시스템(170)이 지시하는 시점에 따라서 자동으로 유한 상태 기계 시나리오의 테스트를 수행할 수 있다. 이에 따라서, 본 실시예는 테스트의 적절한 실행시점을 자동으로 결정하여 테스트를 수행할 수 있다.Accordingly, the
이하, 도 3 내지 도 5 및 도 9 내지 도 19를 참조하여, 본 발명의 몇몇 실시예들에 따른 테스트 자동화 방법의 시나리오 정보 편집을 설명한다.Hereinafter, scenario information editing of a test automation method according to some embodiments of the present invention will be described with reference to FIGS. 3 to 5 and 9 to 19 .
도 9 내지 도 13은 본 발명의 몇몇 실시예들에 따른 테스트 자동화 방법의 시나리오 정보의 편집을 설명하기 위한 도면들이고, 도 14 내지 도 19는 본 발명의 몇몇 실시예들에 따른 테스트 자동화 방법의 시나리오 정보의 디버깅을 설명하기 위한 도면들이다.9 to 13 are diagrams for explaining editing of scenario information of a test automation method according to some embodiments of the present invention, and FIGS. 14 to 19 are scenarios of a test automation method according to some embodiments of the present invention. These are drawings for explaining debugging of information.
상기 시나리오 정보의 편집은 사용자 장치(340)를 통해서 수행될 수 있다. 사용자는 사용자 장치(340)를 통해서 용이하게 다이어그램으로 상기 시나리오 정보를 편집할 수 있다.The editing of the scenario information may be performed through the
도 9는 시나리오 정보 편집 화면을 나타낼 수 있다. 시나리오 정보 편집 화면은 그래프 영역(Rg) 및 상태 관리 영역(Rm)을 포함할 수 있다. 9 may show a screen for editing scenario information. The scenario information editing screen may include a graph area Rg and a state management area Rm.
그래프 영역(Rg)은 다이어그램으로 스테이트 및 트랜지션이 도시되는 영역일 수 있다. 도 9에서는 예시적으로 제1 스테이트 다이어그램(S1)이 표시될 수 있다. 시나리오 정보에서는 스테이트 간의 상대적인 관계가 중요하므로 제1 스테이트 다이어그램(S1)은 편집이 용이하게 사용자가 드래그 앤드 드롭 등의 방식으로 자유롭게 배치할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다. 그래프 영역(Rg)에 배치되는 다이어그램 정보는 사용자 장치(340)에 저장될 수 있다. The graph area Rg may be an area in which states and transitions are shown in a diagram. In FIG. 9 , a first state diagram S1 may be displayed by way of example. Since the relative relationship between states is important in scenario information, the first state diagram S1 can be easily edited by a user and freely arranged by a method such as drag and drop. However, the present embodiment is not limited thereto. Diagram information arranged in the graph area Rg may be stored in the
상태 관리 영역(Rm)은 상기 스테이트의 이름, 설명, 초기 상태 지정 여부 액션 등을 설정할 수 있는 인터페이스 영역일 수 있다. 이때, 상기 액션은 상기 스테이트 진입시 수행할 동작을 의미할 수 있다.The state management area Rm may be an interface area in which the name, description, and action of whether to designate an initial state and the like of the state can be set. In this case, the action may mean an action to be performed when entering the state.
도 9 및 도 10을 참조하면, 시나리오 정보는 적어도 하나의 스테이트와 트랜지션으로 표시될 수 있다. 예를 들어, 도 10에서는 제1 스테이트 다이어그램(S1) 및 제2 스테이트 다이어그램(S2)은 제1 트랜지션 다이어그램(T1)에 의해서 연결되고, 제1 스테이트 다이어그램(S1) 및 제3 스테이트 다이어그램(S3)은 제2 트랜지션 다이어그램(T2)에 의해서 연결될 수 있다. 제1 트랜지션 다이어그램(T1) 및 제2 트랜지션 다이어그램(T2)은 방향성을 가지는 화살표로 표시되어 스테이트 간의 트랜지션 방향을 직관적으로 알 수 있을 수 있다. 도 10에서는 예시적으로 2개의 트랜지션 다이어그램과 3개의 스테이트 다이어그램을 도시하였으나, 본 실시예의 시나리오 정보는 이에 제한되지 않는다. 즉, 트랜지션 다이어그램 및 스테이트 다이어그램의 개수 및 구현 형태는 얼마든지 달라질 수 있다.9 and 10 , scenario information may be displayed as at least one state and transition. For example, in FIG. 10 , the first state diagram S1 and the second state diagram S2 are connected by the first transition diagram T1, and the first state diagram S1 and the third state diagram S3 are connected. may be connected by the second transition diagram T2. The first transition diagram T1 and the second transition diagram T2 are indicated by arrows having a direction, so that a transition direction between states can be intuitively known. Although FIG. 10 illustrates two transition diagrams and three state diagrams by way of example, the scenario information of the present embodiment is not limited thereto. That is, the number and implementation form of the transition diagram and the state diagram may vary freely.
제1 스테이트 다이어그램(S1)이 선택되면 액션에 관해서 지정할 수 있는 액션 버튼(AB)이 상태 관리 영역(Rm)에 표시될 수 있다. 만약, 액션이 "없음"이 선택되면 제1 스테이트 다이어그램(S1)에 대응하는 스테이트에서는 아무런 동작 없이 다음 스테이트로 트랜지션이 수행될 수 있다. 액션 중 "Transition" 버튼은 현재 제1 스테이트 다이어그램(S1)에서 연결된 트랜지션 다이어그램들을 보여줄 수 있다. 즉, 도 10에서는 제1 트랜지션 다이어그램(T1) 및 제2 트랜지션 다이어그램(T2)이 드랍 박스 형태로 선택 가능하게 표시될 수 있다. 단, 본 실시예는 이에 제한되는 것은 아니고 얼마든지 다른 형태의 인터페이스로 구현될 수 있다.When the first state diagram S1 is selected, an action button AB capable of designating an action may be displayed in the state management area Rm. If “none” is selected as the action, the transition to the next state may be performed without any action in the state corresponding to the first state diagram S1 . During the action, the "Transition" button may show transition diagrams connected in the current first state diagram S1. That is, in FIG. 10 , the first transition diagram T1 and the second transition diagram T2 may be selectively displayed in the form of drop boxes. However, the present embodiment is not limited thereto and may be implemented as an interface of any other form.
도 10 및 도 11을 참조하면, 액션 버튼(AB)에서 "Transition" 버튼의 선택이 완료되면 "Job" 버튼을 사용하여 제1 스테이트 다이어그램(S1)에 잡 정보를 임베딩할 수 있다. 액션 버튼(AB)에서 "Job" 버튼을 선택하는 경우 잡 로드 버튼(JLB)이 표시될 수 있다. 잡 로드 버튼(JLB)은 스테이트에 잡 정보를 임베딩하기 위한 버튼일 수 있다.10 and 11 , when the selection of the “Transition” button in the action button AB is completed, the job information may be embedded in the first state diagram S1 by using the “Job” button. When the "Job" button is selected from the action button AB, the job load button JLB may be displayed. The job load button JLB may be a button for embedding job information in a state.
도 3 및 도 12를 참조하면, 잡 로드 버튼(JLB)을 선택하면 잡 로드 창(JLW)이 화면에 생성될 수 있다. 잡 로드 창(JLW)은 설정할 수 있는 잡 정보의 리스트를 제시하고 이중 적어도 하나를 선택할 수 있게할 수 있다. 이를 통해서 스테이트 다이어그램에 잡 정보가 설정될 수 있다. 사용자 장치(340)는 스테이트 다이어그램에 설정된 잡 정보의 설정 정보를 저장할 수 있다. 상기 잡 정보는 테스트 자동화 시스템(100)의 데이터베이스(160)에 저장되어 있을 수 있다. 사용자 장치(340)의 조작에 따라서, 데이터베이스(160)는 머신 워커(120), 어플리케이션 서버(110) 및/또는 웹 서버(330)를 거쳐서 상기 잡 정보를 사용자 장치(340)에 제공할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.3 and 12 , when the job load button JLB is selected, the job load window JLW may be generated on the screen. The job load window JLW may present a list of settable job information and select at least one of them. Through this, job information can be set in the state diagram. The
도 3 및 도 13을 참조하면, 잡 정보가 설정되면 잡 결과 핸들러(JRH)가 표시될 수 있다. 잡 결과 핸들러(JRH)에는 조건식으로 잡의 결과값이 어떤 조건일 때 어떤 트랜지션 다이어그램에 대응하는 트랜지션이 수행될지를 기재할 수 있다. 사용자 장치(340)는 잡 결과 핸들러의 지정 정보를 저장할 수 있다. 이때, 상기 조건식은 결과 값의 HTTP 응답 상태코드(statusCode)의 값, HTTP 응답 헤더(headers)의 종류 및 HTTP 응답 본문(body)의 HTML 본문 또는 JSON, XML 등으로 구성된 API응답값 등을 조건식의 변수로 사용할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.3 and 13 , when job information is set, a job result handler JRH may be displayed. In the job result handler JRH, a transition corresponding to which transition diagram is to be performed may be described as a conditional expression under which condition for the job result value. The
도 3 내지 도 5 및 도 14를 참조하면, 편집된 시나리오 정보를 사용자 장치(340)가 실행하면 어플리케이션 서버(110)가 상기 시나리오 정보에 대응하는 유한 상태 기계 시나리오를 생성하여 상술한 방식으로 테스트를 수행한다.3 to 5 and 14 , when the
이때, 사용자 장치(340)의 화면에는 제1 로그 표시창(EL1)이 표시될 수 있다. 제1 로그 표시창(EL1)에는 로그 서버(150)에서 푸시된 로그(도 4 및 도 5의 작업 <6>, <9>, <11>, <14>, <19>, <21>, <23>, <25>, <28>, <34> 및 <38>)가 표시될 수 있다.In this case, the first log display window EL1 may be displayed on the screen of the
도 15를 참조하면, 제1 로그 표시창(EL1)은 제2 로그 표시창(EL2)과 같이 확대되어 표시될 수도 있다. 제1 로그 표시창(EL1) 및 제2 로그 표시창(EL2)에 표시된 로그는 날짜, 로그 타입, 메시지 및 추가 정보를 포함할 수 있다. 로그 타입은 예를 들어, [EnterState], [Transit], [Job], [JobResult] 및 [Error]와 같은 형태로 표시될 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.Referring to FIG. 15 , the first log display window EL1 may be enlarged and displayed like the second log display window EL2 . The log displayed on the first log display window EL1 and the second log display window EL2 may include a date, a log type, a message, and additional information. The log type may be displayed in the form of, for example, [EnterState], [Transit], [Job], [JobResult], and [Error]. However, the present embodiment is not limited thereto.
도 14 내지 도 16을 참조하면, 제1 로그 표시창(EL1) 및 제2 로그 표시창(EL2)은 객체 정보 검사기 아이콘(OII)을 포함할 수 있다. 14 to 16 , the first log display window EL1 and the second log display window EL2 may include an object information checker icon OII.
도 17을 참조하면, 사용자가 객체 정보 검사기 아이콘(OII)을 선택하는 경우 객체 정보 검사기가 실행될 수 있다. 상기 객체 정보 검사기가 실행되면 객체 정보 검사창(OIW)이 화면에 표시될 수 있다. 객체 정보 검사창(OIW)에서는 좀더 상세한 확인이 가능할 수 있다. 객체 정보 검사창(OIW)은 상세 정보가 JSON(JavaScript Object Notation)과 같은 객체 포맷을 사용할 경우, 다양한 기능을 제공할 수 있다. 예를 들어, 객체 정보 검사창(OIW)은 사용자가 읽기 쉽도록 구조화(JSON Prettify), 상세정보의 키 네임(Key Name)을 입력하여 특정값을 반환(Console) 및 JSON 영역에서 알고자 하는 부분을 클릭하는 경우, 해당 값에 접근하는 키 네임을 추적하여 하단 콘솔(Console)에 표시(Key Finder)하는 등의 기능을 제공할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.Referring to FIG. 17 , when the user selects the object information checker icon OII, the object information checker may be executed. When the object information inspector is executed, an object information inspection window (OIW) may be displayed on the screen. In the object information inspection window (OIW), more detailed confirmation may be possible. The object information inspection window (OIW) may provide various functions when detailed information uses an object format such as JavaScript Object Notation (JSON). For example, the object information inspection window (OIW) is structured so that the user can read it easily (JSON Prettify), and returns a specific value by entering the key name of detailed information (Console), and the part you want to know in the JSON area. If you click , you can provide functions such as tracking the key name that accesses the corresponding value and displaying it on the lower console (Key Finder). However, the present embodiment is not limited thereto.
도 3 및 도 18을 참조하면, 시나리오 정보에 대응하는 유한 상태 기계 시나리오의 실행이 끝난 후, 사용자 장치(340)는 히스토리창(HW)을 생성할 수 있다.3 and 18 , after the execution of the finite state machine scenario corresponding to the scenario information is finished, the
사용자 장치(340)는 해당 실행의 결과와 로그 기록 및 로그 분석을 히스토리창(HW)에서 조회할 수 있다. The
도 19를 참조하면, 히스토리창(HW)에서는 개별 실행을 선택함에 따라 제3 로그 표시창(EL3)을 표시할 수 있다. 제3 로그 표시창(EL3)은 제1 로그 표시창(EL1) 및 제2 로그 표시창(EL2)과 동일한 정보를 표시할 수 있다.Referring to FIG. 19 , the third log display window EL3 may be displayed in the history window HW as individual execution is selected. The third log display window EL3 may display the same information as the first log display window EL1 and the second log display window EL2 .
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.Although the embodiments of the present invention have been described above with reference to the accompanying drawings, those of ordinary skill in the art to which the present invention pertains can realize that the present invention can be embodied in other specific forms without changing its technical spirit or essential features. you will be able to understand Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive.
110: 어플리케이션 서버
120: 머신 워커
150: 로그 서버
160: 데이터베이스110: application server
120: machine worker
150: log server
160: database
Claims (15)
상기 유한 상태 머신 시나리오를 수신하여 실행하는 머신 워커;
상기 시나리오 정보 및 상기 잡에 대응하는 잡 정보를 저장하고, 상기 시나리오 정보를 상기 어플리케이션 서버에 제공하고, 상기 잡 정보를 상기 머신 워커에 제공하는 데이터베이스;
상기 머신 워커로부터 상기 잡의 실행을 요청받고, 상기 잡을 처리하는 잡 워커; 및
상기 잡 워커로부터 상기 잡에 대응하는 작업을 요청받아 응답하고, 외부 네트워크와 고립된 내부 네트워크를 포함하되,
상기 잡은 API(Application Program Interface)를 요청하는 제1 잡과 웹페이지 URL(uniform resource locator)를 포함하는 제2 잡을 포함하고,
상기 잡 워커는 상기 제1 잡을 처리하는 제1 잡 워커와 상기 제2 잡을 처리하는 제2 잡 워커를 포함하고,
상기 내부 네트워크는 내부 API 서버와 내부 웹 페이지를 포함하고,
상기 제1 잡 워커는 상기 제1 잡에 대응하여 상기 내부 API 서버에 상기 API를 요청하고,
상기 제2 잡 워커는 상기 제2 잡에 대응하여 상기 내부 웹 페이지에 상기 웹페이지 URL을 요청하고, 사전에 정의된 스크립트에 의해서 미리 설정된 사용자 동작을 수행하는 것을 포함하는 테스트 자동화 네트워크 시스템.
An application server that receives scenario information and generates a finite state machine (FSM) scenario based on the scenario information, wherein the finite state machine scenario includes at least one state and a transition between the states; an application server embedded in the state and including a job set as a condition for performing the transition;
a machine worker receiving and executing the finite state machine scenario;
a database storing the scenario information and job information corresponding to the job, providing the scenario information to the application server, and providing the job information to the machine worker;
a job worker receiving a request for execution of the job from the machine worker and processing the job; and
Including an internal network isolated from an external network and responding to a request for a job corresponding to the job from the job worker,
The job includes a first job requesting an API (Application Program Interface) and a second job including a web page uniform resource locator (URL),
The job worker includes a first job worker for processing the first job and a second job worker for processing the second job,
The internal network includes an internal API server and an internal web page,
The first job worker requests the API to the internal API server in response to the first job,
and the second job worker requests the web page URL to the internal web page in response to the second job, and performs a preset user operation according to a predefined script.
상기 외부 네트워크는 외부 API 서버와 외부 웹 페이지를 포함하고,
상기 제1 잡 워커는 상기 제1 잡에 대응하여 상기 외부 API 서버에 상기 API를 요청하고,
상기 제2 잡 워커는 상기 제2 잡에 대응하여 상기 외부 웹 페이지에 상기 웹페이지 URL을 요청하는 테스트 자동화 네트워크 시스템.
According to claim 1,
The external network includes an external API server and an external web page,
The first job worker requests the API to the external API server in response to the first job,
The second job worker is a test automation network system for requesting the web page URL to the external web page in response to the second job.
상기 잡 워커와 상기 외부 네트워크를 연결하는 프록시 서버를 더 포함하는 테스트 자동화 네트워크 시스템.
5. The method of claim 4,
The test automation network system further comprising a proxy server connecting the job worker and the external network.
상기 외부 네트워크는 상기 어플리케이션 서버와 사용자를 연결해주는 웹 서버를 더 포함하는 테스트 자동화 네트워크 시스템.
According to claim 1,
The external network test automation network system further comprising a web server that connects the application server and the user.
상기 머신 워커로부터 로그를 수신하여 저장하고, 상기 로그를 상기 사용자에게 전송하는 로그 서버를 더 포함하는 테스트 자동화 네트워크 시스템.
7. The method of claim 6,
The test automation network system further comprising a log server for receiving and storing the log from the machine worker, and transmitting the log to the user.
내부에 실행 스케쥴을 포함하고, 상기 실행 스케쥴에 따라 상기 어플리케이션 서버가 상기 유한 상태 기계 시나리오를 생성하게 지시하는 배치 시스템을 더 포함하는 테스트 자동화 네트워크 시스템.
According to claim 1,
A test automation network system, further comprising: a deployment system including an execution schedule therein, and instructing the application server to generate the finite state machine scenario according to the execution schedule.
상기 어플리케이션 서버가 상기 유한 상태 기계 시나리오를 생성하게 하고, 상기 어플리케이션 서버로부터 시나리오 결과를 수신하여 상기 유한 상태 기계 시나리오에 대응하는 서비스를 배포하는 배포 시스템을 더 포함하는 테스트 자동화 네트워크 시스템.
According to claim 1,
and a distribution system for causing the application server to generate the finite state machine scenario, and for receiving a scenario result from the application server and distributing a service corresponding to the finite state machine scenario.
상기 시나리오 정보는 다이어그램으로 편집되는 테스트 자동화 네트워크 시스템.
According to claim 1,
The scenario information is edited into a diagram of a test automation network system.
머신 워커가 상기 시나리오 정보에 따라 유한 상태 기계 시나리오를 실행하는 것을 포함하되,
상기 스테이트는 제1 스테이트 및 제2 스테이트를 포함하고,
상기 잡은 상기 제1 스테이트에 임베딩된 제1 잡 및 제2 잡 중 어느 하나를 포함하고,
상기 유한 상태 기계 시나리오를 실행하는 것은,
상기 제1 스테이트로 실행하고,
상기 제1 잡 및 제2 잡 중 어느 하나를 실행하고,
상기 제1 잡 및 제2 잡 중 어느 하나의 결과에 따라서 상기 제2 스테이트로 트랜지션하는 것을 포함하고,
상기 제1 잡 및 제2 잡 중 어느 하나를 실행하는 것은,
잡 워커가 외부 네트워크와 고립된 내부 네트워크에 제1 잡 및 제2 잡 중 어느 하나에 대응하는 요청을 전송하고,
상기 내부 네트워크가 상기 제1 잡 및 제2 잡 중 어느 하나에 대응하는 요청에 대해서 응답하는 것을 포함하되,
상기 제1 잡은 API를 요청하는 잡이고,
상기 내부 네트워크는 내부 API 서버를 포함하고,
상기 잡 워커는 상기 내부 API 서버에 상기 API를 요청하는 제1 잡 워커를 포함하고,
상기 제2 잡은 웹페이지 URL을 요청하는 잡이고,
상기 내부 네트워크는 내부 웹페이지를 포함하고,
상기 잡 워커는 상기 내부 웹페이지에 상기 웹페이지 URL을 요청하고, 사전에 정의된 스크립트에 의해서 미리 설정된 사용자 동작을 수행하는 제2 잡 워커를 포함하는 테스트 자동화 방법.
A database receives and stores scenario information corresponding to a finite state machine scenario including a state, a transition between the states, and a job embedded in the state and set as an execution condition of the transition,
a machine worker executing a finite state machine scenario according to the scenario information;
The state includes a first state and a second state,
The job includes any one of a first job and a second job embedded in the first state,
Executing the finite state machine scenario comprises:
run into the first state,
executing any one of the first job and the second job;
Transitioning to the second state according to a result of any one of the first job and the second job,
Executing any one of the first job and the second job comprises:
The job worker transmits a request corresponding to any one of the first job and the second job to the internal network isolated from the external network,
Comprising that the internal network responds to a request corresponding to any one of the first job and the second job,
The first job is a job that requests an API,
The internal network includes an internal API server,
The job worker includes a first job worker that requests the API to the internal API server,
The second job is a job that requests a web page URL,
The internal network includes an internal web page,
and the job worker requests the web page URL to the internal web page and includes a second job worker that performs a preset user action according to a predefined script.
상기 시나리오 정보를 수신하는 것은,
상기 시나리오 정보가 다이어그램으로 편집되는 것을 포함하고,
상기 시나리오 정보가 다이어그램으로 편집되는 것은,
상기 스테이트에 대응하는 적어도 하나의 스테이트 다이어그램의 배치 정보가 저장되고,
상기 스테이트 다이어그램 사이에 상기 트랜지션에 대응하는 적어도 하나의 트랜지션 다이어그램의 배치 정보가 저장되고,
상기 스테이트 다이어그램에 상기 잡에 대응하는 잡 정보의 설정 정보가 저장되고,
상기 잡의 결과값에 따라 상기 트랜지션 중 어느 하나가 실행되는지에 대한 지정 정보가 저장되는 것을 포함하는 테스트 자동화 방법.
12. The method of claim 11,
Receiving the scenario information includes:
Comprising that the scenario information is edited into a diagram,
When the scenario information is edited into a diagram,
arrangement information of at least one state diagram corresponding to the state is stored;
arrangement information of at least one transition diagram corresponding to the transition is stored between the state diagrams;
setting information of job information corresponding to the job is stored in the state diagram;
and storing designation information on which one of the transitions is executed according to a result value of the job.
상기 데이터베이스는 상기 잡 정보를 저장하고, 요청에 따라 제공하는 테스트 자동화 방법.
13. The method of claim 12,
The database stores the job information and provides a test automation method according to a request.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200017380A KR102303182B1 (en) | 2020-02-13 | 2020-02-13 | Automated Test Network System and Automated Test Method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200017380A KR102303182B1 (en) | 2020-02-13 | 2020-02-13 | Automated Test Network System and Automated Test Method |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210103074A KR20210103074A (en) | 2021-08-23 |
KR102303182B1 true KR102303182B1 (en) | 2021-09-16 |
Family
ID=77499291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200017380A KR102303182B1 (en) | 2020-02-13 | 2020-02-13 | Automated Test Network System and Automated Test Method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102303182B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102694524B1 (en) * | 2024-03-11 | 2024-08-12 | 주식회사 티스퀘어 | Automatic testing device for providing user interface and operating method thereof |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101691245B1 (en) * | 2012-05-11 | 2017-01-09 | 삼성에스디에스 주식회사 | System and method for web service monitoring |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100080965A (en) * | 2009-01-04 | 2010-07-14 | 남종철 | Test-bed system and test method of communication and broadcasting convergence technology |
-
2020
- 2020-02-13 KR KR1020200017380A patent/KR102303182B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101691245B1 (en) * | 2012-05-11 | 2017-01-09 | 삼성에스디에스 주식회사 | System and method for web service monitoring |
Non-Patent Citations (2)
Title |
---|
논문1(2010.11.30)* |
논문2(2010.04.30)* |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102694524B1 (en) * | 2024-03-11 | 2024-08-12 | 주식회사 티스퀘어 | Automatic testing device for providing user interface and operating method thereof |
Also Published As
Publication number | Publication date |
---|---|
KR20210103074A (en) | 2021-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11163671B2 (en) | Automatically executing stateless transactions with data dependency in test cases | |
KR102220127B1 (en) | Method and apparatus for customized software development kit (sdk) generation | |
US9323647B2 (en) | Request-based activation of debugging and tracing | |
US10545857B2 (en) | Controlling executions of synchronous and/or non-synchronous operations with asynchronous messages | |
US20140380281A1 (en) | Automated software testing | |
US20050132337A1 (en) | Trace management in client-server applications | |
US9432469B2 (en) | Automated server controlled client-side logging | |
EP3104279B1 (en) | Testing interactive network systems | |
CN108694120B (en) | Method and device for testing service component | |
WO2019075845A1 (en) | Construction method and device for link call relationship, computer device and storage medium | |
Rattanapoka et al. | An MQTT-based IoT cloud platform with flow design by Node-RED | |
US20100162113A1 (en) | Operation support system, operation support method, and operation support program | |
KR102303182B1 (en) | Automated Test Network System and Automated Test Method | |
CN111245917B (en) | Katalon-based work order entry device and implementation method thereof | |
CN110874278A (en) | Embedding method of external system, workflow system, device and storage medium | |
CN113138915A (en) | Page testing method, device and medium | |
CN113064987B (en) | Data processing method, apparatus, electronic device, medium, and program product | |
US7509413B2 (en) | Tool for displaying JMX monitoring information | |
US20170031884A1 (en) | Automated dependency management based on page components | |
CN114092169A (en) | Ordering test method and system and equipment for executing ordering test method | |
US9043384B2 (en) | Testing of client systems consuming contractual services on different server systems | |
CN112835804B (en) | Test case processing method, device, electronic equipment and medium | |
US8874971B1 (en) | Detecting and reporting problems in a distributed resource computing system | |
CN115378792B (en) | Alarm processing method, device and storage medium | |
US10496455B1 (en) | Enabling synchronous editable signals in process modeling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right |