nGrinder 성능 도구 원본 설치 배치 과정

nGrinder(version:3.4.1)는 네 이 버(한국 최대 인터넷 회사 NHN 산하 검색엔진 사이트)가 오픈 한 성능 테스트 도구 로 웹 서비스 로 직접 배치 되 어 다 중 사용자 사용 이 가능 하고 확장 성 이 좋 으 며 사용자 정의 plugin 이 가능 합 니 다.
nGrinder 는 일련의 기계 에서 Groovy 나 Jython 테스트 스 크 립 트 를 실행 하 는 응용 프로그램 으로 내부 엔진 은 Grinder 를 기반 으로 합 니 다.nGrinder 는 contrller 와 에이전트 를 사용 하여 각각 Grinder 의 console 과 에이전트 를 포장 하고 여러 가지 기능 을 확장 하여 병행 테스트 를 지원 할 수 있 도록 합 니 다.
nGrinder 는 두 개의 주요 구성 요소 로 구성 되 어 있 습 니 다.
  • Controller
  • 성능 테스트 를 위 한 웹 인터페이스 제공.
    테스트 프로 세 스 를 조율 하 다.
    테스트 의 통계 결 과 를 정리 하고 표시 하 다.
    사용자 로 하여 금 스 크 립 트 를 만 들 고 수정 하 게 합 니 다.
  • Agent
  • 프 록 시 서버 에 테스트 프로 세 스 와 스 레 드 를 불 러 옵 니 다.
    대상 기기 의 시스템 성능 모니터링(예:CPU/MEMORY/네트워크 카드/디스크)

    머리말
  • nGrinder 가 어떻게 일 하 는 지 더 잘 알 기 위해 서?
  • 2 차 개발 준비
  •  2.소스 코드 다운로드
    다운로드 주소:https://github.com/naver/ngrinder/releases
    在这里插入图片描述
    https://github.com/naver/ngrinder.git방식
    在这里插入图片描述
    로 컬 설정
    zip 패 키 지 를 다운로드 하여 설치 하 는 것 을 보 여 줍 니 다.
    在这里插入图片描述
    디 렉 터 리 시작 스 크 립 트 열기:
    在这里插入图片描述
    실행 이 성공 하 기 를 기다 리 면 다음 jar 패 키 지 를 로 컬 창고 에 설치 합 니 다.
    在这里插入图片描述
    4.IDEA 설정
    IDEA 개발 도구 열기:
    在这里插入图片描述
    파일 을 클릭 하여 Project 가 져 오기:
    在这里插入图片描述
    클릭Open as Project:
    在这里插入图片描述
    새 창 열기:
    在这里插入图片描述
    Maven 이 해당 하 는 jar 를 불 러 올 때 까지 기 다 립 니 다.
    코드 수정:
    在这里插入图片描述
    구체 적 인 코드 는 다음 과 같다.
    
    package org.ngrinder.perftest.service;
    import org.ngrinder.infra.config.Config;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.ApplicationContextAware;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.context.annotation.EnableAspectJAutoProxy;
    import org.springframework.context.annotation.Profile;
    import org.springframework.scheduling.annotation.EnableScheduling;
    import org.springframework.transaction.annotation.EnableTransactionManagement;
    /**
     * Dynamic creation of {@link PerfTestService} depending on the cluster enable or disable.
     *
     * @author JunHo Yoon
     * @since 3.1
     */
    @Configuration
    @Profile("production")
    @EnableScheduling
    @EnableTransactionManagement
    @EnableAspectJAutoProxy
    public class PerfTestServiceConfig implements ApplicationContextAware {
       @Autowired
       private Config config;
       private ApplicationContext applicationContext;
       /**
        * Create PerTest service depending on cluster mode.
        *
        * @return {@link PerfTestService}
        */
       @Bean(name = "perfTestService")
       public PerfTestService perfTestService() {
          if (config.isClustered()) {
             return applicationContext.getAutowireCapableBeanFactory().createBean(ClusteredPerfTestService.class);
          } else {
             return applicationContext.getAutowireCapableBeanFactory().createBean(PerfTestService.class);
          }
    //    return applicationContext.getAutowireCapableBeanFactory().createBean(
    //          config.isClustered() ? ClusteredPerfTestService.class : PerfTestService.class);
       }
       @Override
       public void setApplicationContext(ApplicationContext applicationContext) {
          this.applicationContext = applicationContext;
       }
    }
    Tomcat 다시 설정:
    在这里插入图片描述
    실행 방법 선택:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    선택 할 때 업데이트 실행:
    在这里插入图片描述
    在这里插入图片描述
    JVM 시작 인 자 를 추가 하 는 것 이 좋 습 니 다:
    
    -Xms1024m -Xmx1024m -XX:MaxPermSize=200m
    메모리 이상 방지
    在这里插入图片描述
    클릭 하여 확인:
    在这里插入图片描述
    시작 항목:
    在这里插入图片描述
    5.시작 검증
    브 라 우 저 를 열 어 성공 여 부 를 검증 합 니 다:
    http://localhost:8081/ngrinder/login
    在这里插入图片描述
    로그 인 성공:
    在这里插入图片描述
    6.원본 디 버 깅 간단 한 스 크 립 트 사용script-sample프로젝트 에서pom.xml파일 증가:
    在这里插入图片描述
    코드 는 다음 과 같 습 니 다:
    
    <!-- https://mvnrepository.com/artifact/junit/junit -->
    <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <version>4.12</version>
       <scope>test</scope>
    </dependency>
    아이디어 에서 전역 검색:
    groovy-all
    在这里插入图片描述
    버 전 번호 보기
    2.4.16
    7.대본 작성 모방
    플랫폼 을 통 해 스 크 립 트 생 성:
    在这里插入图片描述
    클릭R HEAD:
    在这里插入图片描述
    스 크 립 트 보기:
    
    importstatic net.grinder.script.Grinder.grinder
    importstatic org.junit.Assert.*
    importstatic 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.util.Date
    import java.util.List
    import java.util.ArrayList
    importHTTPClient.Cookie
    importHTTPClient.CookieModule
    importHTTPClient.HTTPResponse
    importHTTPClient.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)
    classTestRunner{
    
    publicstaticGTest test
    publicstaticHTTPRequest request
    publicstaticNVPair[] headers = []
    publicstaticNVPair[] params= []
    publicstaticCookie[] cookies = []
    
    @BeforeProcess
    publicstaticvoid beforeProcess() {
    HTTPPluginControl.getConnectionDefaults().timeout = 6000
    		test = newGTest(1, "www.baidu.com")
    		request = newHTTPRequest()
    		grinder.logger.info("before process.");
    }
    
    
    @BeforeThread
    publicvoid beforeThread() {
    		test.record(this, "test")
    		grinder.statistics.delayReports=true;
    		grinder.logger.info("before thread.");
    }
    
    
    @Before
    publicvoid before() {
    		request.setHeaders(headers)
    		cookies.each { CookieModule.addCookie(it, HTTPPluginControl.getThreadHTTPClientContext()) }
    		grinder.logger.info("before thread. init headers and cookies");
    }
    
    
    @Test
    publicvoid test(){
    HTTPResponse result = request.GET("https://www.baidu.com/", params)
    
    if(result.statusCode == 301|| result.statusCode == 302) {
    			grinder.logger.warn("Warning. The response may not be correct. The response code was {}.", result.statusCode);
    
    } else{
    			assertThat(result.statusCode, is(200));
    }
    }
    }
    스 크 립 트 복사:
    아이디어 에 새 스 크 립 트 만 들 기:
    在这里插入图片描述
    Groovy 스 크 립 트 선택:
    在这里插入图片描述
    이름 을 입력 하고 저장 을 클릭 하면 됩 니 다:
    在这里插入图片描述
    새 작업 이 끝 났 습 니 다.방금 스 크 립 트 를 복사 해서 방법 이름 을 수정 하 십시오.
    在这里插入图片描述
    클릭 하여 실행:
    在这里插入图片描述
    힌트 를 볼 수 있 습 니 다:
    在这里插入图片描述
    Idea ->Run->Edit Configurations->Default->Junit-> VM options에 사용자 정의 설정 을 작성 하고 Apply 단 추 를 누 르 면 설정 을 저장 하면 유효 합 니 다.
    在这里插入图片描述
    다시 클릭:
    在这里插入图片描述
    실행 결 과 는 다음 과 같 습 니 다.
    在这里插入图片描述
    이 컴퓨터 스 크 립 트 디 버 깅 에 성 공 했 습 니 다.
    소결
    다음 에 로 컬 매개 변수 화 와 Post 요청 을 다시 공유 합 니 다.
    이상 은 성능 도구 의 nGrinder 소스 코드 설치 에 대한 상세 한 내용 입 니 다.nGrinder 소스 코드 설치 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!

    좋은 웹페이지 즐겨찾기