이번 포스팅에서는 동작에 따른 결과값의 변화를 확인하는 스크립트 작성을 해보겠습니다.
<예제>
네이버부동산 '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 동작을 넣으시는것을 추천드립니다.
다음 포스팅에서도 실무에서 유용한 스크립트 작성을 다뤄보겠습니다.
실전 자동화 스크립트 작성#3 (파파고는 잘 돌아가고 있는가?) (0) | 2021.01.14 |
---|---|
실전 자동화 스크립트 작성#1 (랜딩 동작 확인) (0) | 2020.12.03 |
통합 Branch로의 Merge에 실패합니다. (0) | 2020.11.19 |
협업을 위한 Katalon studio와 Github 연동하기 (0) | 2020.11.16 |
어제는 실행됐던 케이스가 오늘은 실행되지 않아요 (1) | 2020.11.10 |