SAP是当前知名且领先的ERP系统,在对与 SAP 有交互的软件系统进行测试时,经常需要使用 SAP GUI Client 完成一定的常规操作,例如创建测试数据等。这些操作具备如下特点:需要一定的 SAP 知识和技能;步骤冗长;耗时耗力;重复性强等。为了提高工作效率,降低测试人员和开发人员的工作量,通过自动化的方式来完成数据准备是我们首先想到的方法。Script Center是我们自主开发的一款基于 AutoIt 的 SAP 自动化测试工具,通过它执行操作 SAP 的 VBS 脚本,可快速完成测试数据的准备。用户也可以通过Script Center方便的编辑要创建的数据值,以便创建若干不同的测试数据。
问题的提出
笔者所在的部门是负责开发和测试一个电子商务应用系统,这个系统和SAP交互频繁。我们往往需要在SAP中准备一些测试数据。以前,这些数据的准备工作,通常是手动的在SAP GUI Client中进行操作,参考帮助文档,一步一步执行完成。整个过程耗时耗力,且重复性强,很无趣。另外,这些操作往往比较复杂,通常是由熟悉SAP操作且了解电子商务应用系统的业务逻辑的少数人帮助大家来完成。在任务比较多的阶段,测试数据的需求也多,这些人本来的工作量就很大,所以对于其他人关于创建测试数据的请求有时会延迟处理。所以,项目组迫切需要一种方便、快捷的方式来在SAP中准备测试数据,减轻大家的工作压力,提高工作效率。
方案描述
自动化准备数据是我们首先想到的解决方法,SAP自带了录制和回放功能。最后录制形成的脚本是VBS格式,双击这个VBS文件即可回放。但是单纯的回放脚本并不能满足用户对数据的要求,我们需要参数化这些数据,用户可以根据自己的需要来填写自己想要的数据。因为XML编辑起来没有对软件的特殊要求,可以很方便的进行编辑,最终决定用XML格式来保存这些数据。鉴于用户直接编辑XML可能会导致错误,我们用AutoIt研发出的script center可以对这些数据字段进行友好访问及编辑。Script center还可以对脚本进行集中管理,使得用户有更易用的界面来运行自己需要的脚本。
总体架构设计
图1. 架构图
从架构图可以看到我们Script Center的设计思路,下面从工作流的角度来解释该结构图:
用户的所有操作只需要在Script Center的GUI上完成;
通过Script Center查看所有自动化SAP的VBS脚本,并可以执行VBS脚本;
通过Script Center轻松查看和修改脚本所需的数据文件;
脚本读取对应数据文件,通过SAP GUI Client对SAP进行操作,完成SAP自动化;
为方便SAP登录用户的集中维护,Script需要从DB中读取SAP登录信息,脚本执行完成后, 将记录保存到DB,同时生成相应的日志文件。
系统实现
前提:
客户机需要安装Script Center,SAP GUI Client,AutoIt
DB2 server 上部署Web Service,VBS 脚本通过Web Service和数据库进行交互
AutoIt简介
AutoIt 是用以编写并生成具有 BASIC 语言风格的脚本程序的免费软件,用来在Windows下实现各种自动化任务(比如自动安装目标程序、完成各种自动化操作等)。 通过它可以组合使用模拟键盘按键,鼠标移动和窗口/控件操作等来实现自动化任务, 而且可以利用它开发自己的GUI,以便获得更好的交互效果,另外,它可以把它的Script语言转换成exe可执行程序。