☑ 수백개의 폴더를 생성하고 생성된 모든 폴더에 동일하게 2~3개의 파일을 복사해야할 업무가 발생하여

Jmeter를 이용하여 처리해 보았습니다. 

  개요

  요소 위치

   설정

 

위에서 생성한 폴더의 하위에서 아래 Copy 작업이 발생하게 됩니다.

최종적으로 우측의 명령이 실행 됩니다. Executing: cmd /C mkdir 127.0.0.1

 

최종적으로 우측의 명령이 실행 됩니다. Executing: cmd /C copy d:\file\*.* 127.0.0.1

 

CSV파일에는 220개이 IP 정보가 저장되어 있고, Column Header는 없습니다.

 

✅ Jmeter를 이용하면 다양한 업무를 쉽고 빠르게 처리할 수 있으니 고민해 보시길 바랍니다.

✅ JMeter 설치 방법 : https://devse.tistory.com/104

 

1. Jmeter 설치 (Open JDK 설치)

✅ Jmeter 다운로드 사이트 https://jmeter.apache.org/download_jmeter.cgi ✅ Jmeter 5.5 다운로드 https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.5.zip ✅ 다운받은 Jmeter 압축파일을 원하는 폴더에 압축 해제 ✅ Open J

devse.tistory.com

 

✅ Node.js로 제작한 서버를 테스트하기 위하여 JMeter를 사용합니다. 

 

✅ JMeter의 Test Plan 설정 예시 입니다. 

  • 본 게시물에서 설명했던 JMeter 설정파일을 첨부하였습니다.

HttpGet_20230131.jmx
0.01MB

 

✅ 1. HttpGet(Test Plan) 하위에 Thread Group을 추가합니다. 

  • Thread Group : 하위 작업을 반복하는 컨트롤러 입니다.

 

✅ 2. Thread Group의 하위에 HTTP Request 샘플러를 추가합니다.

  • HTTP Request : Http 요청을 위한 컨트롤러 입니다.

 

 3. HttpGet(Test Plan) 하위에 View Results Tree 리스너를 추가합니다.

  • View Results Tree : 각 Http Request 작업에 대한 요청 및 결과를 확인하기 위한 컨트롤러 입니다.

 

 4. HttpGet(Test Plan) 하위에 Summary Report 리스너를 추가합니다.

  • Summary Report : 총 요청 결과에 대한 요약 정보 컨트롤러 입니다.

 

5. Thread Group 을 설정합니다.

  • 총 100개의 Thread를 생성하고 Thread당 100번의 하위 작업을 실행합니다.

 

6.   Http Request를 설정합니다.

  • Node.js Express 서버를 띄워놓았습니다.

 

7.   Start 버튼을 눌러 작업을 시작합니다.

 

8.  작업이 완료된 후

 View Results Tree를 통해서 처리(요청)결과를 확인하고 오류가 있을 경우 세부 내역을 확인할 수 있습니다.

Summary Report를 통해서 처리량(성능)을 측정할 수 있습니다.

 

✅ Jmeter 다운로드 사이트 

https://jmeter.apache.org/download_jmeter.cgi

JMeter 다운로드 사이트

 

✅ Jmeter 5.5 다운로드 

https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.5.zip

다운받은 Jmeter 압축파일을 원하는 폴더에 압축 해제

JMeter 압축 해제

 

 


 

Open JDK 다운로드

https://jdk.java.net/19/

오라클의 Open JDK 다운로드 사이트

https://download.java.net/java/GA/jdk19.0.2/fdb695a9d9064ad6b064dc6df578380c/7/GPL/openjdk-19.0.2_windows-x64_bin.zip

압축 해제

OR  - 위 아래 둘중의 하나를 다운받으시면 됩니다. Amazon 의 경우에는 설치파일도 있기때문에 좀더 편하게 설치하실 수 도 있습니다.

 

Amazon OpenJDK 다운로드 

https://docs.aws.amazon.com/corretto/latest/corretto-19-ug/downloads-list.html

아마존의 Open JDK 다운로드 사이트

https://corretto.aws/downloads/latest/amazon-corretto-19-x64-windows-jdk.zip

압축 해제

 


 

✅ 시스템 변수 설정

  • JAVA_HOME 시스템 변수를 등록합니다. 변수값으로는 Open JDK 폴더를 입력합니다.
  • Path 시스템 변수에 %JAVA_HOMT%\bin 경로를 추가합니다.

시스템 환경변수 설정

 

Java 버전 확인 및 설치 확인

  • CMD 창에서 java -version 명령을 실행합니다.

JDK 버전 확인

 

JMeter 실행

  • JMeter 설치 폴더(d:\Util\apache-jmeter\apache-jmeter-5.5\bin\) 에서 jmeter.bat 를 실행하여 JMeter 프로그램이 정상 실행되는지 확인 합니다.

JMeter 실행 화면

Autohotkey 에서 창 크기 조정 단축키 코드 입니다.

가로 세로를 아래 코드를 응용하시면 됩니다. 

본인은 Ctrl + Shift + Left/Right 단축키를 줄선택으로 정의해 놓아서 창 크기 조정은 정의하지 않았습니다.

; 활성창의 높이를 증가
^+Down::
	; 활성창 타이틀 조회
	WinGetActiveTitle, title
	; 활성창 위치,크기 조회
	WinGetPos, x, y, Width, Height, %title%
	; 활성창의 크기 조정
	WinMove, %title%, , x, y, Width, Height + 20
	Return
	
; 활성창의 높이를 축소	
^+Up::
	; 활성창 타이틀 조회
	WinGetActiveTitle, title
	; 활성창 위치,크기 조회
	WinGetPos, x, y, Width, Height, %title%
	; 활성창의 크기 조정
	WinMove, %title%, , x, y, Width, Height - 20
	Return

AutoHotKey 소스코드 입니다.

; 활성창을 해당 모니터 영역의 좌측 1/2영역에 배치
^+1::
	WinGetActiveTitle, title
	WinGetPos, x, y, Width, Height, %title%
	SysGet, MonitorCount, MonitorCount
	Loop, %MonitorCount%
	{
		SysGet, Monitor, Monitor, %A_Index%
		SysGet, MonitorWorkArea, MonitorWorkArea, %A_Index%
		if (MonitorWorkAreaLeft < MonitorWorkAreaRight){
			half_width := (MonitorWorkAreaRight - MonitorWorkAreaLeft) / 2
		}
		else {
			half_width := (MonitorWorkAreaLeft - MonitorWorkAreaRight) / 2
		}
		if ( x >= MonitorWorkAreaLeft && x < MonitorWorkAreaRight )
		{
			;MsgBox, 'Target Monitor NO: ' %A_Index%
			WinMove, %title%, , MonitorLeft, MonitorTop, half_width, MonitorWorkAreaBottom
			Break
		}
	}
	return

; 활성창을 해당 모니터 영역의 우측 1/2영역에 배치
^+2::
	WinGetActiveTitle, title
	WinGetPos, x, y, Width, Height, %title%
	SysGet, MonitorCount, MonitorCount
	Loop, %MonitorCount%
	{
		SysGet, Monitor, Monitor, %A_Index%
		SysGet, MonitorWorkArea, MonitorWorkArea, %A_Index%
		if (MonitorWorkAreaLeft < MonitorWorkAreaRight){
			half_width := (MonitorWorkAreaRight - MonitorWorkAreaLeft) / 2
		}
		else {
			half_width := (MonitorWorkAreaLeft - MonitorWorkAreaRight) / 2
		}
		if ( x >= MonitorWorkAreaLeft && x < MonitorWorkAreaRight )
		{
			;MsgBox, 'Target Monitor NO: ' %A_Index%
			WinMove, %title%, , MonitorLeft + half_width, MonitorTop, half_width, MonitorWorkAreaBottom
			Break
		}
	}
	return

현재 활성화된 창을 특정 위치로 이동하는 명령 입니다.

1
2
3
4
5
; 활성창을 특정 위치로 이동
^1::
    WinGetActiveTitle, title
    WinMove, %title%, , 2020
    return

 



2015년 AD Mob과 같은 광고 솔루션을 개발하면서 유여곡절 끝에 수행한 테스트 입니다.


서버 및 DB 개발이 완료되고 급하게 실제 모바일 게임(1000만 다운로드)에서 테스트를 겸하여 적용한 시점부터

Node.js 가 하수들 이나 쓰는 허접한 기술 이라며  까기 시작했고 Node.js 가 현재 우리의 급 에서는 적정 기술임을

어필 하였지만 결국 들어먹지는 아니하였다.

그 와중에 Node.js 의 고성능을 확인시켜 주기 위해 실제 환경에서 테스트를 진행 하였다.


구조는 아래와 같다.

본인은 테스트를 진행할 때 서버 상태정보와 DB 상태정보 등을 동영상으로 촬영하여 분석 및 보관하는것을 좋아한다.

두고 두고 보면서 각 서버들의 상태를 비교하여 병목지점을 찾는것에도 유용하게 쓰인다.


VirtualBox에 Centos를 설치하여 설정을 모두 잡고 로드밸런스 및 기타 테스트를 위하여 가상 머신을 복제 하였다.



- 스냅샷 항목의 가상머신 복제 사용


위와 같이 복제한 후 복제된 OS의 MAC Address를 변경하면 eth0이 활성화 되지 않는다.

#ifconfig -a 하면 eth1 이나 eth2가 표시된다.

그럴경우 다음과 같이한다.

1. # vi /etc/sysconfig/network-scripts/ifcfg-eth0

   ifcfg-eth0 에서 HWADDR="" 부분의 기존 주소를 지우고 새로 변경된 주소를 입력한다.

  * MAC 주소는  설정/네트워크 에서 확인 가능하다.

2. # rm -f /etc/udev/rules.d/70-persistent-net.rules      //해당 파일 삭제

3. # reboot                                                                //재부팅


그럼 정상적으로 eth0 이 활성화 되며 네트워크가 동작한다.


바로가기 앱: https://play.google.com/store/apps/details?id=com.orengineer.android.a209.floatingshotcut



+ Recent posts