글

라벨이 testing인 게시물 표시

gitHub gitaction을 이용해서 자동 코드 테스팅(JEST) 하기

이미지
 해당 글은 NestJS(NodeJS)을 이용하여 작성되었다. 프로젝트 루트 경로에 ".github/workflows"폴더를 만든다.  "workflows" 폴더 안에 git action에서 실행할 yaml파일을 만든다. 여기서는 test_workflow.yaml파일이다. # 워크플로우의 이름을 정의합니다. GitHub Actions 로그와 UI에서 이 이름이 표시됩니다. name : NestJS application test # 이 워크플로우가 어떤 GitHub 이벤트에 의해 트리거될지 정의합니다. # 여기서는 'push' 이벤트와 'pull_request' 이벤트에 대해 워크플로우가 실행됩니다. on : [ push , pull_request ] # 워크플로우에서 실행할 작업을 정의합니다. jobs : build : # 워크플로우가 실행될 가상 환경을 지정합니다. 여기서는 Ubuntu 22.04를 사용합니다. runs-on : ubuntu-22.04 # 워크플로우에서 실행할 단계들을 정의합니다. steps : - uses : actions/checkout@v2 # 첫 번째 단계: GitHub 리포지토리를 체크아웃합니다. # 이는 워크플로우가 리포지토리의 코드에 접근할 수 있게 해줍니다. - name : Set up Node.js uses : actions/setup-node@v2 # 두 번째 단계: Node.js 환경을 설정합니다. with : node-version : '20.10.0' # Node.js의 버전을 지정합니다. # 이 예시에서는 '20.10.0' 버전을 사용합니다. - name : Install dependencies run : | ...

K6 testing 간단한 GET 부하 테스트

이미지
 테스트 프로젝트에 js파일을 생성합니다. (testing1.js) // simpleGetTest/testing1.js import http from 'k6/http' ; import { sleep } from 'k6' ; export default function () { http . get ( '[테스트 하기 위한 URL정보]' ); sleep ( 1 ); } 매우 간단한 테스트 입니다. 1회만 해당 URL에 GET요청을 하고 status코드가 200이 오는지 확인합니다. import { sleep } from "k6" import http from "k6/http" // 테스트 옵션 // 10명의 가상 유저들이 30초간 export const options = { vus : 10 , // 10명의 가상 유저 duration : "30s" , // 30초간 } export default function () { http . get ( "[테스트 하기 위한 URL정보]" ) sleep ( 1 ) } 다음 테스트는 옵션을 줘서 10명의 유저가 30초간 GET요청을 하는 테스트입니다. import { sleep } from "k6" import http from "k6/http" // 테스트 옵션 export const options = { stages : [ { duration : "30s" , target : 20 }, // 30초동안 20명의 유저가 점진적으로 늘어난다 { duration : "1m30s" , target : 10 }, // 1분30초동안 10명의 유저가 유지된다. { duration : "20s" , target...

K6 Testing 테스팅툴 설치방법(Ubuntu 20.04)

이미지
서버 또는 웹을 개발하다 보면 해당 시스템이 얼마나 트래픽을 견딜수 있는지 확인할 필요가 있습니다. 하지만 1000명이 동시에 GET Request를 수동으로 구현하는 것은 쉽지가 않습니다. 피시방 여러군대를 매수해서 1000대의 PC에서 한 웹사이트에 GET요청을 해도 비용이 어마어마하게 나갈것이기 때문입니다.  확인을 하다가 오픈소스 툴인 K6를 추천받았습니다. Document를 읽으니 생각보다 사용하기 쉬워보여서 스터리를 진행하게 되었습니다. 일단 자세한 설치법은 공식 Document에도 나와있지만 저만의 글을 작성해서 설치법도 아래 적도록 하겠습니다. 공식문서 링크 : https://k6.io/docs/get-started/installation/#linux gpg를 이용하여 키 생성 $ sudo gpg --no-default-keyring --keyring /usr/share/keyrings/k6-archive-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C5AD17C747E3415A3642D57D77C6C491D6AC1D69 copy gpg를 이용하여 키 생성중 에러발생시 참고 --------------------------------------------- 위 사진처럼 에러 발생시 대처 방법 에러 발생시 참고 공식문서 링크 : https://k6.io/docs/get-started/installation/troubleshooting/ sudo를 이용하여 gpg 루트 생성 $ sudo gcg -k copy 셋팅 완료 --------------------------------------------- deb설치 k6 $ echo "deb [signed-by=/usr/share/keyrings/k6-archive-keyring.gpg] https://dl.k6.io/deb s...