51Testing软件测试论坛

标题: 将基于对象库编程自动转化为描述性编程小工具 [打印本页]

作者: mklodoss    时间: 2009-3-19 09:28
标题: 将基于对象库编程自动转化为描述性编程小工具
本帖最后由 mklodoss 于 2010-10-11 14:39 编辑

由于最近一直要使用描述性编程来做脚本,写的时候又没有自动完成功能,还有一个个复制属性,觉的比较麻烦,遂想能不能先通过对象库的编程,再一次把它转为描述性编程 。于是这个小工具就这样诞生了。解压后里面有详细的使用方法,转换窗口左边为要转换的基于对象库编程,右边为转换后的描述性编程。使用中有什么问题也请告诉我。
作者: 假装不在    时间: 2009-3-19 10:09
   终于写好了?~~
作者: helius    时间: 2009-3-19 10:11
这样忒神奇了
作者: dreamever    时间: 2009-3-19 10:11
顶,楼主太强大了.
作者: 远野志贵    时间: 2009-3-19 10:29
强大啊!!!牛X
作者: mklodoss    时间: 2009-3-19 10:29
呵呵,谢谢,还没有测试完全,可能还有一些bug, 如果在使用过程中有什么问题,请告诉我,我会尽力完善的。
作者: 远野志贵    时间: 2009-3-19 10:31
发错了版本吧,我解压不了.
作者: mklodoss    时间: 2009-3-19 10:35
我用的是wrar 3.2 压的呀,应该可以解压的。
作者: mklodoss    时间: 2009-3-19 10:39
不好意思,解压后里面有一个XmlView.rar,  直接把名字改成XmlView.exe, 就行了, 不用解压了。呵呵。
作者: testlab    时间: 2009-3-19 11:37
Trans.rar无法解压,只能解压出使用方法
作者: mklodoss    时间: 2009-3-19 16:15
标题: 回9#
自己顶一个,LS有说使用方法。
作者: testlab    时间: 2009-3-19 17:16
标题: 回复 11# 的帖子
只有使用方法的说明.XmlView2.rar解压不出来,更没法改后缀了
作者: mklodoss    时间: 2009-3-19 17:25
XmlView2.rar不要解压,直接将后缀名,.rar, 改成.exe,看来我作文老不及格是正常的了。
作者: ccx8583    时间: 2009-3-19 17:26
小丁同学~ 太牛了~~!!
作者: t95abin    时间: 2009-3-19 17:41
学习一下。谢谢楼主
作者: wshyzhywx    时间: 2009-3-20 10:43
用不了哟  加载XML失败
作者: testlab    时间: 2009-3-20 11:21
现在可以解压了,昨天可能没下载完整
作者: mklodoss    时间: 2009-3-20 11:35
标题: 回16#
能把你的xml文件发给我看下吗?
softtestddj@163.com
作者: mklodoss    时间: 2009-3-20 11:36
标题: 回16#
你是用那个版本的Qtp?
作者: my3glive    时间: 2009-3-20 17:58
顶,看看再说了。
作者: dreamever    时间: 2009-3-22 12:59
这样的帖子一定要UP起来.
作者: lotus    时间: 2009-3-23 17:32
顶,学习学习
作者: enter333    时间: 2009-3-24 09:25
只能说lz相当牛啊。
作者: kelly33    时间: 2009-3-24 15:08
听起来还不错,谢谢楼主了,呵呵
作者: zitong    时间: 2009-3-24 17:10
thank you !
作者: zitong    时间: 2009-3-25 14:11
今天用了一下楼主的小工具,怎么那个转换窗口没什么用呀?只能打开对象库xml文件,打开后是已经转化成描述性编程了,但是是树形结构显示,不能copy也。是本来就不支持copy的么?
作者: peterz    时间: 2009-3-25 15:09
下来去试试
作者: onlonely    时间: 2009-3-25 16:07
目前我想最知道的是XML格式的对象如何导出,

我看了看9.2的对象库里面,只能导出tsr格式的对象库文件呢.

作者: zitong    时间: 2009-3-25 18:00
标题: 回复 28# 的帖子
在对象库对话框中导出为tsr格式,然后在对象库管理对话框中打开刚保存的tsr格式文件,然后在文件下选择保存为xml格式就可以了。
作者: mklodoss    时间: 2009-3-25 18:09
呵呵,谢谢大家支持。
回复,Zidong,  转换窗口的左边是你的基于对象库编程, 点击转换按钮就自动在右边的窗口生成基于描述性编程了。(前提要导入相关对象库的xml文件)但是象msgbox  之类的是原样不会转的。
至于你说的树要双击一下要选的项,就可以copy了。但一个个拷不是很累吗?
作者: onlonely    时间: 2009-3-26 15:13
建议
1,转换窗口要能改变大小,并且最好是层叠摆放,这样好对比和修改.

2,那个是待转换的"基于对象编程代码",那个是"描述性编程代码"需要在窗口上方说明(如附件所示)

3,需要过滤掉那些几乎没有用处的属性,只保留重要属性.更人性化的选择就是提供选择过滤掉什么属性.

4,对象库的显示风格最好和QTP中的一样,比如排序方式,比如显示出什么属性


最后还是很高兴楼主你编写出这个软件来了.只要加强垃圾属性的过滤.我感觉还是很乐意使用的.
因为:

你这个工具转换的代码:
Browser("title:=eHome 网家 — 记录家庭成长","openurl:=about:blank","opentitle:=","openedbytestingtool:=0","name:=eHome 网家 — 记录家庭成长","micclass:=Browser","hastoolbar:=-1","hasstatusbar:=-1","hasmenubar:=-1","browserindex:=1").Page("eHome 网家 — 记录家庭成长").Image("thumb1_200903171502478152").Click

实际我使用的代码:
Browser("name:=eHome 网家 — 记录家庭成长").Page("title:=eHome 网家 — 记录家庭成长").Image("file name:=thumb1_200903171502478152").Click

几乎不能使用啊.

[ 本帖最后由 onlonely 于 2009-3-26 15:18 编辑 ]
作者: mklodoss    时间: 2009-3-26 15:51
标题: 回复32#
谢谢onlonely的建议。关于第三点是有点难改,因为我是取的是对象的固定的属性,就是在对象库中的用来描述这个对象的属性,一个折衷的办法是在设定对象库中固定属性,如browser 可以只设定name, title 。可以在object identification中设定。呵呵。
作者: onlonely    时间: 2009-3-26 21:04
标题: 回复 33# 的帖子
我按照你说的去设置了下object identification,发现垃圾属性也没消失多少.

Browser("name:=eHome 网家 — 记录家庭成长","micclass:=Browser","browserindex:=1")
.Page("user-input in post data:=","user input in get data:=&","url without form data:=http://sn.ehome.cn/Index.aspx","title:=eHome 网家 — 记录家庭成长","non user-input in post data:=","non user-input in get data:=&type=loginout&return=1","micclass:=Page","index:=10132","form data:=","document size:=19733","all data in get method:=type=loginout&return=1")
.Link("micclass:=Link","text:=新用户登录","source_index:=185").Click


你一定要想办法过滤垃圾属性,不然实用性太差了.

我还想到一个办法是,允许编辑对象库属性,这样也是折中方法.

[ 本帖最后由 onlonely 于 2009-3-27 09:00 编辑 ]
作者: mklodoss    时间: 2009-3-27 17:51
标题: 回ls
已经修改,可自定义需要的属性。
作者: onlonely    时间: 2009-3-27 22:38
标题: 回复 35# 的帖子
你都上传什么了呀,一个QTP的启动程序..汗...
作者: sterson    时间: 2009-3-27 22:55
不得不顶一个,力致于自动化测试
作者: mklodoss    时间: 2009-3-27 23:06
回复 35# 的帖子
你都上传什么了呀,一个QTP的启动程序..汗...



什么QTP的启动程序????
作者: liweilovend    时间: 2009-10-15 15:04
楼主很强大!佩服、佩服+万分感谢!我正需要这个工具呢!希望以后有新版本或更加完善的版本,楼主继续发帖啊!
作者: mklodoss    时间: 2009-10-15 15:12
有一个新版的:适用于9.2以上:http://bbs.51testing.com/viewthread.php?tid=149065
作者: liweilovend    时间: 2009-10-15 16:28
给斑竹提个建议,导入的xml,修改标识对象属性后没有导出功能,这样在对象库非常庞大的情况下,每次转换脚本都要全部修改一遍,而且还不能批量修改,这样会有很大的工作量。建议加个导出的功能。建议可以批量修改。 希望这个软件做的越来越好!
作者: blueeagle9999    时间: 2009-10-16 18:39
标题: 回复 40# 的帖子
还在孜孜不倦地改进啊
作者: mklodoss    时间: 2009-10-16 22:12
标题: 回复 42# 的帖子
很久以前就改了, 最近都没见你上Q啊。
作者: liweilovend    时间: 2009-10-19 17:59
谢谢楼主的热情,最近在研究的时候发现,转换后的语句有些问题,在这里总结一下。
1、对于检查点不支持,以下是转换后的
' 增加飞行日期的检查点
Window("regexpwndtitle:=Flight Reservation").WinObject("regexpwndclass:=MSMaskWndClass").Check CheckPoint("Date of Flight:")      
' 增加出发地点的检查点
Window("regexpwndtitle:=Flight Reservation").WinComboBox("nativeclass:=ComboBox","items count:=10","attached text:=Fly From:").Check CheckPoint("FlyFrom:")       
' 增加目的地的检查点                                          
Window("regexpwndtitle:=Flight Reservation").WinComboBox("nativeclass:=ComboBox","items count:=9","attached text:=Fly To:").Check CheckPoint("FlyTo:")
转换后的检查点语句不可用       
2、对于Button的识别,window id这一项总是错乱的!
3、有时候会莫名奇妙的多个逗号,运行时出错了才发现。
楼主可以关注一下,以上都是利用飞机订票系统测试的结果。我希望这个软件做成在自定义关注属性的情况下,可以直接转换成描述性编程的语句,不需要再次修改的。哈哈!楼主辛苦!                                                
请楼主关注一下!
作者: mklodoss    时间: 2009-10-19 18:26
呵呵,谢谢你提出的问题和建议,我修下。
作者: liweilovend    时间: 2009-10-20 10:03
楼主每天都上51啊,呵呵,回答的很及时!顶一个!
作者: liweilovend    时间: 2009-11-6 10:49
楼主,我在等你的新版本呢!啥时候出来啊!
作者: witcher2002    时间: 2009-12-7 16:50

作者: jims55555    时间: 2010-9-3 13:17
标题: 哈哈 牛叉
谢谢分享 哈哈
作者: sterson    时间: 2010-9-4 11:23
呵呵 ,楼主的这个东西,通用性很高,大家可以省很多时间阿
谢谢那些为功能自动化而努力的同行们。。哈哈。。

也让我们力致至自动化测试的研究。。

我也设计了一个脚本转换的工具,不过这个工具并不是通用的,它是为我的测试框架而设计的

当然大家有兴趣的话,可以研究一下,运行时,可能会弹出来个msinet.ocx找不到的提示
这个没有关系,是因为有个自动升级的组件,这里我只发转换代码的组件,呵呵
发上来供大家参考:[attach]65082[/attach]
作者: PrefTest    时间: 2010-9-4 12:09
标题: 回复 50# 的帖子
这个框架开源吗?
作者: jims55555    时间: 2010-9-4 13:23
标题: 谢谢分享
谢谢分享 哈哈
作者: kavensyw    时间: 2010-9-5 09:57
发觉不支持中文
作者: winmeatp    时间: 2010-9-7 17:22
标题: 回复 50# 的帖子
请各位大哥看看 讨论下 这段录制的脚本怎样写成 描述性语言 谢谢
用于清空IE缓存:
        Browser("Login").WinToolbar("ToolbarWindow32").Press "工具(&T)"
        Browser("Login").WinMenu("ContextMenu").Select "Internet 选项(O)..."
        Browser("Login").Dialog("Internet 选项").WinButton("删除 Cookies(I)").Click
        Browser("Login").Dialog("Internet 选项").Dialog("删除 Cookies").WinButton("确定").Click
        Browser("Login").Dialog("Internet 选项").WinButton("删除文件(F)").Click
        Browser("Login").Dialog("Internet 选项").Dialog("删除文件").WinCheckBox("删除所有脱机内容(D)").Set "ON"
        Browser("Login").Dialog("Internet 选项").Dialog("删除文件").WinButton("确定").Click
        Browser("Login").Dialog("Internet 选项").WinButton("确定").Click
作者: komado    时间: 2011-1-6 15:09
QH
作者: oceanwell    时间: 2012-2-3 17:46
收!
作者: rzggz    时间: 2012-4-6 15:34
d顶




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2