본문 바로가기
반응형

분류 전체보기57

포스트맨_데이터 기반 테스트 좋은 테스트 케이스를 만들려면 시스템에 대한 다양한 입력을 시도해보는 것이 좋습니다. 자동화는 여러가지를 반복해서 확인하는데에는 좋지만, 각 입력에 대한 별도의 요청을 처리하는데에는 많은 작업이 필요할 수 있습니다. 그래서  많은 작업을 하는방법 대신에 데이터 기반 테스트를 하게 되면 자동화된 테스트의 효율을 높일 수 있습니다. 동등 분할 기법을 사용하여 데이터 기반 테스트를 위한 좋은 입력을 생성하고, 테스트 비교를 위한 유용한 출력을 정의하는 방법에 대해 포스팅해보고자 합니다. 아래에 postman에서 데이터 기반 테스트를 설정하고 응답결과를 파일의 데이터 출력과 비교할 수 있는 데이터 기반 테스트를 설정 및 실행하는 방법에 대해 서술해 보았습니다. 데이터기반 테스트는 API 테스트에만 제한된 개념은.. 2024. 9. 10.
Selenium_Button 사실 자동화를 진행하면서 가장 기본적이고 꼭 필수적인 기능이 버튼을 클릭하는 것이라고 생각합니다.다음 화면으로 넘어가거나, 원하는 값을 전달하기 위해서는 버튼이 클릭되어야 하는 경우가 많습니다.근데 사실 버튼 클릭방법에는 여러가지 방법이 있습니다. 단순하게 사용했던 selenium 버튼 클릭 방법에서부터 왜인지 버튼이 클릭되지 않을때  사용할  수 있는 방법들에 대해 정리해보았습니다. 1. element.click(); 가장 첫번째 방법이자 대표적인 방법으로 element를 선택해서 click 하는 방법입니다.  driver.get("https://www.selenium.dev/selenium/web/inputs.html"); // Click on the element WebElem.. 2024. 7. 12.
Selenium_가상키보드 우회방법 최근 결제 영역을 자동화를 처리하면서 새로운 문제에 도달했습니다.바로 가상키보드때문에 카드번호나 비밀번호 값을 어떻게 입력해줘야 하는 부분이었습니다.생각보다 가상키보드 영역을 자동화로 어떻게 풀어나가는지에 대한 문서가 많이 없는 것 같아, 이렇게 포스팅을 해보려고 합니다. 먼저, 가상키보드는 키보드 자판의 숫자나 문자의 위치가 열릴때마다 랜덤적으로 변경되는 특징을 가지고 있습니다. 이렇게 되다보니 처음 자동화를 구현하려고 할때, 원하는 키보드 포지션을 선택해서 매번 같은 결과가 나오게 하기 힘들었습니다. 그래서 시도해보면서 실패했던 경험담+완벽하진 않지만 해결했던 방법에 대해 공유드리고자 포스팅을 남깁니다! 가장 먼저 해봤던 방법은 가상키보드를 노출시키지 않고, "키패드에 있는 숫자를 입력해서 넣기"였습.. 2024. 6. 22.
appium 자동화 Setting 2(Window환경) 이번에는 윈도우환경에서 갤럭시탭 기기를 연결해서 크롬브라우저를 열어 테스트를 하는 방법에 대해 포스팅해보고자 합니다.우선 저의 목표는 브라우저를 열어서 테스트하는 방법이지만, Appium inspector을이용해서 app을 선택해서 테스트하는 자동화도 가능합니다.예시는, 아래와 같습니다.먼저 테스트기기가 노트북과 연결된 상태에서 Appium 서버는 구동되어 있어야 합니다.그리고 아래와 같은 코드를 입력하고, 테스트문을 실행하면 맨 하단과 같이 기기에서 실행이 됩니다. import io.appium.java_client.AppiumDriver;import io.appium.java_client.android.AndroidDriver;import org.openqa.selenium.remote.Desired.. 2024. 4. 28.
appium 자동화 Setting 1(Window 환경) 이전에 업로드한 자동화 셋팅 포스트는 PC나 노트북에서 웹 브라우저들을 자동화 테스트하기 위한 셋팅 방법을 공유했었습니다. 그 셋팅 부분이 가장 기초적이고 쉬운 자동화 셋팅 방법이라면 이번에는 휴대폰기기나 탭과 같은 태블릿 기기에서 웹 브라우저들을 열어 자동화하는 셋팅 방법에 대해 공유해보고자 합니다. 목표는 갤럭시 탭과 아이패드에서 브라우저들을 정상 구동하여 자동화 테스트하는데에 있습니다. APPIUM 자동화 SETTING1에서는 필요한 프로그램들을 설치해주고 연결이 되는 화면까지만 확인해 보도록 하겠습니다. 필요한 프로그램들은 Node js/Android studio/appium(appium server GUI/appium inspector) 이렇게 있습니다. 1. Node js download ht.. 2024. 3. 31.
포스트맨에서 테스트 스크립트 작성방법 포스트맨에서 테스트 검증 스크립트를 작성하는 방법에 대해 설명해보고자 한다. 포스트맨은 이것을 위해 자바 스크립트를 사용한다. 포스트맨은 테스트 검증을 위해 자바스크립트를 사용하는 것 외에도 설정 스크립트와 해체 스크립트를 만드는 방법을 제공한다. 이를 사용하여 테스트를 실행하기 전에 몇 가지 설정을 할 수도 있고, 테스트가 완료된 이후에 정리 작업을 할 수도 있다. API response 확인 사용할 예제 코드 : https://swapi.dev/ pm.test method 사용방법 포스트맨에서 Tests 탭을 선택하면 각 요청에 대해 확인할 항목을 정의할 수 있다. 왼쪽 패널에 사용가능한 다양한 snippets이 있다. SWAPI - The Star Wars API What is this? The S.. 2024. 2. 28.
포스트맨을 이용한 보안 테스트 Fuzzing test Fuzzing 혹은 Fuzzing test라고 불리는 것은 프로그램이나 서비스에 무작위로 입력을 하여 예기치 않은 일이 발생하는지 확인하는 개념이다. 단순한 테스트 방법으로, 말이 되는지 안되는지에 대해서는 고려하지 않고 무슨 일이 발생하는지 보기 위해 다른 입력을 계속 시도한다. API가 프로그램적으로 상호작용하도록 설계되었기 때문에, 이러한 종류의 테스팅에 매우 적합한 테스트 방법이다. 아이러니한 점은 Fuzzing은 강력한 테스트 기법이지만 해킹 기법이기도 하다는 점이다. 해커들이 API에서 취약점을 찾을 수 있는지 확인하기 위해 Fuzzing을 시도해 볼 때가 있다. - Command injection, 명령어 삽입 API를 이용하면 웹 서비스에 명령어를 보낼 수 있다. 보.. 2024. 1. 31.
API_ Authorization & Authentication API에서의 권한부여(Authorization) 권한부여란 우리가 주어진 사용자가 어떤 일을 하도록 허락하는지를 결정하는 것을 의미한다. 예를 들어, 학생들은 자신의 학점만 볼 수 있고 교사인 다른 사용자는 다른 데이터도 볼 수 있을 것이고 데이터의 수정과 입력이 가능할 것이다. 권한부여란 어떤 일을 할 수 있는 허용을 받았는지를 결정하는 것이라고 할 수 있다. API에서 이것은 엔드포인트에서 다른 엔드포인트까지 특정 방식을 사용할 수 있는 권한을 부여받았는지를 결정하는 형식을 취할 수 있다. 예를 들어, 어떤 사용자는 어떤 엔드포인트에는 아예 사용할 수 없는 반면 어떤 경우에는 엔드포인트를 사용하여 데이터를 얻는 것이 허용될 수 있다. API 보안에 있어서 인증 및 권한 부여는 매우 중요한 부분이다. .. 2024. 1. 1.
Open API와 API 명세 컴퓨팅의 역사는 점점 더 높은 수준의 추상화의 길이다. API가 유명해지면서, 소스코드에 대해 아무것도 모르는 유저들이 원격 서비스와 쉽게 사용할 수 있도록 API의 작동방식을 지정할 수 있는 인터페이스가 개발되는데 이를 API 명세 언어(API specification languages)라고 부른다. 이 언어는 API 개발을 다양한 방향으로 돕는다. 클라이언트와 API를 만드는 사람들 사이에 정보를 더 쉽게 공유할 수 있게 해주고 또한 많은 자동화를 가능하게 해준다. API Specifications 일부 API는 엄격하게 정의된 프로토콜을 따른다. 하지만 RESTful API는 일반적인 원칙들이 제시되어 있지만 지켜야 하는 엄격한 프로토콜은 없다.SOAP API는 엄격한 프로그래밍 규칙에 따라 구조를.. 2023. 12. 8.
API_용어와 유형 APIs (Application Programming Interfaces) : 개념적으로는 소프트웨어 애플리케이션간에 서로 상호작용하는 방법을 말한다. - 인터페이스 역할: API는 두 개 이상의 소프트웨어 컴포넌트 간의 인터페이스 역할을 한다. 이것은 서로 다른 프로그램이나 시스템이 데이터를 요청하고 주고 받을 수 있는 방법을 정의한다. - 기능 제공: API는 특정 기능 또는 작업을 수행할 수 있는 메서드, 함수 또는 명령어를 제공한다. 이것은 다른 소프트웨어에서 해당 기능을 호출하거나 사용할 수 있도록 한다. - 추상화: API는 구체적인 내부 동작을 추상화하여 개발자가 내부 구현에 대해 자세한 지식이 없어도 사용할 수 있도록 한다. 이것은 소프트웨어 개발을 단순화하고 효율적으로 만든다. - 표준화.. 2023. 10. 25.
반응형