KR100967525B1 - Method and system for generating load only to the targeted system, not to the connected ones when doing performance, load, functional tests on the targeted system. - Google Patents
Method and system for generating load only to the targeted system, not to the connected ones when doing performance, load, functional tests on the targeted system. Download PDFInfo
- Publication number
- KR100967525B1 KR100967525B1 KR1020080053442A KR20080053442A KR100967525B1 KR 100967525 B1 KR100967525 B1 KR 100967525B1 KR 1020080053442 A KR1020080053442 A KR 1020080053442A KR 20080053442 A KR20080053442 A KR 20080053442A KR 100967525 B1 KR100967525 B1 KR 100967525B1
- Authority
- KR
- South Korea
- Prior art keywords
- value
- data
- load
- simulator
- test
- 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/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
Abstract
본 발명은 부하테스트, 성능테스트, 스트레스 테스트, 기능테스트를 포함하는 각종 테스트를 수행할 때, 테스트 대상 시스템이 데이터베이스 시스템, 외부 시스템 또는 특정 로직을 수행하는 별도의 시스템과 연동할 경우, 연동된 시스템들에게 부하를 발생시키지 않고, 오직 상기 테스트 대상 시스템에게만 부하를 발생시키면서 테스트를 수행할 수 있는 시스템 및 방법에 관한 것으로,The present invention, when performing a variety of tests, including load test, performance test, stress test, functional test, when the test target system is interlocked with a database system, an external system or a separate system that performs a specific logic, interlocked system The present invention relates to a system and a method for performing a test while generating a load only on the system under test, without generating a load on them.
더욱 상세하게는 자바로 구현된 테스트 대상 시스템이 데이터베이스 시스템 또는 외부 시스템 또는 특정 로직을 수행하는 별도의 시스템과 연동을 하여 클라이언트 프로그램에게 결과를 전달하는 경우에, 상기 연동 시스템들과 통신을 담당하는 자바 클래스의 매소드를 BCI(Byte Code Instrumentation) 프로그램을 이용하여 원래의 매소드를 수정(instrument) 하여 상기 원래의 매소드 대신에 사용자가 기설정한 코드가 실행되게 하여, 기설정한 응답데이터를 반환하게 함으로써, 상기 연동하는 데이터베이스 시스템, 외부 시스템 또는 특정 로직을 수행하는 별도의 시스템에게 부하를 발생시키지 않으면서, 성능테스트, 부하테스트, 기능테스트를 포함하는 각종 테스트를 수행할 수 있는 시스템 및 방법에 관한 것이다.In more detail, when a test target system implemented in Java transmits a result to a client program by interworking with a database system or an external system or a separate system that executes specific logic, the Java in charge of communicating with the interworking systems By modifying the original method using a BCI (Byte Code Instrumentation) program, the user's code is executed instead of the original method, and the preset response data is returned. The present invention relates to a system and method capable of performing various tests including a performance test, a load test, and a function test without generating a load on the interworking database system, an external system, or a separate system that performs specific logic.
이를 위하여 본 발명은, BCI(Byte Code Instrumentation) 프로그램과 시뮬레이터 매니저(Simulator Manager)와 상기 시뮬레이터 매니저에게 사용자 설정정보를 전달하기 위하여 사용하는 JSP(Java Server Page) 프로그램 또는 Servlet 프로그램과 외부 시스템과의 연동을 담당하는 수정된 매소드의 처리를 담당하는 시뮬레이터 핸들러(Simulator Handler)를 포함하는 것을 특징으로 한다. To this end, the present invention, the BCI (Byte Code Instrumentation) program, the Simulator Manager (Simulator Manager) and the JSP (Java Server Page) program or Servlet program used to deliver the user setting information to the simulator manager and interworking with the external system It characterized in that it comprises a simulator handler (Simulator Handler) responsible for the processing of the modified method responsible for the.
상세하게는, BCI 프로그램은 상기 연동 시스템들과의 통신을 담당하는 사용자가 미리 지정한 클래스의 매소드를 수정(Instrument)하는 수단을 포함하고, 시뮬레이터 매니저는 JSP(또는 Servlet)으로부터 사용자가 지정한 대상 클래스 및 매소드의 명칭, 처리 시간, 매소드 반환 변수 타입, 기본 매소드 반환값, 매소드 입력값과 입력값에 대한 매소드 반환값, 상기 매소드의 원래 코드의 수행 여부, 상기 외부시스템과 연동을 담당하는 매소드의 최대 초당 수행 건수, 상기 초당 최대 수행 건수를 넘었을 경우에 초당 최대 수행 건수를 주기적으로 검사하여 초당 최대 수행 건수 보다 크지 않았음을 검사할 때 사용하는 검사주기, 입력 데이터의 파라미터 타입, 입력데이터의 값에 따라서 반환값을 선택하여 반환할 수 있는 입출력 데이터 파일과 이 입출력 데이터파일을 읽어올 수 있는 수단을 포함하며, 시뮬레이터 핸들러는 시뮬레이터 매니저에서 설정된 조건에 따라서 상기 수정(instrument)된 매소드를 처리할 수 있는 수단을 포함하는 것을 특징으로 한다.Specifically, the BCI program includes a means for modifying a method of a class previously designated by a user in charge of communicating with the interworking systems, and the simulator manager includes a target class designated by a user from a JSP (or Servlet) and a user; The name of the method, the processing time, the method return variable type, the default method return value, the method input value and the method return value for the input value, whether or not the method's original code has been executed, and the maximum number of methods responsible for interworking with the external system. In case of exceeding the maximum number of executions per second, if the number of executions exceeds the maximum number of executions per second, the inspection interval, parameter type of input data, input data value Therefore, I / O data file and this I / O data that can be returned by selecting return value And means that can read the work simulator handler in accordance with the terms set in the simulation manager, characterized in that it comprises means capable of processing the modified maesodeu (instrument).
성능테스트, 부하테스트, 기능테스트, 테스트, 시뮬레이터, 매소드, Java, ASP Performance Test, Load Test, Function Test, Test, Simulator, Method, Java, ASP
Description
본 발명은 부하테스트, 성능테스트, 스트레스 테스트, 기능테스트를 포함하는 각종 테스트를 수행할 때, 테스트 대상 시스템이 데이터베이스 시스템, 외부 시스템 또는 특정 로직을 수행하는 별도의 시스템과 연동할 경우, 연동된 시스템들에게 부하를 발생시키지 않고, 오직 상기 테스트 대상 시스템에게만 부하를 발생시키면서 테스트를 수행할 수 있는 시스템 및 방법에 관한 것으로,The present invention, when performing a variety of tests, including load test, performance test, stress test, functional test, when the test target system is interlocked with a database system, an external system or a separate system that performs a specific logic, interlocked system The present invention relates to a system and a method for performing a test while generating a load only on the system under test, without generating a load on them.
더욱 상세하게는 자바로 구현된 테스트 대상 시스템이 데이터베이스 시스템 또는 외부 시스템 또는 특정 로직을 수행하는 별도의 시스템과 연동을 하여 클라이언트 프로그램에게 결과를 전달하는 경우에, 상기 연동 시스템들과 통신을 담당하는 자바 클래스의 매소드를 BCI(Byte Code Instrumentation) 프로그램을 이용하여 원래의 매소드를 수정(instrument) 하여 상기 원래의 매소드 대신에 사용자가 기설정한 코드가 실행되게 하여, 기설정한 응답데이터를 반환하게 함으로써, 상기 연동하는 데이터베이스 시스템, 외부 시스템 또는 특정 로직을 수행하는 별도의 시스템 에게 부하를 발생시키지 않으면서, 성능테스트, 부하테스트, 기능테스트를 포함하는 각종 테스트를 수행할 수 있는 시스템 및 방법에 관한 것이다.In more detail, when a test target system implemented in Java transmits a result to a client program by interworking with a database system or an external system or a separate system that executes specific logic, the Java in charge of communicating with the interworking systems By modifying the original method using a BCI (Byte Code Instrumentation) program, the user's code is executed instead of the original method, and the preset response data is returned. The present invention relates to a system and method capable of performing various tests including a performance test, a load test, and a functional test without generating a load on the interworking database system, an external system, or a separate system that performs specific logic.
상기와 같이, 테스트 대상 시스템이 데이터베이스 시스템 또는 특정 로직을 처리하는 시스템 또는 외부 시스템과 연동을 하여 전체 프로세스를 수행하는 경우에 상기 연동된 시스템들에게는 부하를 발생시키지 않고, 오로지 클라이언트 프로그램과 직접 통신을 하는 시스템에게만 부하를 발생하는 방법과 시스템이 필요하다. As described above, when the system under test performs the entire process by interworking with a database system, a system processing specific logic, or an external system, only the direct communication with the client program is performed without generating a load on the interlocked systems. There is a need for a method and a system that generates a load only for the system that is doing the job.
데이터베이스 시스템과 연동을 하는 경우를 예로 들어 좀더 자세히 설명하면, 테스트 대상 시스템이 자바로 구축된 웹애플리케이션으로 이루어 지고, 상기 웹애플리케이션은 클라이언트의 요청을 처리하기 위하여 상기 연동된 데이터베이스와 통신을 하는 클래스의 매소드를 호출하여 클라이언트에게 결과를 전달하는 경우에, 부하테스트, 성능테스트, 기능테스트를 포함하는 각종 테스트를 상기 자바로 구축된 웹애플리케이션 시스템에 수행할 때, 연동된 데이터베이스 시스템에 데이터의 수정이 발생하면 안되거나, 연동된 데이터베이스 시스템이 또 다른 시스템과 연동되어 있어, 상기 데이터베이스 시스템이 부하를 받게되면 상기 다른 연동된 시스템의 운영이 어려운 경우에 상기 연동된 데이터베이스 시스템에 부하를 발생시키지 않고 상기 테스트 대상 시스템인 자바로 구현된 시스템에만 부하를 발생시키는 시스템과 방법이 필요하다.For example, in the case of interworking with a database system, the test target system is composed of a web application built in Java, and the web application of the class communicating with the interlocked database to process a client's request. When a method is called and a result is delivered to a client, when various tests including a load test, a performance test, and a functional test are performed on the web application system built in Java, data modification occurs in the linked database system. If the interlocked database system is linked with another system, and the database system is under load, when the other interlocked system is difficult to operate, the interlocked database system is not generated. The system and method for generating a load only to the system implemented by a Java agent target system is needed.
또한, ERP 시스템, CRM 시스템, 미들웨어 시스템을 포함하는 특정 로직을 처리하는 시스템과 연동을 하는 경우를 예로 들어 좀더 자세히 설명하면, 테스트 대 상 시스템이 자바로 구축된 웹애플리케이션으로 이루어 지고, 상기 웹애플리케이션은 클라이언트의 요청을 처리하기 위하여 상기 연동된 시스템들과 통신을 하는 클래스의 매소드를 호출하여 클라이언트에게 결과를 전달하는 경우에, 부하테스트, 성능테스트, 기능테스트를 포함하는 각종 테스트를 상기 자바로 구축된 웹애플리케이션 시스템에 수행할 때, 연동된 시스템들의 데이터 수정이 발생하면 안되거나, 연동된 시스템들이 또 다른 시스템과 연동되어 있어, 상기 연동된 시스템들이 부하를 받게되면 상기 다른 연동된 시스템의 운영이 어려운 경우에 상기 연동된 시스템들에게 부하를 발생시키지 않고 상기 테스트 대상 시스템인 자바로 구현된 시스템에만 부하를 발생시키는 시스템과 방법이 필요하다.In addition, in more detail, taking an example of interworking with a system that processes a specific logic including an ERP system, a CRM system, and a middleware system, the test target system is composed of a web application built in Java, and the web application. In order to process the client's request, the method of the class communicating with the interlocked systems to deliver the results to the client, the various tests including load test, performance test, functional test to build in the Java When performing on the linked web application system, data modification of the linked systems should not occur, or the linked systems are linked with another system, and if the linked systems are under load, the operation of the other linked system is stopped. In case of difficulty, load is generated on the linked systems There is a need for a system and method for generating a load only on a system implemented in Java, which is the system under test.
또한, 외부 시스템과 연동을 하는 경우를 예로 들어 좀더 자세히 설명하면, 테스트 대상 시스템이 자바로 구축된 웹애플리케이션으로 이루어 지고, 상기 웹애플리케이션은 클라이언트의 요청을 처리하기 위하여 상기 연동된 외부 시스템과 통신을 하는 클래스의 매소드를 호출하여 클라이언트에게 결과를 전달하는 경우에, 부하테스트, 성능테스트, 기능테스트를 포함하는 각종 테스트를 상기 자바로 구축된 웹애플리케이션 시스템에 수행할 때, 연동된 외부 시스템의 데이터 수정이 발생하면 안되거나, 연동된 외부 시스템이 또 다른 시스템과 연동되어 있어, 상기 연동된 외부 시스템이 부하를 받게되면 상기 다른 연동된 시스템의 운영이 어려운 경우에 상기 연동된 외부 시스템에게 부하를 발생시키지 않고 상기 테스트 대상 시스템인 자바로 구현된 시스템에만 부하를 발생시키는 시스템과 방법이 필요하다.In addition, in more detail, taking an example of interworking with an external system, the test target system is composed of a web application built in Java, and the web application communicates with the interworking external system to process a client request. When calling a method of a class to deliver a result to a client, when performing various tests including a load test, a performance test, and a functional test to the web application system built in Java, the data of the linked external system is modified. This should not occur, or if the interlocked external system is linked with another system, if the linked external system receives a load, it may not generate a load on the interlocked external system when the operation of the other interlocked system is difficult. Implemented in Java, the system under test Only systems need a system and method of generating load.
전술한 바와 같이 테스트 대상 시스템이 다른 시스템들과 연동이 되어 있고, 연동된 시스템들에게는 부하를 발생시키면 안되는 경우에, 부하테스트, 성능테스트, 기능테스트를 포함하는 각종 테스트를 수행할 수 없거나, 프로그램의 소스를 수정하여 제한된 테스트 만을 수행하는 경우가 대부분이다. 이러한 경우에 상기 연동된 시스템들에게는 부하를 발생시키지 않으면서, 테스트 대상시스템 에게만 부하를 발생시키기 위한 방법 및 시스템이 필요하다.As described above, when the system under test is interlocked with other systems, and the interlocked systems should not generate a load, various tests including a load test, a performance test, and a functional test cannot be performed, or a program In most cases, only a limited test is performed by modifying the source. In this case, there is a need for a method and system for generating a load only on the system under test without generating a load on the interlocked systems.
Java BCI(Byte Code Instrumentation) 프로그램으로는 Apache BCEL, JBoss Javassist, Object Web의 ASM 등이 있다.Java Byte Code Instrumentation (BCI) programs include Apache BCEL, JBoss Javassist, and Object Web ASM.
본 발명은 상기한 문제점을 해결하기 위하여 안출 된 것으로서, 본 발명의 목적은 부하테스트, 성능테스트, 기능테스트를 포함하는 각종 테스트를 수행할 때, 테스트 대상 시스템이 다른 시스템들과 연동 되어 있는 경우, 상기 연동 된 시스템들에게는 부하를 발생시키지 않으면서 오직 테스트 대상 시스템 에게만 부하를 발생시키기 위한 시스템 및 방법을 제공하는 것이다. The present invention has been made to solve the above problems, the object of the present invention when performing a variety of tests, including load test, performance test, functional test, when the test target system is linked with other systems, The interlocked systems provide a system and a method for generating a load only to the system under test without generating a load.
상기의 목적들을 달성하기 위하여 본 발명은, BCI(Byte Code Instrumentation) 프로그램과 시뮬레이터 매니저(Simulator Manager)와 상기 시뮬레이터 매니저에게 사용자 설정정보를 전달하기 위하여 사용하는 JSP(Java Server Page) 프로그램 또는 Servlet 프로그램과 외부 시스템과의 연동을 담당하는 수정된매소드의 처리를 담당하는 시뮬레이터 핸들러(Simulator Handler)를 포함하는 것을 특징으로 한다. In order to achieve the above object, the present invention, a byte code instrumentation (BCI) program, a simulator manager (Simulator Manager) and a JSP (Java Server Page) program or Servlet program used to deliver user configuration information to the simulator manager and It is characterized in that it comprises a simulator handler (Simulator Handler) in charge of the processing of the modified method in charge of interworking with the external system.
상세하게는, BCI 프로그램은 상기 연동 시스템들과의 통신을 담당하는 사용자가 미리 지정한 클래스의 매소드를 수정(Instrument)하는 수단을 포함하고, 시뮬레이터 매니저는 JSP(또는 Servlet)으로부터 사용자가 지정한 대상 클래스 및 매소드 명칭, 프로세스 시간, 매소드 반환 변수 타입, 기본 매소드 반환값, 매소드 입력값과 입력값에 대한 매소드 반환값, 상기 매소드의 원래의 코드에 대한 수행 여부, 상기 외부시스템과 연동을 담당하는 클래스의 매소드의 최대 초당 수행 건수, 상기 초당 최대 수행 건수를 넘었을 경우에 초당 최대 수행 건수를 주기적으로 검사하여 초당 최대 수행 건수 보다 크지 않았음을 검사할 때 사용하는 검사주기, 입력 데이터의 파라미터 타입, 입력데이터의 값에 따라서 반환값을 선택하여 반환 할 수 있는 데이터 파일과 이 데이터파일을 읽어올 수 있는 수단을 포함하며, 시뮬레이터 핸들러는 시뮬레이터 매니저에서 설정된 조건에 따라서 상기 수정(instrument)된 매소드를 처리할 수 있는 수단을 포함하는 것을 특징으로 한다.Specifically, the BCI program includes a means for modifying a method of a class previously designated by a user in charge of communicating with the interworking systems, and the simulator manager includes a target class designated by a user from a JSP (or Servlet) and a user; Method name, process time, method return variable type, default method return value, method input value and method return value for input value, whether or not to perform the original code of the method, method of the class in charge of interworking with the external system The maximum number of executions per second, the inspection cycle used to periodically check the maximum number of executions per second when the maximum number of executions per second is not greater than the maximum number of executions per second, parameter type of input data, input data The data file that can be returned by selecting the return value according to the value of And means for reading the data file, wherein the simulator handler includes means for processing the instrumented method according to a condition set in the simulator manager.
이상에서 상술한 바와 같이 본 발명에 의하면, 부하테스트, 성능테스트, 기능테스트를 포함하는 각종 테스트를 수행할 때, 연동된 시스템들에게는 부하를 발생시키지 않고 오직 테스트 대상 시스템에게만 부하를 발생시킴으로써, 연동된 시스템에게는 정상 운영이 가능 하게 하며, 또한 연동된 시스템들의 중요 데이터를 수정시키지 않고 각종 테스트를 수행할수 있다. 또한 BCI프로그램(50)을 사용하는 경우에는 테스트 대상 시스템의 프로그램의 소스(source)를 변경하지 않고 상기 테스트들을 수행하기 위한 방법과 시스템을 제공한다.As described above, according to the present invention, when performing various tests including a load test, a performance test and a functional test, the load is generated only to the test target system without generating a load to the linked systems. The system can be operated normally, and various tests can be performed without modifying important data of interlocked systems. In addition, when using the BCI
본 발명의 바람직한 실시 예를 첨부 도면에 의거 상세히 설명하면 다음과 같 다. 첨부된 도1은 본 발명에 따른 자바가상머신, 시뮬레이터 매니저, 시뮬레이터 핸들러, JSP(Servlet) 프로그램, 입출력(I/O) 데이터 파일, 설정정보, BCI 프로그램, instrument 정보파일, Instrument 대상 클래스 (A.class), Instrument된 대상 클래스의 매소드와 웹브라우저를 이용하여, 부하테스트, 성능테스트, 기능테스트를 포함하는 각종 테스트를 수행할 때, 테스트 대상 시스템과 연동된 시스템들에게는 부하를 발생 시키지 않고 오로지 상기 테스트 대상 시스템에게만 부하를 발생시킬 수 있는 시스템의 개괄적 구성을 도시한 블록도이다Preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. 1 is a Java virtual machine, a simulator manager, a simulator handler, a JSP (Servlet) program, an input / output (I / O) data file, configuration information, a BCI program, an instrument information file, and an instrument target class (A. class), using methods of instrumented target class and web browser, when performing various tests including load test, performance test, and functional test, the system linked with the system under test does not generate a load. This is a block diagram showing the general configuration of a system that can generate a load only on the system under test.
도1에 도시된 바와 같이, 본 발명에 의한 연동된 시스템에게는 부하를 발생 시키지 않고 오로지 테스트 대상 시스템에게만 부하를 발생시키는 시스템의 전체 구성은 자바가상머신(10)과 시뮬레이터 핸들러(20)와 시뮬레이터 매니저(30)와 입출력(I/O) 데이터파일(31)과 설정정보(32)와 사용자로부터 상기 입출력(I/O) 데이터파일명을 포함한 설정정보(32)를 웹브라우저(70)를 이용하여, 시뮬레이터 매니저(30)에게 전달하는 역할을 하는 JSP(Servlet)프로그램(40)과 연동 시스템(80)들 즉, 데이터베이스 시스템(81), 특정 로직을 처리하는 시스템(82), 외부 연동 시스템(83)과 연동을 담당하는 특정 클래스의 매소드를 Instrument하는 BCI프로그램(50)과 상기 BCI프로그램(50)이 사용하는 Instrument 대상인 특정 클래스와 특정 매소드에 대한 정보 파일(51)과 상기 BCI프로그램(50)의 Instrument대상 클래스 파일(52)과 상기 BCI프로그램(50)이 Instrument한 매소드(53)로 이루어진다. As shown in FIG. 1, the overall configuration of the system that generates a load only on the system under test without generating a load on the interlocked system according to the present invention includes a Java
상기 자바가상머신(10)은 J2EE 표준을 지원하며, 상기 JSP(Serlvet) 프로그램(40)은 J2EE 표준을 지원하며, 사용자가 설정하는 조건들을 상기 시뮬레이터 매니저(30)에게 전달하는 수단을 포함하고, 상기 시뮬레이터 매니저(30)는 상기 JSP(Servlet) 프로그램(40)으로부터 사용자 설정 정보를 전달 받아서 상기 설정정보(32)에 저장 및 조회하는 수단과 상기 사용자 설정 정보(32) 중에서 입출력(I/O) 데이터파일(31)에 대한 조회 수단을 포함하고, 상기 시뮬레이터 핸들러(20)는 상기 시뮬레이터 매니저(30)를 이용하여 사용자가 설정한 설정정보(32) 및 입출력(I/O)데이터파일(31)을 조회하는 수단과 상기 사용자가 설정한 정보(32)에 따라서 처리하는 수단을 포함하고, 상기 BCI프로그램(50)은 자바 클래스에 대한 Instrument 수단과, 상기 Instruemt 정보파일(51)에 따라서 대상 클래스의 매소드(52)를 instrument할 수단을 포함한다. The Java
도1을 이용하여 부하테스트, 성능테스트, 기능테스트를 포함하는 각종 테스트를 수행할 때, 테스트 대상 시스템과 연동된 시스템들에게는 부하를 발생시키지 않고, 오직 테스트 대상 시스템에게만 부하를 발생시키는 방법을 자세히 설명하면, 사용자는 Instrument 정보파일(51)에 instrument 대상 클래스에 대한 정보를 기술하면 BCI프로그램(50)은 ① 상기 Instrument 정보파일(51)을 참조하여 ② Instrument 대상 클래스(52)를 자바가상머신에 로딩(loading)할때 ③ 상기 Instrument 대상 클래스(52)의 매소드를 수정(instrument)하여 자바가상머신(10)에 로딩한다. ④ 사용자는 웹브라우저(70)를 포함하는 HTTP 통신을 지원하는 프로그램을 이용하여 사용자 설정정보를 JSP(Servlet)프로그램(40)에게 전달한다. ⑤ JSP(Servlet)(40)프로그램은 상기 전달 받은 사용자 설정정보를 시뮬레이터메니저(30)에게 전달한다. ⑥ 시뮬레이터 매니저(30)는 상기 전달받은 설정 정보를 설정정보(32) 데이터 구조에 저장한다. ⑦ 한편, 부하를 발생시키는 클라이언트 프로그램(60)은 웹애플리케이션(61)을 요청하여Instrument 된 클래스의 매소드(53)를 수행하게 한다. ⑧ 상기 호출받은 매소드(53)는 instrument 되기 이전의 원래의 코드를 실행하지 않고, 시뮬레이터 핸들러(20)를 이용하여 ⑨ 시뮬레이터 매니저(30)와 사용자가 기설정한 설정정보(32)에 따라서 수행을 하며, ⑩ 특히, 상기 매소드(53)의 처리 방식이 입출력(I/O) 데이터 파일(31)에 따라서 처리하도록 설정된 경우, 입출력(I/O)데이터 파일(31)을 참조하여 처리한다. ⑪ 웹애플리케이션(61)은 상기 요청된 매소드(53)의 처리결과를 받아서 부하를 생성한 클라이언트 프로그램(60)에게 결과를 전달한다. ⑫ 이때, instrument 된 매소드의 원래의 매소드에서 요청했던 연동 시스템과의 통신은 상기 설정정보(32)에 따라서 처리한다.When performing various tests including a load test, a performance test, and a functional test using FIG. 1, a method of generating a load only on the test target system without generating a load on the systems connected to the test target system in detail. In other words, when the user describes the information on the instrument target class in the
도2를 이용하여, 사용자가 웹브라우저(70)와 JSP(Servlet)프로그램(40)을 이용하여 시뮬레이터 매니저(30)에게 설정정보(32)를 설정하는 방법을 자세히 설명하면, 사용자가 JSP(Servlet)프로그램(40)에게 전달하는 query string의 내역을 자세히 설명하면 다음과 같다.Referring to FIG. 2, a method in which the user sets the
method_name(321)에 instrument대상 클래스와 매소드 이름을 전달한다. 예를들면 com.strbus 패키지의 Manager클래스의 doTest 매소드를 설정하는 경우에 com.strobus.Manager.doTest라고 설정하고, ASP의 경우에는 프로그램명.매소드명으로 전달한다. i_type(322)에 상기 매소드의 파라미터 타입을 전달하여 대상 매소드 의 입력 파라미터 타입을 설정한다. 즉, 상기 입력 파라미터 타입은 string, int, long, byte, float, char, void를 포함하는 자바의 기본타입과 상기 기본타입의 배열을 지원한다. 여기서 배열의 차원은 []의 개수로 설정하며, 예를 들면 int[][][]이면 정수타입의 3차원 배열을 의미한다. o_type(323)에 상기 대상 매소드의 반환 타입을 설정하며 내용은 상기 전술한 i_type(322)과 동일한 방법으로 설정한다. io_mehthod(324)에 상기 매소드의 처리 방식 중 입력데이터에 대한 반환데이터의 선택방법을 기생성된 입출력(I/O)데이터 파일(31)에 따라서 처리할 것인지, JSP(Servlet)프로그램(40)으로 설정한 값들을 이용하여 처리할 것인지 방법을 설정한다. 설정 값은 file 또는 value의 값으로 설정하며, file인 경우에 입출력(I/O) 데이터파일(31)에 따라서 처리하고, value인 경우에 후술할 i_vlaue(325)와 o_value(326)와 o_value_default(327)에 따라서 처리한다. o_value_default(327)에 기본 반환 값을 설정하며, i_value(325)에 입력 값에 만족하는 입력 파라미터 값이 입력되었을때는 o_value(326)에 설정된 값을 반환한다. i_vlaue(325)와 o_value(326)와 o_value_default(327)의 사용은 상기 전술한 io_method의 값이 value로 설정된 경우에만 사용된다. i_vlaue(325)와 o_value(326)의 설정 값에 대한 처리방식을 예를 들어 자세히 설명하면, i_value=*가 설정되고 o_value=1이 설정된 경우에 상기 매소드(53)를 호출할 때 입력 값에 관계없이 반환 값을 모두 1로 하라는 설정이고, o_value_default=-1이고, i_value=1가 설정되고 o_value=2가 설정된 경우에 상기 매소드(53)를 호출할 때 입력 값이 1인 경우만 2로 반환하고 나머지 모든 경우에 대해서는 -1을 반환하라는 설정이다. io_data_file(328)은 상기 전술한 io_method(324)에 file로 설정된 경우에 사용되며, 여기에 설정된 파일명을 시뮬레이터 매니저(30)가 읽어와서 시뮬레이터 핸들러(20)에게 전달하여 설정정보(32)에 따라서 처리한다. process_time(329)에 설정된 값에 따라서 상기 매소드(53)의 처리 시간이 결정된다. 시뮬레이터 핸들러(20)는 상기 설정된 처리시간이 흐르면 상기 설정된 반환값을 반환한다. max_tps(32A)에는 상기 매소드(53)의 최대 초당 처리건수가 설정되며, 시뮬레이터 핸들러(20)는 상기 매소드(53)의 초당 처리건수가 max_tps보다 커지게 되면 lookup_unit_time(32B)에 설정된 시간을 주기로 하여 주기적으로 상기 매소드(53)의 초당 처리 건수를 검사하여 max_tps보다 적어진 경우에 처리하도록 한다. process_origin(32C)에 y 또는 n값을 설정하며, 시뮬레이터 핸들러(20)는 이 값이 y인 경우에는 상기 매소드(53)의 원래 코드를 실행한 후에 사용자가 설정한 설정정보(32)에 따라서 처리하며, n 인 경우에는 상기 매소드(53)의 원래의 코드는 실행하지 않고 사용자가 설정한 설정정보(32)에 따라서 처리한다.Pass the instrument target class and method name to method_name (321). For example, to set the doTest method of the Manager class in the com.strbus package, set com.strobus.Manager.doTest, and in the case of ASP, pass it as the program name and method name. The parameter type of the method is transmitted to i_type 322 to set the input parameter type of the target method. That is, the input parameter type supports Java primitive types including string, int, long, byte, float, char, and void, and an array of primitive types. Here, the dimension of the array is set by the number of []. For example, int [] [] [] means a three-dimensional array of integer types. The return type of the target method is set in o_type 323 and the contents are set in the same manner as in the
도3을 이용하여, 상기 시뮬레이터 핸들러(20)가 상기 설정정보(32) 중에서 io_method(324)의 값이 file로 설정된 경우에 io_data_file(328)에 저장된 입력 값과 반환 값의 정보에 따라서 처리하는 방법을 자세히 설명하면,3, when the
입출력(I/O) 데이터 파일(31)은 탭(tab)문자 또는 콤마(comma)문자를 구분자로 사용하는 파일이며, 첫 번째 행(311)에는 입력파라미터와 반환 파라미터를 구분하는 값들을 저장한다. 상세하게는 입력파라미터가 k개 존재하는 경우에 I1,I2,I3, … , Ik와 같이 설정하며 출력 파라미터는 O 한 개로 설정한다. 두 번째 행(312)의 경우를 설명하면, 입력 데이터 값에 관계 없이 모든 반환데이터를 1로 하라는 설정이다. 3번째 행(313)의 경우를 설명하면, 1번째 입력 파라미터 값이 1, 2 번째 입력 파라미터 값이 2, k 번째 입력 파라미터 값이 3인 경우에 ‘가’를 반환하라는 설정이다. 4번째 행(314)의 경우를 설명하면, 1번째 입력 파라미터 값이 4, 2 번째 입력 파라미터 값이 5, k 번째 입력 파라미터 값이 6인 경우에 ‘A’를 반환하라는 설정이다. 도3의 경우 3번째(313), 4번째(314) 행의 입력 파라미터 값을 만족하지 않는 나머지 모든 경우는 2번째(312) 행의 조건에 따라서 처리하라는 설정이다.Input / output (I / O)
상기 입력 파라미터와 반환 파라미터의 값이 배열의 경우, 데이터 값을 설정하는 방법에 대하여 상세히 설명하면 배열이 아닌 경우는 상기 전술한 바와 같고 배열의 경우는 괄호’{}’ 문자와 콤마(comma)문자를 이용하여 설정한다. int[]로 표현되는 정수 1차원 배열을 예로 들어 설명하면 {1,2,3}로 사용하여 int[3]을 표현하고, int[][]로 표현되는 정수 2차원 배열은 {{1,2,3},{1,2,3}}으로 사용하여 int[2][3]을 표현한다. 나머지 타입들도 동일한 방법으로 배열을 표현한다.In the case where the values of the input parameter and the return parameter are arrays, a method of setting data values is described in detail as described above in the case of non-arrays, and in the case of arrays, the parenthesis '{}' character and the comma character. Use to set. For example, an integer one-dimensional array represented by int [] is used as {1,2,3} to represent int [3], and an integer two-dimensional array represented by int [] [] is represented by {{1, 2,3}, {1,2,3}} to represent int [2] [3]. The other types represent arrays in the same way.
이와 같은 방법을 이용하여, 부하테스트, 성능테스트, 기능테스트를 포함하는 각종 테스트에서 연동된 시스템들에게는 부하를 발생시키지 않으면서, 테스트 대상 시스템 에게만 부하를 발생시킬 수 있다. 또한 max_tps(31A)를 이용하여 연동된 시스템들의 최대 성능을 시뮬레이트(simulate)할 수 있게 하여 더욱 실제 상황에 근접한 각종 테스트를 수행할 수 있다.Using this method, loads can be generated only on the system under test without generating loads on the interlocked systems in various tests including load tests, performance tests, and functional tests. In addition, the max_tps 31A can be used to simulate the maximum performance of the interlocked systems so that various tests closer to the actual situation can be performed.
본 발명은 전술한 실시 예에만 국한되지 않고 본 발명의 기술 사상이 허용하는 범위 내에서 다양하게 적용하여 실시할 수가 있다. 예를 들면 상기 자바가상머 신(10) 뿐만 아니라 컴파일된 코드(Byte Code 또는 의사 바이트 코드)를 사용하며 이 코드를 수정하여 특정 매소드의 수행 코드를 변경할 수 있는 수단이 있다면, 자바가상머신 이외의 바이트 코드 기반의 시스템에도 적용할 수 있으며, 또한 ASP(마이크로소프트의 Active Server Page)와 같이 스크립트(script)기반의 언어로 이루어진 경우에도 BCI프로그램(50) 을 사용하지 않고 사용자가 직접 해당 프로그램(52)을 직접 수정하고, 사용자가 설정정보(32)를 시뮬레이터 매니저(30)에게 전달할 때 ASP를 이용하여 전달하게 하여 동일하게 적용이 가능하다. 또한, 연동 시스템의 통신 프로토콜에 관계없이 적용이 가능하다.The present invention is not limited to the above-described embodiments, but can be applied in various ways within the scope of the technical idea of the present invention. For example, if the Java
도1은 본 발명에 따른 BCI 프로그램, 시뮬레이터 매니저, 시뮬레이터 핸들러, JSP(또는 Servlet), 입출력(I/O) 데이터파일, 설정정보를 이용하여, 연동된 데이터베이스 시스템, 외부 시스템, 특정 로직을 수행하는 별도의 시스템에는 부하를 주지 않고, 오직 대상 자바 시스템에만 부하를 발생시킬 수 있는 시스템의 개괄적 구성을 도시한 블록도이다.1 is a diagram illustrating a linked database system, an external system, and specific logic using a BCI program, a simulator manager, a simulator handler, a JSP (or servlet), an input / output (I / O) data file, and configuration information according to the present invention. It is a block diagram showing a general configuration of a system that can generate a load only on a target Java system without putting a load on a separate system.
< 도면의 주요 부분에 대한 부호의 설명 > <Description of Symbols for Main Parts of Drawings>
10. 자바가상머신(자바 Virtual Machine)10. Java Virtual Machine
20. 시뮬레이터 핸들러(Simulator Handler)20. Simulator Handler
30. 시뮬레이터 매니저(Simulator Manager)30. Simulator Manager
31. 입출력(I/O) 데이터파일 32. 설정 정보31 I /
40. JSP(또는 Servlet)프로그램 또는 ASP 프로그램40. JSP (or Servlet) program or ASP program
50. BCI(Byte Code Instrumentation) 프로그램50. Byte Code Instrumentation Program
51. Instrument 정보파일 51.Instrument Information File
52. Instrument 대상 클래스52. Instrument target class
53.수정(Instrument)된 매소드53.Instrumented Methods
60. 클라이언트 프로그램60. Client Program
61. 웹애플리케이션61. Web Applications
70. 웹브라우저70. Web browser
80. 연동시스템80. Interlock system
81. 데이터베이스 시스템81. Database system
82. 특정 로직을 처리하는 시스템82. Systems Handling Specific Logic
83. 외부 시스템83. External Systems
도2는 본 발명에 따른 시뮬레이터 매니저가 사용자로부터 JSP(또는 Servlet) 프로그램을 이용하여 전달받는 설정 정보에 대하여 설명한 그림이다.2 is a diagram illustrating configuration information received by a simulator manager from a user using a JSP (or servlet) program according to the present invention.
< 도면의 주요 부분에 대한 부호의 설명 ><Description of Symbols for Main Parts of Drawings>
32. 사용자 설정 데이터 정보(JSP, Servlet 또는 ASP로 전달받는다)32. User configuration data information (received by JSP, Servlet or ASP)
321. Instrument 대상 클래스 및 매소드의 이름321. Name of Instrument target class and method
322. Instrumet 대상 매소드의 입력 파라미터 타입322. Input Parameter Types of Instrumet Target Methods
323. Instrument 대상 매소드의 반환 데이터 타입323. Return Data Types of Instrument Target Methods
324. Instrument 대상 매소드의 입력값에 대한 반환값을 선택하는 정책324. Policies to Select Return Values for Inputs to Instrument Target Methods
325. Instrument 대상 매소드의 입력값325. Input Value of Instrument Target Method
326. Instrument 대상 매소드의 반환값326. Return Values of Instrument Target Methods
327. Instrument 대상 매소드의 기본 반환값327. Default Return Value of Instrument Target Method
328. Instrument 대상 매소드의 입출력(I/O)정책이 파일인 경우 사용할 입출력(I/O) 데이터 파일이름328. I / O data file name to be used when I / O policy of instrument target method is file
329. Instrument 된 매소드의 가상 처리 시간329. Virtual Processing Time for Instrumented Methods
32A. Instrument 된 매소드의 최대 초당 처리 건수32A. Maximum number of operations per second for instrumented methods
32B. Instrument 된 매소드의 max_tps를 검사할 때 사용하는 주기32B. The cycle to use when checking max_tps on instrumented methods
32C. Instrument 대상 매소드의 원래 코드 실행 여부32C. Whether to run the original code of the Instrument target method
도3은 본 발명에 따른 시뮬레이터 핸들러가 Instrumented 매소드를 처리할 때 사용하는 매소드의 입력, 반환 데이터 정보 파일을 표현한 그림이다.FIG. 3 is a diagram representing input and return data information files of methods used by a simulator handler in processing an instrumented method according to the present invention.
< 도면의 주요 부분에 대한 부호의 설명 ><Description of Symbols for Main Parts of Drawings>
31. 입출력(I/O) 데이터파일 (아래행의 조건이 윗행의 조건에 우선한다)31. I / O data file (lower line conditions take precedence over upper line conditions)
311. 입력, 반환 파라미터 구분행 (I1:1번째 입력파라미터, O:반환)311.Separation line for input and return parameters (I1: 1th input parameter, O: return)
312. 입력값의 값에 관계없이 동일한 반환값 설정312. Setting the same return value regardless of the value of the input
313. 입력값에 대한 반환값 설정313. Set return value for input value
314. 입력값에 대한 반환값 설정314. Set return value for input
Claims (4)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080053442A KR100967525B1 (en) | 2008-06-09 | 2008-06-09 | Method and system for generating load only to the targeted system, not to the connected ones when doing performance, load, functional tests on the targeted system. |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080053442A KR100967525B1 (en) | 2008-06-09 | 2008-06-09 | Method and system for generating load only to the targeted system, not to the connected ones when doing performance, load, functional tests on the targeted system. |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090127453A KR20090127453A (en) | 2009-12-14 |
KR100967525B1 true KR100967525B1 (en) | 2010-07-07 |
Family
ID=41688123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080053442A KR100967525B1 (en) | 2008-06-09 | 2008-06-09 | Method and system for generating load only to the targeted system, not to the connected ones when doing performance, load, functional tests on the targeted system. |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100967525B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180126852A (en) | 2017-05-18 | 2018-11-28 | 뱅크웨어글로벌 주식회사 | Management method for java methods based on bytecode, development system and method for java software using the same |
US10212036B2 (en) | 2014-12-29 | 2019-02-19 | Lg Cns Co., Ltd. | Performance testing method, performance testing apparatus performing the same and storage medium storing the same |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050137842A1 (en) | 2003-12-17 | 2005-06-23 | David Bingham | Sequential coordination of test execution and dynamic data |
KR20050078397A (en) * | 2004-01-29 | 2005-08-05 | 삼성전자주식회사 | Method for reducing load in getting and setting information of object and processor therefor |
KR20070093233A (en) * | 2006-03-13 | 2007-09-18 | 주식회사 진두아이에스 | Method for monitering fault and performance of database, and system for implementing the same |
-
2008
- 2008-06-09 KR KR1020080053442A patent/KR100967525B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050137842A1 (en) | 2003-12-17 | 2005-06-23 | David Bingham | Sequential coordination of test execution and dynamic data |
KR20050078397A (en) * | 2004-01-29 | 2005-08-05 | 삼성전자주식회사 | Method for reducing load in getting and setting information of object and processor therefor |
KR20070093233A (en) * | 2006-03-13 | 2007-09-18 | 주식회사 진두아이에스 | Method for monitering fault and performance of database, and system for implementing the same |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10212036B2 (en) | 2014-12-29 | 2019-02-19 | Lg Cns Co., Ltd. | Performance testing method, performance testing apparatus performing the same and storage medium storing the same |
KR20180126852A (en) | 2017-05-18 | 2018-11-28 | 뱅크웨어글로벌 주식회사 | Management method for java methods based on bytecode, development system and method for java software using the same |
Also Published As
Publication number | Publication date |
---|---|
KR20090127453A (en) | 2009-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10587641B2 (en) | Point-wise protection of application using runtime agent and dynamic security analysis | |
KR101354743B1 (en) | Software system with controlled access to objects | |
JP5801953B2 (en) | Application security inspection | |
US9465718B2 (en) | Filter generation for load testing managed environments | |
CN106598549A (en) | Intelligent agreement system based on block chain and implementation method | |
US20040243882A1 (en) | System and method for fault injection and monitoring | |
Pacheco | Microservice Patterns and Best Practices: Explore patterns like CQRS and event sourcing to create scalable, maintainable, and testable microservices | |
US20150074647A1 (en) | Testing system for an integrated software system | |
US20150379273A1 (en) | Application security testing | |
US10362089B1 (en) | Methods and systems for dynamically generating and reusing dynamic web content | |
US20040138847A1 (en) | Stress testing at low cost through parallel execution of unit tests | |
US20090089320A1 (en) | Capturing application state information for simulation in managed environments | |
US20160259712A1 (en) | System and method for determination of code coverage for software applications in a network environment | |
CN106843901B (en) | Page rendering and verification method and device | |
CN112163195A (en) | Novel virtual machine software protection method based on stack hiding | |
US20060195732A1 (en) | Method and system for executing test cases for a device under verification | |
KR100967525B1 (en) | Method and system for generating load only to the targeted system, not to the connected ones when doing performance, load, functional tests on the targeted system. | |
CN111797020A (en) | Mock data method and device based on dynamic bytecode | |
CN113779578B (en) | Intelligent confusion method and system for mobile terminal application | |
CN113220584A (en) | Page testing method and device, computer equipment and readable storage medium | |
CN107273745A (en) | A kind of dynamic analysing method of the malicious code of dynamic link library form | |
CN112559336B (en) | Method, device and system for self-adaptively debugging heterogeneous computing chip and main board chip | |
JP5251653B2 (en) | Operation check device, system, method and program for test rule for black box test | |
Morgado et al. | Towards Web Application Security by Automated Code Correction. | |
JP5978368B2 (en) | Application security inspection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
J201 | Request for trial against refusal decision | ||
B701 | Decision to grant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130509 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20140611 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20150624 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20160525 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20170526 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20180529 Year of fee payment: 9 |