상세 컨텐츠

본문 제목

실전 자동화 스크립트 작성#2 (동작에 따른 결과값의 변화 확인)

Katalon studio

by 아롱둥실 2020. 12. 31. 20:16

본문

이번 포스팅에서는 동작에 따른 결과값의 변화를 확인하는 스크립트 작성을 해보겠습니다.

<예제>

네이버부동산 'TODAY TIP!' 섹션의 Swipe버튼을 클릭 -> 1/2페이지에서 2/2 페이지로 이동

Web recorder를 켜서 네이버로 이동 후 부동산 탭을 클릭합니다.

'TODAY TIP!' 섹션의 페이지 표시가 현재 1/2 페이지 임을 확인할 수 있습니다.

우측으로 스와이프 버튼을 클릭합니다.

2/2페이지로 변경되었습니다. 

네이버 > 부동산 > Swipe버튼 클릭 동작을 Record하되, 페이지 표시(X/Y)부분 중 'X' 부분도 함께 오브젝트로 저장합니다. (Swipe 버튼 클릭 시, 변동되는 값은 X/Y중 X이므로)

정상적으로 동작하였는지 확인하기 위해 아래의 절차를 거치는 스크립트를 작성해보겠습니다.

1. 네이버 진입

2. 부동산 탭 클릭

3. 'TODAY TIP!' 섹션의 현재 페이지 값(X/Y 중 X의 값) 확인

4. 우측으로 Swipe 버튼 클릭

5. '현재 페이지 값'이 'Swipe 버튼을 누르기 전의 페이지 값'보다 증가하였는지 확인

import static com.kms.katalon.core.checkpoint.CheckpointFactory.findCheckpoint
import static com.kms.katalon.core.testcase.TestCaseFactory.findTestCase
import static com.kms.katalon.core.testdata.TestDataFactory.findTestData
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject
import static com.kms.katalon.core.testobject.ObjectRepository.findWindowsObject
import com.kms.katalon.core.checkpoint.Checkpoint as Checkpoint
import com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords as CucumberKW
import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as Mobile
import com.kms.katalon.core.model.FailureHandling as FailureHandling
import com.kms.katalon.core.testcase.TestCase as TestCase
import com.kms.katalon.core.testdata.TestData as TestData
import com.kms.katalon.core.testobject.TestObject as TestObject
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import com.kms.katalon.core.windows.keyword.WindowsBuiltinKeywords as Windows
import internal.GlobalVariable as GlobalVariable
import org.openqa.selenium.Keys as Keys

WebUI.openBrowser('')

WebUI.navigateToUrl('https://www.naver.com/')

WebUI.maximizeWindow()

WebUI.click(findTestObject('Object Repository/Naver_2/Page_NAVER/a_'))

Before = WebUI.getText(findTestObject('Naver_2/Page_/strong_1'))

String[] BeforeStr = Before.split(' ')

int BeforeInt = Integer.parseInt(BeforeStr[0])

WebUI.click(findTestObject('Object Repository/Naver_2/Page_/a_'))

After = WebUI.getText(findTestObject('Naver_2/Page_/strong_1'))

String[] AfterStr = After.split(' ')

int AfterInt = Integer.parseInt(AfterStr[0])

WebUI.verifyGreaterThan(AfterInt, BeforeInt)

WebUI.closeBrowser()

값을 정의하고 저장해야 하는 절차가 필요하므로 Script모드 사용이 필요합니다.

네이버 부동산에 진입 후 현재 페이지 값을 Text형태로 얻어 'Before'라는 이름으로 저장한뒤 Int형태로 형변환하여 'BeforeInt'라는 이름으로 저장하였습니다.

그 다음, 우측 Swipe 버튼 클릭 동작 후 'BeforeInt'를 저장했던 방법과 마찬가지로 현재 페이지 값을 'AfterInt'라는 이름으로 저장하였습니다.

'BeforeInt'의 값은 1로 저장되었고 'AfterInt'의 값은 2로 저장되었으니 'BeforeInt' < 'AfterInt'가 성립하는지 확인하도록 verifyGreaterThan 액션을 사용합니다.

스크립트 모드로 작성 후 매뉴얼 모드로 이동하면 위와같은 다소 어색한 형태의 스크립트가 작성되어 있습니다.

값의 변동을 확인하는 케이스는 위 케이스 외에도 물품 구매 후 포인트 적립 동작 확인 등 여러 케이스에서 유용하게 쓰일 수 있습니다.

추가로 테스트 환경(해상도)의 변화에 따른 오류를 줄이기 위해 스크립트 초반부에 Maximize Window 동작을 넣으시는것을 추천드립니다.

다음 포스팅에서도 실무에서 유용한 스크립트 작성을 다뤄보겠습니다.  

 

관련글 더보기