您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > DPI自动化测试QTP脚本
目录QTP测试DPI的几种实现方式QTP的简单原理QTP框架讲解QTP实例讲解及测试报告的分析QTP脚本的修改QTP的简单原理•QTP的脚本运行其实就是一组对象有组织的执行自己的方法,最终完成一个流程的过程。当打开一个web时,想要脚本能够模拟人来操作整个流程,那么就要求这个脚本能够识别人的每一个操作,而人的操作实际上是对web页面上控件的操作,所以只要QTP的脚本能够识别人操作过的控件就可以模拟人的操作流程,而web页面上的控件都是QTP脚本中的对象,也就是说只有QTP脚本中的对象能够被唯一的识别出来,就可以模拟人的整个操作流程。QTP的简单原理•TO:TestObject,测试对象,即QTP根据对象的属性描述而创建出来的实例例如:Browser(“QTP_百度搜索”).Page(“百度一下,你就知道”).WebEdit(“wd”).Set“QTP”•RO:RunObject,运行对象,即应用程序运行各个控件QTP的简单原理•QTP脚本执行的过程1.脚本的描述-》实例化一个TO2.软件运行-》QTP根据运行程序识别出一些RO3.根据TO中指定的属性值去RO中匹配,如果在RO中能根据TO指定的属性值唯一确定一个RO对象,匹配的RO则去执行脚本指定的对控件的操作方法QTP的简单原理举例:SystemUtil.RunC:\ProgramFiles\InternetExplorer\iexplore.exe,:\ProgramFiles\InternetExplorer,openBrowser(QTP_百度搜索).Page(Page).SyncBrowser(QTP_百度搜索).Page(百度一下,你就知道).WebEdit(wd).SetqtpBrowser(QTP_百度搜索).Page(百度一下,你就知道).WebButton(百度一下).ClickDPI自动化测试脚本实现的几种方式•URL方式http组中的非客户端的应用•属性方式大多数的客户端应用•属性+click坐标方式客户端中有QTP识别不了的对象的或者能识别执行总失败的用坐标来实现DPI自动化测试脚本-URL•所有的网页视频都是通过url的方式来实现的根据一个页面的各个连接的url的特点,去模糊获取一个分散的且有代表性的url集合,然后分别打开各个url地址方法:打开视频网站的主页,点击各个连接来找页面上的url的特征,然后根据特征去获取url集合优点:搜集的对象比较分散,且比较有代表性缺点:存储视频的服务器一旦修改了存储目录,则QTP就获取地址失败,脚本就得重新修改,存储文件的目录修改频繁的网站不宜用此种方式DPI自动化测试脚本-URL举例•举例:优酷视频DPI自动化测试脚本-属性方式•属性方式获取对象通过对象的属性值的搭配来唯一确定一个对象•方法:使用QTP自带的工具objectspy和objectrepository来辅助识别对象的属性,一般使用默认显示的对象就基本上能识别出来注:不是指定的属性越多越好,指定多了增加不稳定性,适中为好•优点:相对比较稳定,维护起来比较方便,而且通过失败截图可以准确快速的判定脚本失败的原因•缺点:页面相对繁琐的且分类多的应用脚本写起来比较麻烦DPI自动化测试脚本-属性方式•举例:iqiyiclient的举例DPI自动化测试脚本-属性+坐标方式•属性+坐标方式:一般用于比较大的客户端,对象封装性特别好,有部分对象识别不了,或者是识别不好的,这部分用坐标方式来实现,一般网络电视的或者P2P下载用这种方式比较多优点:可用性比较强,所有的应用都可以通过这种方式来实现缺点:页面的格局改变时,坐标值要重新定位,而且脚本写起来比较麻烦,费时,维护频率比较高QTP的框架Module.vbs:是整个QTP脚本运行的框架,相当于main函数Const.vbs:整个脚本环境里所用的常量的定义例如:页面打开的等待时间openurlwaittime、视频的播放时间LookOneVideoTime等Common.vbs:引用的自定义函数Shell_exe.vbs:将分析识别结果的shell脚本转化成函数,好在vbs中引用Exel.vbs:操作的exel的自定义函数库QTP实例讲解及报告分析脚本的运行需要在工程里运行,dpi测试的工程名为driver,且QTP只允许打开一个工程,不允许同时打开多个工程youku视频案例Iqiyiclient看视频案例QQliveQTP的报告分析根据生成的报告去分析dpi的识别情况没跑一次脚本,都会生成一个threshold_report.txt,报告的分析一般要拿QTP脚本的运行报告作为辅助来分析Dpi识别失败的两种情况:1.脚本运行失败了,导致主协议的流量比例异常,一般小于流量比例就定义为识别失败,一般这种情况要手动测试2.脚本运行成功了,但是但是含有一些不应该出现的协议,这时候有两种解决方案:方案一:手动测试,观察是否仍有不应该出现的协议,若不再出现,则测试通过,若再次出现,且此种情况频繁发生则考虑将此协议放开方案二:查看跑脚本的过程中所抓到的包中是否有这种协议的包,若没有的话就是误识别;的确有这样的数据的话,且总出现,考虑放开;偶尔出现的话则不要放开注意:一般不要轻易放开QTP的脚本修改确定QTP是否运行失败:一般运行QTP脚本时要将failruncount设定为3,如果第一次失败了,则要运行三次,这样的话方便确认脚本是否运行失败了,是否需要修改;如果运行的三次都失败了,则脚本一定有问题,必须修改;如果第一次失败了,之后的两次成功了,则说明第一次是偶然,不要修改;如果前两次失败了,第三次成功了,则需要重新跑一次验证QTP的脚本修改用QTP的脚本运行报告作为辅助来定位问题,先确定出问题的开始处,之后从此处往后开始改,大多数情况下都是因为一个对象的属性改变了导致运行失败的;确定出问题的开始处方法:1.观察报告的截图,观察截图来定位脚本跑到哪里出错了,就从此处开始检验各个的对象的属性值是否唯一确定;2.重新如果截图挡住了,或者看不清,则需要重新跑一次来确定出问题的地方;QTP的脚本修改修改脚本的方法:主要有两种情况,一种是url方式获取对象的,一种是通过属性或者属性+坐标来确定对象的;1.URL的要打开网站之后,通过点击页面的视频来发现URL的规律;2.通过属性获取对象的,需要用objectspy或者objectrepository来查看新对象的属性3.如果有点击坐标位置发生变化的,一般需要手动录制一次,来准确确定坐标位置
本文标题:DPI自动化测试QTP脚本
链接地址:https://www.777doc.com/doc-3854585 .html