收藏 分销(赏)

QTP笔记2.doc

上传人:xrp****65 文档编号:7025440 上传时间:2024-12-25 格式:DOC 页数:13 大小:1.09MB
下载 相关 举报
QTP笔记2.doc_第1页
第1页 / 共13页
QTP笔记2.doc_第2页
第2页 / 共13页
点击查看更多>>
资源描述
第五天知识 一、 外部函数: 级别:项目级:utility.vbs common.vbs(供所有项目)(框架设计师) 模块级:(供本项目所应用)Login.vbs Order.vbs(自动化测试工程师) 项目级只能由模块级调用 二、 自动化的步骤 1、 了解被测对象,熟悉项目中的模块或者是子模块的需求,手动运行模块或者子模块中的一批用例,和测试或开发工程师明确操作步骤和检查点 2、 做自动化需求分析,解决: 1) 找出逻辑的公共点 2) 这个任务究竟是数据驱动还是非数据驱动 3、 设计 针对公共函数做大部分项目公共的和本项目特有的提取 若是数据驱动,做数据表的设计 4、 新建一个test,构建action的父子关系,可以先创建mainAction,然后创建其他模块或者子模块的action作为它的孩子。使用对象库添加对象(不要漏对象)或者引用共享对象库文件。 5、 新建test,分别先将孩子的action的创建出来,然后使用一个新的test,使用copying或者existing进行拷贝或者关联,形成父子关系。使用对象库添加对象(不要漏对象)或者引用共享对象库文件。 6、 写脚本 三、 基于QTP的项目级应用自动化测试框架 自动化框架的时序关系: 1、 启动main.vbs 2、 加载外部函数lib 3、 QTP识别config.xml文件 4、 Main.test入口加载环境变量 5、 Main.test执行所有具有父子关系的Action 6、 在选择中,若用到共享对象或者datatable,在data目录中需要import。 7、 在执行过程中若有结果输出,需要export到data目录下 8、 运行完所有的Action,main.vbs会自动退出 利用开发需要改造的内容: 1、 从工作步骤上: 1) 熟悉需求(用例—模块—项目) 2) 需求分析(外部函数设计,datatable设计) 3) 创建父子关系(三层父子关系) 4) 针对每个Action是否有环境变量添加到config.xml文件中 5) Lib中的外部函数是否有添加 6) 是否有新的对象仓库在data目录下要进行关联到本Action中 7) Data目录下的datatable是否有设计,使用该框架必须要有datatable。注意output result,output 8) Action的启动方式可以是Main.vbs,也可以是QTP中的run 9) 开始写Action的主程序和用例过程 2、 从程序步骤上:相对于Action 主程序逻辑: 10) 将该Action的datatable从data目录下import进来, 11) 调用该Action的测试过程 12) 打扫整个测试现场 13) 将该Action的Datatable所对应的sheet要export到data目录下 写Action中调用的用例进程 1) 从起点到终点涉及到的窗口切换需要加判断,若失败则要调用writefail并提前exit sub,需要在用例检查点基础上,增加新的检查点(登录不成功则退出) 2) 启动被测程序可以在主程序中完成,也可以在过程中完成,若在主程序中完成,切忌在过程中关闭被测程序,在哪里启动在哪里关闭 3) 框架解决的问题: 1、 外部函数库加载 2、 测试结果定制输出 3、 环境变量加载 4、 对象仓库的迁移 四、 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 用途:对于类似对象非常多,属性值和数量无法预估,随着运行将会发生变化,可以采用描述性编程,用以解决创建临时对象的问题 1、 若resources和environment文件为空,需要使用Main。Vbs启动 2、 如果你不想使用main。Vbs来启动,还想继续暂时使用run来启动test: 1) 在resources中手工加载外部函数utility。Vbs 2) 在environment手工加载config和current path这两个环境变量 有多个action则对象跟具体的action关联 有一个action则对象跟test关联 如果使用对象仓库中的非对象方式添加对象,则先选择action,再使用+ 如果使用共享添加对象,则只选中需要的action 第六天知识 一、操作Webtable 先定义描述性对象,然后遍历,在遍历过程中使用webtable的getcelldata获取字段内容 二、 解决的问题:将对象仓库关联到需要的action中,跨不同的机器获取不同的tsr对应不同的action 三、问题 1、 打开test在哪里: 2、 运行QTP在哪里:131 3、 定制result:118 4、 Main。Vbs中的loadenvironment相对QTP在做什么 在QTP中的environment中加config。Xml的路径 5、 外部函数加载是哪个方法:115 6、 Main test中的loadenvironment是做什么用的 调用config。Xml文件当外部文件载入到QTP中 在QTP中可以直接使用变量名获取变量名的值 7、 LoginAction利用该框架要做什么改造 1) config中xml文件中加环境变量 2) 有没有公共函数放到lib目录下的外部函数 3) 有没有新的Datatable放到data目录下的,有没有新的datatable加载到data目录下 4) 有没有新的对象仓库需要放到data目录下 8、 LoginAction写好后,如果不适用main。Vbs启动则怎么样以后再启动 在environment中加载config和currentPath 9、 用了该框架之后我们是否不用创建对象仓库文件了? 需要创建,不会建立action和tsr文件之间的关系 如果不主动关联,框架不能主动关联 四、内置数据库检查点 五、使用dom操作webtable 1、 创建表的临时对象:micclassàwebtable 2、 childobjects传描述性编程的临时对象,获取表集合 3、 表的个数:count() 4、 具体编号:使用编号去取 5、 求行:rowcount 6、 求列:columncount(i) 7、 获取某一单元:getcelldata(I,j) 表的实际内容从第二行开始 六、 描述性编程增加对象 七、 正则 正则用来解决什么问题:用来解决对象的不确定性问题,模糊匹配的问题 描述性编程用来解决临时对象不往仓库中放的问题,临时对象的创建问题 临时性对象不用放到对象仓库中 Childobject只能用描述性编程一: Childobject(带着父亲一起传):可以用描述性编程,但是带着父亲一起传 也可以对象仓库中的测试对象一起传 八、
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服