使用自动测试工具创建机器人(RPA)

作者:列别杰夫A.,纳扎罗娃E.将

需要使用机器人出现因各种原因:需要新的应用程序进行数据交换与应用程序没有一个API,异构应用的快速整合,日常流程的用最少的费用等自动化

传统上,机器人或RPA(机器人过程自动化)是基于现成的框架构建的。我们认为,领导者来自UiPath,Automation Anywhere,Blue Prism,NICE。这些经过验证的平台可让您做出质量决定。但是,不便宜。您需要为将来的工作数量支付许可证,为特定任务和调试支付定制费用。在某些情况下,您会变得更便宜。我们进行了管理,并准备分享经验。

不久前,在其中一家银行中,敏捷转型开始了。开发满足银行需求的应用程序的新方法。为了向他人展示方法,他们组建了开发新产品的试验团队。

该银行拥有进行会计和经营活动的传统关键系统。与新团队的产品一起工作以微服务的形式实现,应与关键系统交换数据。团队开发很快就开始了。但是问题在于,关键系统释放策略的传统方法不符合这一步伐。新微服务的API已列入未来的计划。

事实证明,就像Pechkin一样,“我给您带来了一个包裹,但我不会把它给您。”在这种情况下,试验团队的代表向我们的自动测试团队致敬,提出了使用类似过程的UI自动测试来创建机器人的想法。

自然,我们首先讨论了风险。立即宣布,当使用自动测试工具时,用于测试要求的软件解决方案的可靠性低于用于支付系统应用程序的可靠性。但是在敏捷浪潮的推动下,团队冒了风险。

该工具包是传统且免费的:Java用于开发,可通过Maven进行组装。为了与浏览器一起使用,使用了Selenium(需要输入数据的应用程序具有Web界面)。

与同一过程的UI自动测试相比,机器人的主要区别在于需要正确处理错误情况和异常,并通过文件交换将其集成为子系统。

为了使机器人正常工作,分配了一个虚拟服务器,一个技术域帐户,并在输入数据的系统中创建了一个单独的用户。具有权威,就像在职员工一样执行类似的操作。

Jenkins代理已安装在此服务器上,使您可以运行机器人。关于机器人工作的报告既以执行日志的形式又以诱惑报告的形式形成。两者都可以在Jenkins中使用,不需要特殊的权限即可访问网络资源。

机器人的工作结构如下:将包含用于进入系统的数据的文件放置在网络资源的输入文件夹中,并通过Jenkins启动机器人。它通过关键字字段将输入文件的记录与服务文件进行比较,服务文件存储了所有已处理的记录,并仅选择了尚未处理的记录。接下来,记录数组被循环处理。此外,在每个记录的每个处理步骤中,都会处理异常和错误(try ... catch),并在结果文件中记录过程“丢弃”。同时,输入数组的处理不会停止,我们只需要转到下一条记录。结果,当完成整个数组的处理时,将删除输入文件,在输出中将包含具有结果和运行时间的所有已处理记录。魅力报告显示为有关每个记录的处理信息,以及包含每个记录的处理结果的常规列表。这使评估结果和定位问题(如果有)变得容易。

图片

另外,在使用机器人的过程中,事实证明,高峰日的应用程序流量非常大,并且为了满足可接受的处理时间,需要大量并发用户。

系统已经创建了多个用户。并行执行是使用线程(Thread)实现的。输入记录的整个数组在流之间平均分配,每个流在其自己的用户下进行处理。结果写在一个文件中,报告也单一。好舒服同时,启动了一个Selenium Server,它可以应付多个浏览器的并行启动(根据工作用户的数量)。我们分别使用Chrome浏览器和chromedriver。

这令人惊讶,但是在运行的9个月中,问题仅是由于输入数据不正确造成的。技术问题仅在调试阶段出现,并且与日志中编码的协调以及启动Selenium Server(交付的1G)时使用的内存的扩展有关。

一段时间后,对于同一个敏捷团队,又开发了另一个机器人。它的功能是它不是按需启动的,而是通过扫描输入文件夹连续工作的。当出现传入文件时,它将对其进行处理。因此,不使用詹金斯代理。如果该过程成功,则将输入文件移至具有成功处理文件的文件夹,否则,移至具有错误文件的文件夹。与以前的机器人不同,没有魅力报告,但是将执行日志写入一个单独的文件中,以便在出现任何问题时进行分析。还有一个功能-浏览器在处理结束时被强制关闭,并在用户需要登录时启动。

因此,在某些情况下,创建RPA时,可以使用自动测试工具以明显便宜的方式来解决问题。

All Articles