- 9
- 0
- 约3.26千字
- 约 13页
- 2017-08-09 发布于河南
- 举报
第五天知识
外部函数:
级别:项目级:utility.vbs common.vbs(供所有项目)(框架设计师)
模块级:(供本项目所应用)Login.vbs Order.vbs(自动化测试工程师)
项目级只能由模块级调用
自动化的步骤
了解被测对象,熟悉项目中的模块或者是子模块的需求,手动运行模块或者子模块中的一批用例,和测试或开发工程师明确操作步骤和检查点
做自动化需求分析,解决:
找出逻辑的公共点
这个任务究竟是数据驱动还是非数据驱动
设计
针对公共函数做大部分项目公共的和本项目特有的提取
若是数据驱动,做数据表的设计
新建一个test,构建action的父子关系,可以先创建mainAction,然后创建其他模块或者子模块的action作为它的孩子。使用对象库添加对象(不要漏对象)或者引用共享对象库文件。
新建test,分别先将孩子的action的创建出来,然后使用一个新的test,使用copying或者existing进行拷贝或者关联,形成父子关系。使用对象库添加对象(不要漏对象)或者引用共享对象库文件。
写脚本
基于QTP的项目级应用自动化测试框架
自动化框架的时序关系:
启动main.vbs
加载外部函数lib
QTP识别config.xml文件
Main.test入口加载环境变量
Main.test执行所有具有父子关系的Action
在选择中,若用到共享对象或者datatable,在data目录中需要import。
在执行过程中若有结果输出,需要export到data目录下
运行完所有的Action,main.vbs会自动退出
利用开发需要改造的内容:
从工作步骤上:
熟悉需求(用例—模块—项目)
需求分析(外部函数设计,datatable设计)
创建父子关系(三层父子关系)
针对每个Action是否有环境变量添加到config.xml文件中
Lib中的外部函数是否有添加
是否有新的对象仓库在data目录下要进行关联到本Action中
Data目录下的datatable是否有设计,使用该框架必须要有datatable。注意output result,output
Action的启动方式可以是Main.vbs,也可以是QTP中的run
开始写Action的主程序和用例过程
从程序步骤上:相对于Action
主程序逻辑:
将该Action的datatable从data目录下import进来,
调用该Action的测试过程
打扫整个测试现场
将该Action的Datatable所对应的sheet要export到data目录下
写Action中调用的用例进程
从起点到终点涉及到的窗口切换需要加判断,若失败则要调用writefail并提前exit sub,需要在用例检查点基础上,增加新的检查点(登录不成功则退出)
启动被测程序可以在主程序中完成,也可以在过程中完成,若在主程序中完成,切忌在过程中关闭被测程序,在哪里启动在哪里关闭
框架解决的问题:
外部函数库加载
测试结果定制输出
环境变量加载
对象仓库的迁移
config
config用来保存环境变量
config必须是XML文件,文件的格式如下:
Variable是一个变量
入口函数:启动main.vbs,加载lib,然后通过lib将config.XML加载
自动获取目录结构
runPath:获取当前目录路径
六、加载lib文件
将lib文件夹下的所有文件找到
七、构建动态数组,用来保存目录下的lib文件
八、往QTP中加载config和currentPath
九、写action对于环境变量,要把环境变量放到config.XML文件中,新增加的所有外部函数必须放到LIB函数中。
十、问题
1、使用框架后,testaction是如何应用框架中的环境变量
操作层面上:1)config。XML文件中增加一个需要的环境变量
2)在test父亲的中程序中调用函数库文件中的loadedenvironment文件
原理层面上:1)先让QTP文件知道config文件存在(在main。Vbs中完成)
2)将loadedenvironment调用进来(在main。Test中完成)
十一、DOM(document object model)
DOM是用来操作html语言的
十二、描述性编程
要创建Properties集合,可以使用以下语法输入Description.create语句:
Set MyDescription=Description.Create()
MyDescription(“对象属性名1”).value=对象属性值1
MyDescription(“对象属性名1”).value=对象属性值1
用途:对于类似对象非常多,属性值和数量无法预估,随着运行将
原创力文档

文档评论(0)