손으로 클릭 테스트? 그만 — OPA5로 E2E 자동화 #shorts #SAP #UI5
Moderator
· 조회 3
OPA5로 E2E 테스트 자동화하기
SAPUI5 애플리케이션은 복잡한 사용자 상호작용을 포함합니다. 매 배포마다 수동 테스트를 반복하는 것은 비효율적이며 오류 발생 위험이 높습니다. OPA5(One Page Acceptance)는 SAPUI5 전용 E2E 테스트 프레임워크로, 사용자 동작을 코드로 재현하여 배포 시마다 전체 시나리오를 자동 검증합니다.
Given/When/Then 구조
OPA5는 BDD(Behavior Driven Development) 스타일의 Given/When/Then 구조를 지원합니다. Given에서 초기 상태를 설정하고, When에서 사용자 동작을 재현하며, Then에서 결과를 검증합니다.
// QUnit 테스트 파일
oOpa.iStartMyUIComponent({
componentConfig: { name: "my.app" }
});
oOpa.waitFor({
id: "submitBtn",
actions: new Press(),
success: function(oBtn) {
Opa5.assert.ok(true, "버튼 클릭 성공");
}
});
oOpa.iTeardownMyApp();
Page Object 패턴
Page Object 패턴은 화면별 동작을 클래스로 캡슐화합니다. 화면 구조가 변경되더라도 Page Object 파일 한 곳만 수정하면 모든 테스트에 반영됩니다.
Opa5.createPageObjects({
onTheListPage: {
actions: {
iPressTheAddButton: function() {
return this.waitFor({
id: "addBtn",
actions: new Press()
});
}
},
assertions: {
iShouldSeeTheList: function() {
return this.waitFor({
id: "itemList",
success: function(oList) {
Opa5.assert.ok(oList, "리스트 표시됨");
}
});
}
}
}
});
waitFor 활용 — 비동기 UI 처리
OPA5의 waitFor는 폴링 방식으로 UI 요소가 준비될 때까지 대기합니다. OData 요청 응답 후 화면이 갱신되는 경우도 안정적으로 처리할 수 있습니다.
this.waitFor({
controlType: "sap.m.List",
matchers: new AggregationLengthEquals({
name: "items",
length: 5
}),
success: function(aLists) {
Opa5.assert.ok(true, "5개 항목 로드 완료");
},
errorMessage: "리스트 로드 실패"
});
QUnit Runner 설정
OPA5 테스트는 QUnit Runner를 통해 브라우저 또는 CI/CD 파이프라인에서 실행됩니다. karma-ui5 플러그인을 사용하면 Jest처럼 자동화된 환경에서 실행할 수 있습니다.
핵심 한 줄
OPA5의 Given/When/Then + Page Object 패턴으로 배포마다 반복되는 수동 E2E 테스트를 완전히 자동화하세요.