1.2框架图示
1.3体系结构
i.
Test Set驱动脚本 ? 初始化
? 解析Test Set的数据文件
? 调用TestCase驱动脚本,向它传递测试用例的文件名 ? 如果有必要,调用框架所必需的库函数 ii.
TestCase驱动脚本
? 解析TestCase的数据文件
? 根据TestCase的解析结果,加载测试脚本,加载测试数据
? 根据TestCase的内容,调用Task的测试脚本,并且把测试数据的集合传递给测
试脚本 iii.
? 如果有必要,调用框架所必需的库函数 Task测试脚本
? 执行指定的任务(如输入数据,点击按钮等) ? 生成日志,以及测试报告 iv.
? 如果需要则调用用户自定义库函数 库函数
? 一般的和具体应用程序的函数可以被调用,以执行指定的任务。
1.4框架的存储结构
解释:
? Project文件夹,整个工程的最高一级目录,名称可以修改。 ? Driver目录,这个是QuickTest的脚本文件,整个框架的入口。这个脚本包含了testSet
和testcase的驱动脚本。
? frameUtil目录,存放用来支持框架的一些函数库。 ? logs目录,存放脚本运行日志
? testData目录,存放测试用例以及测试数据的Excel文件 ? testScript目录,存放task脚本,全部存储为vbs文件。
? driver.vbs文件,使用了QTP的automation object model,也是整个框架的入口。可
以直接执行该vbs脚本,因此可以做成Windows的自动任务,在指定时间点执行。 注意:testData和testScript目录下的内容,是真正需要开发的。
1.5数据的组织
Test Set
Test Case
sheet名为:genlogin Test Data
Sheet名为:OpenAccount
解释:
TEST SET:
? Test Set数据文件是用来管理测试用例文件的,在这里,扮演了TD的管理测试用例
和脚本的角色。很显然,这个数据文件没有TD的功能强大,不能体现测试用例对需
求的覆盖,没有测试用例之间的树形结构…但是作为一个轻量级的测试框架,只要能够记录、管理50~100个测试用例文件,就暂时够用了。
? IDX:index,“√”表示该行数据有效,“x”表示该行数据无效。主要是考虑到Excel
直接面对人,用0,1来标识有效无效,很不直观。 ? name:测试用例的名字,用中文标示即可,这个字段只是让人看起来比较直观,并
不会被用到。 ? table:这个字段非常重要,它指向测试用例所在的Excel的文件名。可以带后缀,也可以不带后缀。不需要指定文件所在的路径。
? sheet:表示测试用例在Excel文件的Sheet名称。如果不填写的话,默认为第一个Sheet。
? 考虑到有些测试用例极其复杂,仅仅使用Excel形式的测试用例是远远不能实现其复杂的逻辑,也可以把测试用例写成vbs文件,直接执行该vbs脚本。目前暂未实现。 TEST CASE:
? TestCase数据文件中记录的就是测试用例,只要不是太过于复杂的测试流程,都可
以直接写在Excel文件中,当然,需要符合一定的规范,很显然,这离自然语言还是有一定的距离 。这种形式比较适合step-by-step的测试用例,并且粒度比较粗,减少了测试用例的步骤数。 ? IDX:index,“√”表示该行数据有效,“x”表示该行数据无效。
? bizName:被测试的业务的名称,比如说“银行收款”这个业务。事实上,这个名
称需要与存储改业务的task脚本的名称保持一致,而且需要与task脚本中定义的class的名称也保持一致。在没有做名称的中英文对照字典之前,bizName最好使用英文名,所以最好使用“collection”,而不是“银行收款”。
? taskName:task的名称,原子业务的名称,比如新增、修改、删除等。这个名称与
task脚本中定义的各个Function的名称应该保持一致。同样,暂时也最好不要使用中文。
? bizDataTable:测试数据所在的Excel的Sheet名称。比如说进行登陆操作时,需要
输入用户名和密码等数据,这些数据单独放在某个Excel文件中的某个Sheet中,把这个Sheet的名称写到bizDataTable这个字段中即可,框架会自动去加载这个Sheet中的所有数据。
? filter:测试数据的过滤条件。可能准备的测试数据比较多,但是在当前这一个step
中,只需要执行某一条或几条数据,就可以使用filter这个条件。比如说,登陆时,想用错误的用户名和密码来登陆,那么可以这样写:用户类型=baduser。当然“用户类型”是测试数据所在Excel表格中定义过了的字段。
TEST DATA:
? Test data数据文件,用来存放测试数据。没有区分输入数据、验证数据、以及输出
数据,总之,只要是测试过程中,需要用到的数据,都一古脑的做成一行,放到这个文件中。一是觉得这样在设计测试数据时,比较方便和直观,二是也没有更好的设计思想。
? 对业务的验证,按照设想,是通过日志文件和测试报告来体现的。所以把验证数据与输入数据放到一起,亦不会有太大的不妥。
数据文件总结:
? 基于把测试设计和脚本开发分开的思路,设计了这三个Excel表格。测试设计时,主
要是设计testcase和test data这两个Excel表格。毕竟,这才是自动化测试最核心的价值所在。脚本写得再完美,没有好的测试设计、测试数据,对测试本身并不会有
太大的帮助。因此,希望尽可能把这些Excel表格做得更易用。所谓的框架,就是把这3个Excel表格串起来的东西。
1.6驱动脚本的逻辑
Test Set 驱动脚本伪码:
1. 将test set数据所在的整个Sheet加载到QuickTest的Runtime Table中。
2. 检查test set数据文件中一共有多少行记录需要执行。
3. 读取一行数据。
4. 如果该行的IDX的值为“√”,那么调用执行TestCase驱动脚本,并且把测试用例所在的Excel文件名和Sheet名作为参数传给TestCase脚本。 5. 转向第3步,直到所有数据被执行完毕。 6. 删除加载到Runtime Table中的所有数据。
TestCase 驱动脚本伪码:
1. 将TestCase所在的Sheet加载到QuickTest的RunTime Table中。 2. 检查TestCase数据文件中一共有多少行记录需要执行。
3. 遍历整个Sheet,加载所有需要被用到的Task脚本:逐行读取有效数据(IDX=“√”),
如果bizName的值所指向的Task脚本没有被加载,那么加载之,直到所有数据被执行完毕。
4. 遍历整个Sheet,加载所有需要被用到的Test data数据:逐行读取有效数据(IDX=“√”),
如果bizDataTable的值所指向的Sheet(该Sheet的名称应该在本测试用例中是唯一
的)没有被加载到RunTime Table中,那么加载之,直到所有数据被执行完毕。 5. 获取一行的测试步骤的数据。
6. 如果该行的IDX的值为“√”,那么解析filter信息,形成条件语句。
7. 逐行读取test data所在的Sheet,如果该行数据是满足条件语句的,那么调用Task脚本,执行对应的操作。
8. 转向第5步,直到所有数据被执行完毕。 9. 删除加载到Runtime Table中的所有Sheet。 Task 脚本说明:
脚本结构很简单,与其他市面上常用的代码结构非常类似。
首先要定义一个类,类名要与脚本名称一致。目的主要是为了在调用某个Function时,如开户(toOpenAccout),会去找指定Class的toOpenAccout方法,而不会出现找错的情况。一般情况下,一个功能模块只对应一个类。例如,用户管理的增删改查功能模块,脚本名称建议起作AccoutManagement.vbs,那么class的名称也要对应的起作AccoutManagement。 其次,在类中加入方法,类中方法的数量与名称要根据业务的实际需要,视情况而定。例如,用户管理的增删改查,我们可以在类中加入四个方法,即:toOpenAccout(Sheet_Name),toDelAccout(Sheet_Name),toChangeAccount(Sheet_Name),toFindAccount(Sheet_Name)。其中,方法的参数是固定的“Sheet_Name”,这个参数是用来接收被我们参数化的测试数据,所以为了配合框架的功能Task方法的参数有且只有一个参数,不支持多个参数。各个Function脚本,需要全部使用描述性编程来实现,不能采用录制的方式生成。
最后,能够公用的方法尽量提取出来放到公共类中,以便减少重复代码,增加代码的利用率,节约开发和管理成本。切记,这一点非常重要。例如,登录和注销操作即可以当做公共方法,公共方法的放置地点一般在框架文件结构..\\testScript\\DCSM\\ generalFunction\\文件夹下。
脚本模板:
‘用户管理模块
Class AccoutManagement
‘用户管理—开户的Task
Function toOpenAccout(Sheet_Name)
Msgbox(DataTable(“用户名”,Sheet_Name))
??
End Function
‘用户管理—删除用户的Task
Function toDelAccout(Sheet_Name)
Msgbox(DataTable(“用户名”,Sheet_Name)) ??
End Function
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库QTP自动化测试教程(3)在线全文阅读。
相关推荐: