关于 SAP UI5 应用的自动化测试方法
原文:state of testing in UI5: OPA5, UIVeri5 and wdi5
測試作為確保 UI5 應用程序開發投資的一種手段已經變得越來越普遍。
為了進一步推動這個問題,讓我們評估 UI5 中最突出的端到端測試框架。
所有這三個都允許測試面向用戶的功能,“像用戶一樣”操作 UI5 應用程序:與 UI 元素交互。
UIVeri5 和 wdi5 都可以遠程控制瀏覽器。 也就是說,它們有一個不同于 UI5 應用程序的運行時。 因此,兩者都需要一個(網絡)服務器,以便連接到運行測試中的 UI5 應用程序。
OPA5 的不同之處在于它與 UI5 應用程序共享相同的運行時——它與被測 UI5 應用程序相鄰工作,而不是分開。
(QUnit 不在本文中,因為我們專注于運行面向用戶的測試,而不是純粹的功能測試。)
此外,wdi5 允許在移動設備上測試混合應用程序。 它可以連接到 iOS、Android 和 Electron 上使用cordova 封裝的UI5 應用程序,并運行與基于瀏覽器的應用程序相同的測試。
OPA5
OPA5 自帶 UI5,不需要額外的安裝步驟。 然而它的設置并不直觀,混合了 OPA5 的基本 QUnit,并且需要幾個包含級別。
下面是一些例子:
webapp/test/integration/opaTests.qunit.html:
<!-- ... --><script src="opaTests.qunit.js"></script> </head> <body><div id="qunit"></div><!-- ... -->webapp/test/integration/opaTests.qunit.js:
sap.ui.getCore().attachInit(function () {"use strict";sap.ui.require([// all test suites aggregated in here"test/Sample/test/integration/AllJourneys"], function () {// `OPA5`'s mama :)QUnit.start();}); }); webapp/test/integration/AllJourneys.js:sap.ui.define(["./arrangements/Startup", // arrangements"./NavigationJourney", // actions + assertions"./BindingJourney", // actions + assertions"./InteractionJourney" // actions + assertions ], /* ... */excerpt from webapp/test/integration/BindingJourney.js:
sap.ui.define(["sap/ui/test/opaQunit", "./pages/Main", "./pages/Other"], function (opaTest) {"use strict";QUnit.module("Binding Journey");QUnit.module("Other view: PeopleList: items aggregation");opaTest("bound status", function (Given, When, Then) {Given.iStartMyApp();When.onTheAppPage.iPressTheNavButton();Then.onTheOtherView.iShouldSeeTheList().and.theListShouldBeBound();}); // ...使用下面的 url 啟動:
http://localhost:1081/test/integration/opaTests.qunit.html
uiveri5
UIVeri5 需要 Node.js >=8 并通過標準 npm 命令 npm install @ui5/uiveri5 安裝。
然后通過配置文件和包含測試代碼的文件進行設置——確保兩者都在同一個文件 sys 文件夾中。
配置文件:
exports.config = {profile: "integration",baseUrl: "http://localhost:1081/index.html" };然后可以啟動 UIVeri5
- 首先啟動網絡服務器:yarn dev(或yarn start:ci)
- yarn test:uiveri5
OPA5 速度快于 UIVeri5,因為它與 UI5 共享運行時,從而節省了基礎設施開銷,例如啟動瀏覽器本身。然而,當需要更高級的測試行為時,它很快就會達到其極限,例如 UI5 控件之間的交叉交互或對 UI5 控件以外的元素進行操作。此外,嵌套的 waitFor 操作感覺很笨拙。
使用 UIVeri5,可以真正以外部用戶的身份操作 UI,包括 UI5 控件之外的元素和功能。但是 UIVeri5 的核心(Protractor、WebdriverJS)感覺已經過時了,核心元素之間的連接代碼有時會缺少最后的實現里程(例如不可能在 conf.js 中設置日志級別?!)。某些限制,例如套件名稱(描述)和文件名之間的強制關聯也會增加這種印象。不幸的是,在測試時控件上只有 UI5 API 方法的一個子集可用。此外,文檔似乎是零散的——但在文檔中有點隱藏,UIVeri5 具有預構建的身份驗證器,其中包括 SAP Cloud Platform SAP ID。
更多Jerry的原創文章,盡在:“汪子熙”:
總結
以上是生活随笔為你收集整理的关于 SAP UI5 应用的自动化测试方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一个典型的使用 SAP Cloud Ap
- 下一篇: 向华为供货740万块硬盘 被重罚3亿美元