Mock 서버 된다며?... 왜 내 테스트는 실패할까
📁 Automation

/

2025.04.18
지난 글에서 Postman의 변수 바인딩 기능`{{email}}`을 활용해 자동화 테스트를 구성해봤어요.그런데 반복 테스트를 하다 보니, 그 변수값이 응답에 반영되지 않는 문제가 생겼고,이걸 해결해보려고 Mock 서버를 만들어보았어요. 백엔드로만 테스트하는 방법: API 테스트 자동화API 테스트 자동화란?프론트엔드 없이도, 백엔드 서버가 제대로 동작하는지 직접 확인하는 테스트예요.예를 들어 로그인 기능을 만든 백엔드 개발자가 있을 때, 화면에서 로그인 버튼을 누르지dayedev.tistory.comMock 서버란?실제 서버 없이도, 미리 정해놓은 응답을 "가짜로 흉내내는 서버" 예요.진짜 서버는 없는데,특정 URL에 요청하면, 내가 설정한 "미리 만들어 둔 응답"을 돌려줘요.Mock 서버를 만드는 이유..
API 테스트와 Postman UI 기본 동작 설명
📁 Automation

/

2025.04.18
API 테스트 자동화란?프론트엔드 없이도, 백엔드 서버가 제대로 동작하는지 직접 확인하는 테스트예요.예를 들어 로그인 기능을 만든 백엔드 개발자가 있을 때, 화면에서 로그인 버튼을 누르지 않고,백엔드가 만든 /login API에 직접 요청을 보내서 결과가 제대로 나오는지 확인하는 거에요.API 테스팅의 종류성능 테스트 (얼마나 빠른가?) 보안 테스트 (취약점은 없는가?)신뢰성 테스트 (오류 처리는 잘 되는가?)부하 테스트 (얼마나 많은 요청을 견디는가?)기능 테스트 (명세대로 동작하는가?)예시: def test_login_success(): url = "https://testsite.com/api/login" data = {"email": "user@test.com", "password": "..
프론트와 백이 소통하는 방법: HTTP, API 개념 정리
📁 Automation

/

2025.04.14
1. 웹 애플리케이션 구조웹 서비스는 크게 두 부분으로 나뉘어요.클라이언트(Client): 브라우저, 사용자 쪽 (요청을 보냄)서버(Server): 요청을 받고, 필요한 데이터(DB) 처리 후 응답을 반환하는 쪽예시:사용자가 [로그인] 버튼 을 클릭해요.브라우저는 서버에 로그인 요청을 보내요.서버는 사용자 정보를 확인하고 "로그인 성공" 응답을 보내요.이때 클라이언트를 프론트엔드,서버는 백엔드라고 불러요.2. HTTP란?HTTP = HyperText Transfer Protocol→ 웹에서 정보를 주고받는 규칙(프로토콜)이에요. [브라우저] → [서버]요청(Request) 응답(Response)예시:"이 페이지 보여줘!" → 요청 "여기 페이지야~" → 응답요청과 응답은 항..
Selenium과 자바스크립트로 요소 찾는 방법
📁 Automation

/

2025.04.14
테스트 자동화는 결국 "웹 페이지 안에서 어떤 요소를 찾아서 조작할 것인가"에 달려 있어요.그걸 하기 위해선 가장 먼저 대상 요소를 정확히 찾아야 합니다.그런데 요소가 `id`, `name`, `class`로 딱 구분되어 있으면 쉬운데,식별자 없이 태그나 텍스트만 있는 경우엔 어떻게 해야 할까요?요소 찾는 우선순위ID: `By.ID("submit-btn")` , 빠르고 유일함NAME: `By.NAME("email")` , 폼 요소에서 자주 사용CLASS_NAME: `By.CLASS_NAME("title")` , 중복 많아질 수 있음CSS_SELECTOR: `div.card > button.btn` , 속도 빠름, 구조 읽기 편함XPATH: `//button[text()='확인']` , 텍스트/조건 조합 ..
Pytest, POM, DDT, 리포트 자동화: QA 자동화 테스트 흐름 정리
📁 Automation

/

2025.04.14
1. 테스트 프레임워크란?자동화 테스트를 작성할 때 가장 처음 고민해야 하는 게 "어떤 도구로 테스트를 짤까?" 이고이때 사용하는 게 바로 테스트 프레임워크예요.쉽게 말하면, 테스트를 구조화하고, 실행하고, 결과까지 정리해주는 도구라고 보면 돼요.1-1. 왜 테스트 프레임워크를 써야 할까?일반 코드처럼 짤 수 있는데 왜 프레임워크를 써야 하지? 라고 생각이 들 수 있는데예시와 이유를 설명해 드릴게요.`test_login()` 이런 함수로도 테스트는 가능하지 않을까? → 실행 순서 제어가 안돼요.결과는 `console.log()`로 찍어보면 되잖아? → 수동 확인이 필요해요.실패했는지 성공했는지 내가 판단하면 되지! → 자동화의 의미가 없어져요.1-2. 테스트 구조 이해하기프레임워크를 쓰면 아래처럼 테스트..
__init__() 생성자와 self는 왜 필요할까?
📁 Automation

/

2025.04.11
Selenium + Pytest로 테스트 코드를 짜다 보면,`__init__`, `self`, `driver`, `createDriver` 같은 단어들이 등장해요.처음엔 이게 서로 어떻게 연결되는지, 왜 `self`를 써야 하는지,어떤 값이 어디서 자동으로 넘어오는 건지 헷갈릴 수 있어요. 이 글에서는`__init__`과 `self`가 왜 필요한지 픽스처에서 생성자까지 `driver`가 전달되는 흐름 과정을 쉽게 설명해봤어요. 글의 마지막엔 전체 흐름을 정리한 이미지도 있으니,끝까지 보면 이해가 될거예요.1. __init__() 클래스에서 객체를 만들면 가장 먼저 실행되는 함수가 있어요.그게 바로 `__init__()`이에요. 우리는 이걸 생성자라고 불러요.객체가 만들어질 때 자동으로 실행되는 준비 함수..
기능 QA 프로세스 설계 및 테스트 자동화 구축
📁 Project

/

2025.04.10
👇 1차 팀 프로젝트 결과 공개더보기엘리스 QA 트랙 자동화 프로젝트 1차 결과 발표에서 저희 5팀은 우수상 을 수상했고,이번 결과는 더욱 보람차게 다가왔어요.단순히 상을 받았기 때문이 아니라,기초부터 하나씩 쌓아가며 올바른 방향으로 구조를 설계하고,유지보수성과 확장성까지 고려한 우리의 방식이옳은 방향이였고 결국 그 노력이 성과로 이어졌다고 생각하기 때문이에요.발표 당일, 다른 팀의 발표를 들으며 기억에 남았던 건폴더 구조, 객체 재사용, 유지보수성에 대한 피드백이 자주 나왔다는 점이었어요.어떤 팀은 시나리오 하나마다 폴더를 따로 만들었고,또 어떤 팀은 Locator 정보를 테스트 파일 안에 바로 넣어서재사용과 유지보수가 어려워지는 구조를 택했더라고요.그에 반해 저희는각자 브랜치로 분산 작업 → 충돌 ..
Selenium과 자바스크립트 비동기 처리 예제: 로그인 자동화
📁 Automation

/

2025.04.09
문제: 페이지에서 텍스트 필드에 아이디 입력하고 로그인 버튼 클릭하기설명이번 실습에서는 Selenium과 비동기 처리인 `async/await`, `try...finally` 문을 활용하여지정된 테스트 페이지에 접속한 후 텍스트를 입력하고 버튼을 클릭하는 자동화 코드를 작성합니다.📁 HTML 예시 (index.html) 로그인 시뮬레이션 로그인👤 지시사항✅ 1~3: 자바스크립트의 비동기 문법과 예외 처리 구조✅ 4~8: Selenium을 이용한 브라우저 자동화1. `selenium-webdriver`에서 필요한 모듈을 `require`로 불러오세요.2. `async` 함수 `runTest()`를 정의하세요.3. `try...finally` 구문을 사용하여 드라이버 자원 해제를 보장하세요.4. ..
Selenium과 자바스크립트에서 비동기 사용 이유: 에러 처리 방법(try/catch/finally)
📁 Automation

/

2025.04.08
Selenium이나 자바스크립트 자동화 공부하다 보면 꼭 마주치는 개념이 바로동기(Synchronous) 와 비동기(Asynchronous) 방식이에요.동기: 일을 순서대로 하나씩 처리비동기: 기다리지 않고 일을 동시에 처리1. 동기(Synchronous)일을 순서대로, 차례차례 처리해요.앞에 있는 일이 끝나야 그 다음 일을 할 수 있어요.예시:1. 요청 A 시작 → 기다림2. 요청 A 끝나고 → 요청 B 시작 → 기다림3. 요청 B 끝나고 → 요청 C 시작하나가 끝나야 다음으로 넘어갈 수 있는 방식이에요.모든 작업이 순차적으로 이뤄지고, 대기 시간이 길면 전체 흐름도 느려져요.console.log("A 작업 시작");작업이 끝날 때까지 기다림console.log("B 작업 시작");예시 상황:음식점에서..
자바스크립트 변수 선언: var, let, const 차이점
📁 Automation

/

2025.04.08
자바스크립트 변수 선언, 왜 `var` 말고 `let`, `const`를 쓸까?자바스크립트에서 변수를 선언할 때 사용할 수 있는 키워드는 총 세 가지예요.근데 요즘엔 대부분 `let`이랑 `const`만 쓰고, `var`는 거의 안 써요.왜 그런지, 하나씩 예시와 함께 정리해볼게요.1. `var` – 예전 방식 var name = "다예";var name = "데이"; // 재선언 가능 (문제 발생 가능)console.log(name); // 데이`var`는 같은 이름으로 또 선언이 가능해서 버그의 원인이 될 수 있어요.그리고 블록({ }) 안에서 선언해도 밖에서 그대로 접근 가능해요.예전에는 기본이었지만, 지금은 `let`과 `const`가 생긴 이후 거의 안 써요.요즘 자바스크립트에서는 var..