三、设计制作 RFT 脚本模板
自动化的准备数据是本系统的关键所在,所以设计性能良好,健壮性好的脚本是一个关键的工作。
在 RFT 中 Enable SAP 环境
在 functional Tester Perspective 下,点击菜单 Configure->Enable Environments for testing,选择 SAP GUI Tab,如图 4 所示:
图 4. Enable SAP GUI
录制 Draft 脚本
创建一个新的 RFT 工程,从 SAP GUI Client 登录页面(如图 5 所示)开始录制。例如,录制在 SAP 中创建 Renewal Quote for PA:
图 5. SAP GUI Client 登录页面
当整个步骤都录制完成之后,就形成了 Draft 的脚本,如清单 1 所示:
清单 1. Draft 脚本
ant; padding-left: 2px; padding-right: 2px; font-family: arial, nsimsun, sans-serif; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 2px">
public void testMain(Object[] args) { // Window: SAP window_sap().maximize(); text_rsystbname().setText("xxxxx"); text_rsystbcode().setText("xxxxx"); text_rsystbcode().setFocus(); text_rsystbcode().setCaretPosition(8); window_sap().sendVKey(SAPTopLevelTestObject.VKEY_ENTER); // Window: SAP Easy Access comboBox_okcd().setText("va21"); window_sapEasyAccess().sendVKey(SAPTopLevelTestObject.VKEY_ENTER); // Window: Create Quotation: Initial Screen window_createQuotationInitialS().sendVKey(SAPTopLevelTO.VKEY_F4); // Dialog: Sales document type label_renwlQuoteForPA().setFocus(); label_renwlQuoteForPA().setCaretPosition(7); dialog_salesDocumentType().sendVKey(SAPTopLevelTO.VKEY_F2); // Window: Create Quotation: Initial Screen text_vbakvkorg().setText("0412"); text_vbakvtweg().setText("00%"); text_vbakspart().setText("00"); text_vbakvkbur().setText("0412"); text_vbakvkbur().setFocus(); text_vbakvkbur().setCaretPosition(4); window_createQuotationInitialS().maximize(); … … } |
改进脚本
从录制出来的脚本看到,还有很多不完善的地方,我们要对其进行改进,建议从以下几个方面进行改进:
a) 在同一台 server 上只建议启动一个 SAP GUI Client 实例,所以需要在启动这个实例之前要杀死已经存在的实例。所以在脚本最前面加上如下代码:
Runtime.getRuntime().exec("Taskkill /F /T /IM saplogon.exe"); |
b) 显式的 Enable SAP 环境
尽管前面已经在 RFT IDE 中使能了 SAP 环境,但为了保险起见,在程序中再显示的使能 SAP 环境。
RationalTestScript.getRootTestObject().enableForTesting(“saplogon.exe”) |