PTF 相关
PTF简介
PTF是Process Test Framework的简称。事务码为PTF,是SAP的一种自动化测试工具。
开发人员可以在PTF中定义需要自动化测试的业务场景(Scenario)。
PTF的应用界面如下:
![](https://img.haomeiwen.com/i10515966/d010226b5f26146f.png)
PTF通过调用预先定义好的Business Object的Action,根据Variant变量传入的参数以及Reference Step变量传入的引用步骤,来全自动执行Action中定义的业务流程。
例如图中所示,Step 2调用 A2X_CHECK_ITEM ,传入A2X_CHECK_ITEM10 变量定义的参数,Reference Step 参考的是Step 1,因此将Step 1 的结果:Document ID(0060002879)传给Step 2 进行计算。
对于执行类的Action而言,如A2X_CREATE_DEEP,会根据运行结果,返回给Execution_Status;
对于判断类的Action而言,如A2X_CHECK_ITEM,会根据运行结果,返回给Check_Status。
![](https://img.haomeiwen.com/i10515966/17e288fa0480ee47.png)
![](https://img.haomeiwen.com/i10515966/8a9d25562d8e36fd.png)
PTF执行结束后,可通过Application Log来查看运行日志。
![](https://img.haomeiwen.com/i10515966/0f0bf17076842164.png)
![](https://img.haomeiwen.com/i10515966/f8478ff870dc2508.png)
这些日志是在Action中通过调用me->mo_run_environment->append_log方法来定义的。
![](https://img.haomeiwen.com/i10515966/f3d29b97e1f85a7a.png)
PTF开发流程
1.创建Business Object Class
PTF实际是调用已定义好的Business Object Class的Action 来进行的。所以PTF开发的第一步是创建Business Object Class。
事务码SE24进入Class Builder应用。
![](https://img.haomeiwen.com/i10515966/c9b8ab0e1e4a9e6f.png)
PTF相关的所有BO都继承自Super Class:CL_PTF_BO。
![](https://img.haomeiwen.com/i10515966/2a61f617e27b4d2c.png)
包含CREATE, CHANGE, DELETE, CHECK, EXECUTE_ACTION, EXECUTE_CHECK, CHECK_EXISTENCE七个抽象方法,需要在子类中根据业务需求给出具体实现。
EXECUTE_ACTION方法:
这个方法的功能是接收PTF应用传过来的每个Step的“Action”,“Variant”等字段的值,并根据值来调用相应的方法。
![](https://img.haomeiwen.com/i10515966/c81199f42977971e.png)
通过get_step_data方法来接收传值。得到的ls_step_data结构如下:
![](https://img.haomeiwen.com/i10515966/0bb5cdf491591c62.png)
获取到了ACTION,VARIANT,Reference Step,Reference Document等字段。
接下来通过ACTION字段的值,去判断应该调用什么Method去执行。并把上述ls_step_data传给该Method。
2.注册Business Object
事务码SE16N进入General Table Display应用,进入PTFBO表。
![](https://img.haomeiwen.com/i10515966/4f4aaf09eef42031.png)
![](https://img.haomeiwen.com/i10515966/23043bbb5fdbc457.png)
注册一个新的Business Object,关联第一步中创建的Business Object Class。注册后,就可以在PTF中调用这个Business Object了。
3.创建Test Data Container
Test Data Container 的作用是预定义将要传给Action 的 Variant 结构以及缺省值。
首先,事务码SECATT进入Extended Computer Aided Test Tool应用。
选中Test Data输入名称,创建一个新的Test Data Container。
![](https://img.haomeiwen.com/i10515966/f8f84389d7426003.png)
接下来,在新创建的Test Data Container中定义Parameter。每个Parameter对应一个Variant结构。
![](https://img.haomeiwen.com/i10515966/38c44ae68c5d08e4.png)
Parameter中详细定义了该Variant要包含的Element以及各Element的属性。
![](https://img.haomeiwen.com/i10515966/3e2fb034c5b1fafc.png)
接着,按照Parameter的结构来构建用来被PTF调用的Variants,并为他们赋值。
![](https://img.haomeiwen.com/i10515966/adfa2b4fa473abb2.png)
![](https://img.haomeiwen.com/i10515966/f0167df69234e6fa.png)
最后,为BO的每个Method选定将要传入的Test Data Container,并在PTFBOA这个Table中去注册。
事务码SECATT,进入PTFBOA表。为每个Method指定Test Data Container。
![](https://img.haomeiwen.com/i10515966/df68a2d4c382e08a.png)
至此,PTF相关的开发流程大致介绍完毕。