RPA在测试工作中实践经验分享

后台-系统设置-扩展变量-手机广告位-内容正文顶部

前言

RPA(Robotic Process Automation),机器人流程自动化,是一款基于Python语言的流程自动化商用软件。从行为上看,其与自动化测试中GUI自动化测试较为相似,都可模拟测试人员的手工操作从而达到自动化的效果,但RPA软件在实际运用中又与自动化测试有着本质区别,本文以单个系统的实战经历为例,希望与大家一起分享和探讨RPA软件在测试工作中的价值。

   

 

一、RPA的优势

 

RPA接近于人工操作的自动化流程可以达到近似于手工测试的测试效果;RPA设计器客户化较好,使用门槛底,使得一般测试人员也能通过软件编写出自动化流程,这是RPA在测试工作中的两大优势:完全模拟手工测试,使用门槛较低。


     

     
       

     

二、RPA与常见GUI自动化测试工具的区别

 

1、技术原理区别

RPA自动化流程技术原理:采用WorkflowFoundation作为基础框架,整合其它类产品功能作为组件,以弱耦合的方式跨系统执行组件命令。

GUI自动化测试技术原理:WEB类系统一般使用Selenium基础测试框架,通过网络与浏览器建立连接发送执行操作;C/S类系统一般采用UIAutomation基础测试框架,通过调用底层WIN32 API识别句柄来执行操作。

 

2、产品功能区别

一个完整的自动化测试工具或平台应包含如下功能:

1)测试数据的准备与管理

2)测试案例的执行

3)测试结果的校验

4)测试报告的打印与分析

RPA在第二项测试案例的执行效果上可以和GUI自动化测试案例执行相媲美,但其余三项功能暂不具备或者说支持能力较弱,若不进行二次开发很难满足自动化测试的要求。

 

基于上述优点和区别所在,我们在RPA测试工作实践中,并没有完全让RPA去承担测试任务,而是让它发挥自己的优势将一些自动化测试投入产出比低的系统和场景利用RPA软件实现流程自动化,目的在于提高执行效率。下面我们一起来看一下信贷系统具体场景的实施。

 

三、RPA在测试工作中的实践——一手住房贷款交易RPA流程自动化

 

我们将信贷系统一手住房贷款交易中的客户进件、资料录入、审查审批、合同签署四个交易场景做成自动化流程以减少测试人员手工操作成本。实施过程经过场景分析阶段、数据准备阶段、组件开发阶段。

 

1、场景分析阶段

我们参考大厂的5级分类思想,在设计之初对场景交易流程做了逐层分类。由于RPA流程是利用现有的功能组件进行开发的,所以层级拆分有利于清晰的归纳出流程和组件的关系。

   

(阿里云RPA关于RPA流程设计的层级划分)

L1

一手住房贷款场景

L2

贷款进件申请、贷款审查审批、贷款合同签署…

L3

登录交易场景、客户信息录入场景、一级分行零管负责人审批...

L4

数据准备、统计代码调用、登录交易执行、影像平台窗口打开...

L5

excel组件、outlook组件、Web组件、数据库访问代码块...

 

根据拆分结果,初期阶段就可以对一些交易场景和组件进行整合调用,典型的如:流程中因为涉及岗位扭转审批需要反复使用的登录交易、多个页面都会弹出相同的提示弹窗等等。通过这种方式可以在前期做到一些流程设计的优化,减少冗余代码,降低维护成本。

 

2、数据准备阶段

数据的准备是RPA流程中比较需要关心的问题,因为RPA本身不带有数据管理的模块,RPA设计之初就是人工怎么操作,它就怎么模拟流程,平台只用于接收上传组件而不存放数据,所以如果不进行二次开发或者对接已有的数据平台,数据传递可能会变成流程设计上的问题。

  

作为试点项目,我们使用RPA自带的邮件(outlook)组件,让测试人员将测试数据以邮件附件的形式发送给指定邮箱,RPA组件通过轮询的方式从指定邮箱下载附件的数据并触发执行自动化流程,以此方式来实现数据和流程的交互。

 

3、组件开发阶段

利用RPA设计器可以进行RPA组件的开发。RPA集成了许多功能,使用起来较为方便。由于提供了便利的操作,所以RPA流程很考验设计者的思路,俗话说条条道路通罗马,但一个好的RPA流程应该是步骤精简、运行稳定、易于维护的。下面分享一个优化后的流程实例——RPA与数据库的交互。

由于审查审批流程会经过多个部门岗位的扭转,而且不能预判下一个岗位扭转的具体人员,因此,我们需要在流程执行的过程中频繁地访问数据库来定位最新流程的位置。测试人员在测试的时候使用DBeaver软件手工执行数据库语句进行查询,每审批完一个岗位就需要去数据库查看流程扭转的最新位置。若完全模拟测试人员的手工操,我们需要频繁的和DBeaver工具进行交互,这样会让流程组件变得很长。(见下图左)

考虑到RPA基于python语言编码,我们对RPA使用的python语言版本安装了数据库扩展包,并在流程中添加了应用数据访问的代码,运行成功。下面是安装完数据库后利用RPA直接访问系统后台数据库的审查审批流程组件,无论是在执行效率方便还是容错率方面都有较大提升。(见下图右)

   

四、实施效果

相比原先一笔客户处理该业务流程需要7-10分钟,RPA自动化流程处理约为3-4分钟。自动化执行通过率受代码移植性的影响,公共机与虚拟机上为91%,个人电脑为74%。参照第一周投入使用的交易发送量为84笔,省去手工劳作时间约300分钟。

 

结语

RPA在不少企业和领域发挥着它的作用,如财务报账、流程审批、HR邮件往来等等,而研发测试环境对于环境稳定性有着较高要求的“小勤人”来说无疑是一种挑战,我们目前也是在实践的过程中不断地学习和尝试,最终RPA在研发测试工作能扮演什么角色,能发挥出什么样的作用,随着RPA软件的完善或许能给我们带来新的视野,我们期待与您交流,欢迎各位小伙伴们联系作者。


 

特别声明:

文章来源:广发银行研发中心

作者:刘园

原文链接:https://mp.weixin.qq.com/s/dLNZJgNL37LxZkFvsObQqQ

RPA中国推荐阅读,转载此文是出于传递更多信息之目的。如有来源标注错误或侵权,请联系更正或删除,谢谢。

未经允许不得转载:RPA中国 | RPA全球生态 | 数字化劳动力 | RPA新闻 | 推动中国RPA生态发展 | 流 > RPA在测试工作中实践经验分享

后台-系统设置-扩展变量-手机广告位-内容正文底部