QTP的使用

最近在做Automation,小使用了一把QTP,总体感觉QTP是做自动化测试非常不错的工具,虽然也有一些不尽人意的地方。以下是自己的一点心得。

1. Function的设计

在掌握了如何使用QTP之后,非常难的是如何构建自己的automation框架。我们开始的时候将每个小的function,如search, open, modify都单独做成了一个Action,但后来发现根本不必如此,因为这些function之间都需要传递参数,这样的设计使得结构非常复杂,要考虑很多Action和Action之间传递参数的问题,后来改进的方法是把每个操作编写成一个function,放在同一个Action里面,直接调用就可以了。

2. 参数化

自动化脚本肯定要和测试数据分离,这样就涉及到如何管理test data。肯定要使用QTP的Datatable.但如何使用呢?首先要理解Global DataTable和Local DataTable的含义,目前把每个Test Case的测试数据都放到Excel中的一个独立的Sheet,在每个Test Case执行之前都Load自己的测试数据到Local DataTable中。

3. Test Step的分离

由于Test Data的这种使用模式,我们把Test Step和Test Data都放到一个Sheet里,这样,每个Test Case的测试数据是:

TestSteps ParamName1 ParamValue1 ParamName2 ParamValue2 ParamName3 ParamValue3 ParamName4
Login URL http://aaaaa/bbbb UserName xyz Password 123  
Open              
Search ID XXXXXX     Status Active  
Logout              

 

这样脚本在执行时,每一行的处理都是先去取TestStep,这些在脚本里都是独立的Function,然后找到这个Function使用的Parameter Name和Parameter Value,直接执行就可以了。

4. 多多利用环境变量

QTP的环境变量类似于Static Variable。为了脚本的可移植性,一些执行的路径都写入环境变量中,还有一些整个脚本都要使用的变量,如test case status(Pass,Fail)也可以使用环境变量。

5. QTP的Batch Run模式

最后还是选择的QTP的一个插件工具,Multi Test Manager,写一个VBS脚本,直接去调用QTP,执行脚本就可以了。可以执行多个Module,也就是QTP中的多个Test。

Summary, 在开始这个Framework之前,我们也看了一些别人的Framework,关于测试数据和test case的管理,很多人都用ADO,Access的模式。我们在这个项目中没有使用这种模式,因为整个程序并不大,用目前的模式就可以支持了。

 

你可能感兴趣的:(test,Data,qtp,Framwork)