最近做的web项目,需要支持多语种。
系统默认是英语语种,将来需要支持例如,法语,德语之类的。
目前测试框架的方案是:每一种语种对应一条共享对象库。
初始化的根据系统语言选择加载对应的对象库
想了想该方案维护性太差,将来页面对象变化话需要同时维护多套对象库
我的解决思路如下:
1.通过 Manage Repository Parameters 新建属性变量,并设置在英文下的 default value。
2.在对象库里link parameters。
3.新建一个ObjectMapping excle 文件。
这样以后只用维护一套对象库和一个ObjectMapping 表,将来如果要扩展支持其他语言,只要在表里加一列就好。
tips.
1.在对象库里尽量选择html id 这个属性(如果熟悉web 前端的同学,这个其实就是页面控件里id ,一般来讲是唯一的,并且跟页面语种无关),所以真正需要参数话的属性只有 innertext,text.等取页面字符。
减去之前推荐的html id 这个跨语言的属性,其实真正需要参数化的对象并不多。
2.Parnmeters 的default value 为英文下字符,只有在非英文下才加载ObjectMapping,提高脚本执行效率。
3.mapping 表里的enus那一列其实用不到,仅用来参考用。系统为英语是不加载mapping表。
目前对象库的参数化有个问题,不能设置为正则表达式。不知道是不是HP故意遗漏的。
If lcase(userLanguage)<>"enus" Then MappingObject userLanguage End if Sub MappingObject(Language) objTestCase.entering "MappingObject" Dim mappingFile:mappingFile=objTestCase.GetResouceFolder&"\ObjectMappingTable.xlsx" Dim i On error resume next :err.clear DataTable.AddSheet "ObjectMappingTable" DataTable.ImportSheet mappingFile ,1 ,"ObjectMappingTable" dim rowcount:rowcount = DataTable.GetSheet("ObjectMappingTable").GetRowCount If err.number<>0 Then Logger.Report micWarningWithoutScreen,"Import the ObjectMappingTable ", "We see Exception:"&err.description err.clear End If For i=1 to rowcount DataTable.SetCurrentRow(i) dim PropertyPara:PropertyPara=trim(DataTable.Value("PropertyPara","ObjectMappingTable")) Repository.Value(PropertyPara)=DataTable.Value(Language,"ObjectMappingTable") Next If err.number<>0 Then Logger.Report micWarningWithoutScreen,"Initialize Repository parameter", "We see Exception:"&err.description err.clear End If On error goto 0 objTestCase.exiting "MappingObject" End Sub
相关推荐
QTP对象库简介
QTP脚本参数化,初步交代QTP脚本的使用方式、方法
QTP对象库XML文件 XML QTP
qtp中使用编程方法实现参数化。 qtp中使用编程方法实现参数化。
所以,鄙人就自行研究,使用autoit脚本,写了一个QTP对象库冗余检查的工具,现在分享出来,希望可以帮助到有需要的人。 注:脚本的使用方法已在脚本里注明,该脚本只是找出冗余的对象名称,还需自行手工进行删除。 ...
本人调试无错的QTP订机票参数化测试代码
QTP入门-检查点输出值参数化 录像 检查点 输出值 参数化 同步点 1.检查点 目的: 检查点比较指定属性的当前值与期望值,以判断当前的程序(或站点)功能是否正常。 在密码正确的情况下预期结果是进入主界面,检查...
QTP脚本,动态加载对象库,无需再将对象库进行关联,该对象库脚本开始执行加载,脚本执行完毕后释放。注意:动态加载脚本时,对象库不能在副对象库加载,否则报错。
QTP对象识别、QTP测试流程、QTP错误处理机制和虚拟对象的使用。
QTP描述性编程,参数化,读取excel,数据库
对于使用QTP做为自动化测试工具的测试项目来说,其对象库的管理在整个自动化测试过程中,占有非常重要的地位。特别是对于一个大型的应用系统,其界面的对象多而杂,一个统一、有序的对象仓库非常有利于脚本的快速...
第12篇-QTP对象探测器 第12篇-QTP对象探测器
第14篇-QTP对象管理机制(2) 第14篇-QTP对象管理机制(2)
QTP对象识别常用方法介绍
第13篇-QTP对象管理机制(1) 第13篇-QTP对象管理机制(1)
QTP港澳通行网络签注自动化对象库
QTP自动化对象模型中文版
自动化对象模型参考自动化对象模型参考自动化对象模型参考自动化对象模型参考
QTP对象不能识别的处理方式流程图,教你每一步如何解决对象不能识别的处理方法,每一步分开介绍不同的现象,直到解决为止,就算是一个小白,都能根据流程图解决QTP不能识别对象的各种问题,