QTP 对象库参数化解决多语言
2015-06-02 18:23
387 查看
最近做的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
相关文章推荐
- 工厂模式生成构造函数带参数的对象时的解决办法(Assembly.Load(path).CreateInstance)
- QTP运行错误:对象无法识别的解决办法(转)
- Android 访问Webservice接口,参数对象不能串行化问题解决(java.lang.RuntimeException: Cannot serialize)
- qtp:操作mysql数据库时,提示"str open sql.conn对象打开时,不允许操作的解决方法
- 第02天OC语言(06):对象作为方法参数传递
- 1:HTML 中 onclick 触发函数 xxx(param) 要传递对象参数的解决方法 2:LocalStorage存储JSON对象的问题 3:ajax请求传送参数为对象问题
- [原创]QTP对象库中缺少对象或录制不了脚本的解决方法
- Android中不同Activity之间传递自定义对象的参数问题的解决
- 解决axios,post请求传递不了对象{}参数的问题
- 解决springmvc关于前台日期作为实体类对象参数类型转换错误的问题
- HTML 中 onclick 触发函数 xxx(param) 要传递对象参数的解决方法
- 第02天OC语言(05):对象作为方法参数分析
- .Net反射技术应用解决对象不同版本方法不同参数的问题
- Thin的DateChooser代码学习(关于js的函数参数为一个完整的函数以及“对象不支持此属性或方法”错误的解决)(原创,转载请声明)
- vs2015中c++中multiset容器定义对象时参数列表中显式调用greater无法被识别的解决办法
- XFire 参数是对象解决
- 解决Spring Mvc中对象绑定参数重名的问题
- MyBatis的foreach语句详解,可解决界面传输的数组对象参数问题
- springboot+springcloud微服务调用,被调用方法中传递对象参数问题解决
- Net反射技术应用解决对象不同版本方法不同参数的问题 【转载】