如何做跨平台业务流程自动化(Windows,Moible,Web)

1,494 阅读5分钟

业务流程自动化不仅是机器人流程自动化(RPA)要实现的目标,也是自动化测试中的一个重要环节。

实现自动化测试的初级阶段是单个应用实现自动化测试。独立的应用测试只涉及一个平台,但很多业务流程涉及多个应用,而且跨平台,例如一个典型的电商平台可以包含用户端Web界面、手机客户端、后台管理系统,与其它系统交互的API等,涉及个平台如Windows、Mobile或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,Mobile,Web分别创建不同的自动化库的实例,针对不同的场景运行的运行的时候调用不同的实例就可以了。

实现场景,编写代码这一部分比较长,放到下次讲。 。这里大致介绍一下用到的开源库。

Node.js中第三方库特别多,引入对应的库,就能做相应自动化,比如做Web自动化,你可以引用Selenium,也可以使用wd,或者webdriverio,另外使用Chrome开源的puppeteer也是不错的选择,强大的第三方开源库的支持使您可以胜任任何类型的自动化。

(截至发稿前,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,敬请期待。