본문 바로가기
반응형

자동화(Automation)16

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.
Selenium_HttpUrlConnection 안녕하세요. 오늘은 selenium에서 url을 검증하는 방법에 대해서 포스팅해보고자 합니다. 자동화를 하다 보면 많이 쓰이는 부분이 url 확인인데요. 보통 웹에서는 depth가 나눠지고 각각마다 url 이동이 많기 때문에, 웹 자동화를 사용하시는 분들이라면 많이들 url 링크가 정상적으로 접속되는가를 확인해보셨으리라 생각합니다. 근데 어떻게 정상적으로 접속되었는가를 확인하는 방법이 테스트하는 방법은 사람마다 다를것 같습니다. 저는 Assert문으로 기대결과와 getCurrentUrl()메소드를 이용해 실제 결과를 비교하는 방법을 사용했었는데요. 뭔가 url이 바뀔때마다 수정이 필요한 방법이라 다른 방법으로 url 페이지가 정상 접속되는지 확인하는 방법에 대해 알아보려고 합니다. 페이지가 정상 접속이 .. 2022. 9. 16.
Selenium_Window tab 안녕하세요. 이번 포스팅 주제는 윈도우 탭 페이지에 관한 자동화 내용을 다뤄보려고 합니다. 자동화를 할 때 의도적으로 새탭을 생성해서 사용이 필요한 경우도 있고, 아니면 새 페이지가 열리면서 본창이 아닌 새 탭으로 열리는 경우가 있어서 탭에 관해 한번 정리해두면 좋을 것 같아서 이번 기회에 정리해보고자 합니다 :) 위와 같이 탭이 여러개 있을 경우 구분을 해줘야 합니다. driver.getWindowHandle() : 현재 윈도우 탭 핸들을 구분해주기 위해 사용됨. driver.switchTo().window(windowhandle) : window() 안에 windowhandle명을 사용해서 어느 탭으로 이동시켜줄지를 결정함. @Test public void TabChange() { driver.get.. 2022. 9. 10.
TestNG_실행파일 TestNG 홈페이지를 살펴보다가 selenium 영역에서 결과를 확인할 때 파일에서 run as 버튼을 눌러줘서 확인을 하는 간단한 방법을 물론 사용해도 되지만, xml 파일을 만들어서 특정 클래스나 메소드만 run을 해주어서 결과를 얻을 수 있습니다. https://testng.org/doc/selenium.html#creating_xml TestNG Selenium and TestNG This documentation was written by Felipe Knorr Kuhn and is adapted from a series of articles posted on his blog. Content How to use TestNG configuration methods with parameters H.. 2022. 9. 5.
Selenium_Assert&Verify 자동화를 통해서 검증하는 방법에는 두 가지를 사용하는데요. Assert문이나 Verify문입니다. 둘의 차이는 중간에 실패시 다음 테스트 명령에 영향을 주느냐로 나뉘는 걸로 알고 있었습니다. Assert를 사용하고 실패하면 그 테스트의 아래 코드는 실행되지 않고 바로 fail처리되고, Verify는 그 문구가 실패하더라고 그 테스트의 아래 코드의 다른 코드는 실행됩니다. 그렇다면 언제 어떻게 사용되는게 좋을지 Asserts와 Verify를 비교해보도록 하겠습니다. Asserts selenium에서 asserts는 애플리케이션에 대한 유효성 검사 또는 체크포인트로 사용합니다. 동작이 예상대로 작동하고 있는지 확실하게 검사할 수 있습니다. assert문 조건을 충족하지 않을 경우 테스트 실행이 중단됩니다. .. 2022. 8. 20.
Selenium_WebDriverManager 웹 자동화를 하면서 웹 드라이버를 사용했습니다. 그동안 드라이버들이 브라우저 버전이나 경로를 따로 지정해줘서 사용했는데 드라이버 버전이 올라가면서 새로 받아줘야 하는 불편함이 있다는 걸 깨닫게 되었습니다. 편하고자 자동화를 하는건데, 이러면 편하지 않아서 방법을 찾아보니 웹 드라이버 관련 설정을 쉽게 하는 게 있어서 공유해보고자 합니다! 그러려면 maven 프로젝트로 생성해주고 관리해야 하는데요. 새롭게 Maven Project로 만들어주고, Workspace 위치를 지정해준 다음, 아카이브 타입을 선택해줍니다. 아카이브 타입은 일종의 템플릿이라고 보면 되는데, 본인이 사용하고 싶은 특수한 아카이브가 있는게 아니었기 때문에 maven-archetype-quickstart를 사용했습니다. 해당 메이븐에서 .. 2022. 8. 10.
Selenium_Wait 웹은 비동기적 특성을 가지고 있기 때문에, 웹 드라이버는 DOM의 real-time 상태를 추적하지 않습니다. 자동화를 실행하다보면, 웹 페이지를 이동한 후 지시한 element를 찾으려고 할때 해당 element를 찾을 수 없는 오류가 발생하는 경우가 종종 발생합니다. 이런 경우를 해결하기 위해서 wait를 사용하게 되는데요. 이번 포스팅에서는 wait를 정리해서 올려보고자 합니다. (1) 명시적 대기(Explicit wait) 명시적 대기는 설정한 조건이 통과될때까지 작성한 코드가 프로그램을 실행중지하거나 thread를 고정할 수 있게 해줍니다. 즉, 조건이 잘못된 값을 반환하는 동안에는 계속 시도하고 대기합니다. 명시적 대기 시간은 조건이 발생할때까지 대기할 수 있으므로 브라우저와 해당 DOM 및 .. 2022. 8. 5.
반응형