웹위에서가 아닌 일반서버도 테스팅가능합니까?

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

웹위에서가 아닌 일반서버도 테스팅가능합니까?

개발신입
현재 엔진서버하나를 운영중인데 이 엔진서버에 과부하를 체크하고싶습니다. Ngrinder에선 URL을 정확히 입력하라고 나와있어 테스트가 어려운 상황이고요. 클라이언트와 서버는 소켓통신으로 통신을 하고있습니다. 스크립트 문을 짜서 URL입력없이 바로 테스트 하면 되는가 궁금합니다. 사이트에 있는 소켓통신의 예문으로 테스트해도 자꾸 에러만 뜨네요....
Reply | Threaded
Open this post in threaded view
|

Re: 웹위에서가 아닌 일반서버도 테스팅가능합니까?

junoyoon
Administrator
URL 은 스크립트 자동 생성시에만 사용됩니다. 따라서 아무 URL 을 일단 입력하시고, 스크립트내에서 소켓 통신으로 테스트를 바꾸시면 됩니다.
Reply | Threaded
Open this post in threaded view
|

Re: 웹위에서가 아닌 일반서버도 테스팅가능합니까?

개발신입
package org.ngrinder;

import static net.grinder.script.Grinder.grinder
import static org.junit.Assert.*
import static org.hamcrest.Matchers.*
import net.grinder.plugin.http.HTTPRequest
import net.grinder.plugin.http.HTTPPluginControl;
import net.grinder.script.GTest
import net.grinder.script.Grinder
import net.grinder.scriptengine.groovy.junit.GrinderRunner
import net.grinder.scriptengine.groovy.junit.annotation.BeforeProcess
import net.grinder.scriptengine.groovy.junit.annotation.BeforeThread
// import static net.grinder.util.GrinderUtils.* // You can use this if you're using nGrinder after 3.2.3
import org.junit.Before
import org.junit.BeforeClass
import org.junit.Test
import org.junit.runner.RunWith
import java.io.DataInputStream;
import java.io.InputStream;
import java.net.Socket;
import HTTPClient.HTTPResponse
import HTTPClient.NVPair

/**
 * A simple example using the HTTP plugin that shows the retrieval of a
 * single page via HTTP.
 *
 * This script is automatically generated by ngrinder.
 *
 * @author admin
 */
@RunWith(GrinderRunner)
class TestRunner {
        public static GTest test
        public static Socket socket;
        @BeforeProcess
        public static void beforeProcess() {
                 
        test = new GTest(1, "Test1")
                grinder.logger.info("before process.");
                 
        }

        @BeforeThread
        public void beforeThread() {
         socket = new Socket("127.0.0.1", 7777);
         test.record(this,"doConnect");
        }
       
       
       

        @Test
        public void test(){
               
            // 소켓의 입력스트림을 얻는다.
            InputStream ins = socket.getInputStream();
            DataInputStream dis = new DataInputStream(ins);
             
            // 소켓으로부터 받은 데이터를 출력한다.
            System.out.println("서버로부터 받은 메세지 : " + dis.readUTF());
            System.out.println("연결을 종료합니다.");
             
            dis.close();
            socket.close();
            System.out.println("연결이 종료되었습니다.");
       
   
             
       
        }
}

상당히 간략하게 만들었는데도 엄청난에러양이 뜨네요... 뭐가 문제일까요?
Reply | Threaded
Open this post in threaded view
|

Re: 웹위에서가 아닌 일반서버도 테스팅가능합니까?

junoyoon
Administrator
어떤 에러가 뜨는지 알려주시면 도와드릴 수 있을것 같습니다 

2014년 9월 15일 월요일, 개발신입 [via ngrinder]<[hidden email]>님이 작성한 메시지:
package org.ngrinder;

import static net.grinder.script.Grinder.grinder
import static org.junit.Assert.*
import static org.hamcrest.Matchers.*
import net.grinder.plugin.http.HTTPRequest
import net.grinder.plugin.http.HTTPPluginControl;
import net.grinder.script.GTest
import net.grinder.script.Grinder
import net.grinder.scriptengine.groovy.junit.GrinderRunner
import net.grinder.scriptengine.groovy.junit.annotation.BeforeProcess
import net.grinder.scriptengine.groovy.junit.annotation.BeforeThread
// import static net.grinder.util.GrinderUtils.* // You can use this if you're using nGrinder after 3.2.3
import org.junit.Before
import org.junit.BeforeClass
import org.junit.Test
import org.junit.runner.RunWith
import java.io.DataInputStream;
import java.io.InputStream;
import java.net.Socket;
import HTTPClient.HTTPResponse
import HTTPClient.NVPair

/**
 * A simple example using the HTTP plugin that shows the retrieval of a
 * single page via HTTP.
 *
 * This script is automatically generated by ngrinder.
 *
 * @author admin
 */
@RunWith(GrinderRunner)
class TestRunner {
        public static GTest test
        public static Socket socket;
        @BeforeProcess
        public static void beforeProcess() {
                 
        test = new GTest(1, "Test1")
                grinder.logger.info("before process.");
                 
        }

        @BeforeThread
        public void beforeThread() {
         socket = new Socket("127.0.0.1", 7777);
         test.record(this,"doConnect");
        }
       
       
       

        @Test
        public void test(){
               
            // 소켓의 입력스트림을 얻는다.
            InputStream ins = socket.getInputStream();
            DataInputStream dis = new DataInputStream(ins);
             
            // 소켓으로부터 받은 데이터를 출력한다.
            System.out.println("서버로부터 받은 메세지 : " + dis.readUTF());
            System.out.println("연결을 종료합니다.");
             
            dis.close();
            socket.close();
            System.out.println("연결이 종료되었습니다.");
       
   
             
       
        }
}

상당히 간략하게 만들었는데도 엄청난에러양이 뜨네요... 뭐가 문제일까요?


If you reply to this email, your message will be added to the discussion below:
http://ngrinder.642.n7.nabble.com/-tp1632p1636.html
To start a new topic under ngrinder-user-kr, email <a href="javascript:_e(%7B%7D,&#39;cvml&#39;,&#39;ml-node%2Bs642n113h87@n7.nabble.com&#39;);" target="_blank">ml-node+s642n113h87@...
To unsubscribe from ngrinder-user-kr, click here.
NAML