如何做跨平臺業務流程自動化(Windows,Moible,Web)

趙陽陽發表於2018-11-29

業務流程自動化不僅是機器人流程自動化(RPA)要實現的目標,也是自動化測試中的一個重要環節。

實現自動化測試的初級階段是單個應用實現自動化測試。獨立的應用測試只涉及一個平臺,但很多業務流程涉及多個應用,而且跨平臺,例如一個典型的電商平臺可以包含使用者端Web介面、手機客戶端、後臺管理系統,與其它系統互動的API等,涉及個平臺如Windows、Mobile或Web等。

單個應用做自動化測試有侷限性,很難發現系統整合的問題,導致線上系統出現異常,整個流程做自動化測試又有難度。下面的場景大家可能會覺得比較熟悉:

如何做跨平臺業務流程自動化(Windows,Moible,Web)

公司的應用一般分為桌面端,手機端,網頁端以及伺服器端等。我們通常在各個平臺端都選用流行的自動化測試庫。例如手機端大家可以使用熟悉Appium來做,網頁端使用Selenium。這些工具單獨使用能很好的處理手機端測試、或者Web端測試,自動化測試工程師都可以很快的上手。

對於一些跨平臺的場景:比如使用者在手機端進行下訂單的操作,需要管理員在網頁端應用或者在桌面端應用去對這個訂單進行操作的場景。這個時候有些工程師可能就會覺得有些困難。

跨多平臺做自動化一直是一個挑戰,不僅對於自動化測試工程師而言是如此,對於RPA實施工程師也是一樣。那麼有沒有一種解決方案,既能夠重用已有的知識,用自己熟知的開源庫來做,而且能夠使用開源的框架和全棧的語言呢?

今天我們就為大家介紹一下一個不僅是開放的,而且是輕量級的跨平臺自動化解決方案。

據統計,github中JavaScript的專案數量最多,從這一點可以說JavaScript是最流行的。單用JavaScript就可以開發所有平臺的測試。這裡推薦的方案是用開源的Node.js + Cucumber作為驅動框架,自動化庫用Appium、Selenium、webdriverio等開源工具,而Windows自動化部分可以用CukeTest自帶的自動化庫。開發環境器也用CukeTest。這樣你只要熟悉JavaScript語言,在一個開發工具裡就可實現多平臺測試。下面介紹具體的樣例,並附帶演示視訊。

場景驅動自動化流程

Cucumber.js是流行的行為驅動(BDD)框架,使用自然語言描述是BDD的一個亮點,不管是業務人員,還是開發、測試人員,都能通過feature檔案快速瞭解整個測試場景。具體可檢視https://github.com/cucumber/cucumber-js.

一般的開發專案管理主要是對程式碼面的管理,行為驅動測試提供給我們一種從管理用例文件方式來管理整個測試專案的可能。在CukeTest中可以根據不同的測試場景定義不同的feature檔案,通過執行不同的feature檔案來驗證對應的功能。在同時對三端的自動化中,使用CukeTest,定義不同的場景就能輕鬆完成對應的測試專案管理。

下面介紹的例子,就是老闆Jason Seaver在Windows端發郵件給Carol,讓她將培訓資料發給自己。Carol因為不在公司,所以用手機端應用傳送回覆,說一會到公司就辦。然後到了公司,Carol使用瀏覽器端的Outlook Web版傳送附件完成老闆的要求。這些操作涉及3個場景,以及Windows Mail、移動端Outlook、以及瀏覽器Web應用等。我們將這個流程分成3個場景。

首先編寫場景描述:

如何做跨平臺業務流程自動化(Windows,Moible,Web)

使用相應的開源庫

有了行為驅動的場景,然後在實現程式碼中為Windows,Mobile,Web分別建立不同的自動化庫的例項,針對不同的場景執行的執行的時候呼叫不同的例項就可以了。

實現場景,編寫程式碼這一部分比較長,放到下次講。 。這裡大致介紹一下用到的開源庫。

Node.js中第三方庫特別多,引入對應的庫,就能做相應自動化,比如做Web自動化,你可以引用Selenium,也可以使用wd,或者webdriverio,另外使用Chrome開源的puppeteer也是不錯的選擇,強大的第三方開源庫的支援使您可以勝任任何型別的自動化。

如何做跨平臺業務流程自動化(Windows,Moible,Web)

(截至發稿前,node.js的模組已經有70萬+, 資料來源 www.modulecounts.com/)

操作Windows控制元件使用CukeTest自帶的庫,它能夠自動化大多數桌面應用包括C++、.NET、WPF、QT、Delphi等型別的應用。針對Web端和Mobile端,我們使用開源的webdriver.io庫作為實現庫。具體API可以參考官方文件 webdriver.io/guide.html

下面我們就在具體的視訊裡看下如何針對這些場景,使用CukeTest是如何對Windows,Mobile,Web三端同時進行自動化的。

演示視訊: v.qq.com/x/page/i078…

我們會在後期的文章中介紹具體如何開發實現這個Demo,敬請期待。

相關文章