业务流程自动化不只是机器人流程自动化(RPA)要实现的目标,也是自动化测试中的一个重要环节。html
实现自动化测试的初级阶段是单个应用实现自动化测试。独立的应用测试只涉及一个平台,但不少业务流程涉及多个应用,并且跨平台,例如一个典型的电商平台能够包含用户端Web界面、手机客户端、后台管理系统,与其它系统交互的API等,涉及个平台如Windows、Mobile或Web等。node
单个应用作自动化测试有局限性,很难发现系统集成的问题,致使线上系统出现异常,整个流程作自动化测试又有难度。下面的场景你们可能会以为比较熟悉:git
公司的应用通常分为桌面端,手机端,网页端以及服务器端等。咱们一般在各个平台端都选用流行的自动化测试库。例如手机端你们可使用熟悉Appium来作,网页端使用Selenium。这些工具单独使用能很好的处理手机端测试、或者Web端测试,自动化测试工程师均可以很快的上手。github
对于一些跨平台的场景:好比用户在手机端进行下订单的操做,须要管理员在网页端应用或者在桌面端应用去对这个订单进行操做的场景。这个时候有些工程师可能就会以为有些困难。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.ide
通常的开发项目管理主要是对代码面的管理,行为驱动测试提供给咱们一种从管理用例文档方式来管理整个测试项目的可能。在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三端同时进行自动化的。
咱们会在后期的文章中介绍具体如何开发实现这个Demo,敬请期待。