51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3098|回复: 11
打印 上一主题 下一主题

[求助] 我们项目能做自动化测试 for regreesion吗?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-1-30 13:39:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问我们项目能不能用QTP作regreesion testing:
我们项目是做UI和XML对比的测试,就是UI上面的对象等等和XML里面的ELEMENT的值的对比,像这样的测试,如果是做regreesion testing, 可以用QTP做到吗?
应该要解决以下几个问题就可以了:
1)抓UI上面的对象 (这个应该QTP可以做到)
2)抓XML里面的element的值(这个就不知道怎么做了)
3)作mapping,把UI和XML里面element的值建立连接
4)两者进行对比(自动对比)
5)自动出报告(log)

求高手指点,或者说有没有其他的自动化测试工具可以做到。。谢谢。。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-1-30 16:19:13 | 只看该作者
原帖由 lala_sisi 于 2008-1-30 13:39 发表
请问我们项目能不能用QTP作regreesion testing:
我们项目是做UI和XML对比的测试,就是UI上面的对象等等和XML里面的ELEMENT的值的对比,像这样的测试,如果是做regreesion testing, 可以用QTP做到吗?
应该要解决以 ...

单从单个功能来说,我觉得都是可以实现的
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-1-30 16:28:22 | 只看该作者

回复 1# 的帖子

我也同意版主的观点。QTP读取XML的值是没有问题的
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2008-1-30 17:30:09 | 只看该作者
能否给各事例,多谢!
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-1-30 17:31:43 | 只看该作者
QTP有专门处理xml的对象,这个项目用QTP就对了,呵呵
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2008-1-30 18:34:46 | 只看该作者
1)抓UI上面的对象 (这个应该QTP可以做到)
   是的
2)抓XML里面的element的值(这个就不知道怎么做了)
   这个不是抓,是读,你可以通过QTP读这个XML的ELEMENT
3)作mapping,把UI和XML里面element的值建立连接
   不知道你什么意思,是取UI运行时的属性枝跟读XML的值对比吗?QTP当然可以做拉
4)两者进行对比(自动对比)
   恩恩
5)自动出报告(log)
   恩恩恩
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2008-1-31 18:40:50 | 只看该作者

回复 5# 的帖子

具体怎么操作,可否给各详细的步骤?谢谢。
譬如说:xml里面我有两个elements:name string and name code.
               UI 上面显示的内容,譬如 Las vegas (LAS)    (Las vegas 对应于name string, LAS 对应于name code).

how to do? please give me detailed steps. thanks a lot.
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2008-1-31 18:42:50 | 只看该作者
2)抓XML里面的element的值(这个就不知道怎么做了)
   这个不是抓,是读,你可以通过QTP读这个XML的ELEMENT
-------怎么通过QTP读呢?譬如说有个xml 文件,然后怎么读?详细步骤?谢谢。

3)作mapping,把UI和XML里面element的值建立连接
   不知道你什么意思,是取UI运行时的属性枝跟读XML的值对比吗?QTP当然可以做拉
--------是的,,就是这个意思,,怎么做?详细步骤?谢谢。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2008-2-2 17:02:58 | 只看该作者

回复 8# 的帖子

不好意思,刚看到你的回复,

读XML可以用Set xml = CreateObject("Microsoft.XMLDOM") ;
xml.async = False   
xml.load "***.xml"
然后你就可以同过对xml操作来做你想做的啦,至于你说要怎么读我只能告诉你有哪几个函数,用什么算法遍历查找啊等等应该按你自己的意思去实现的.
可以先根据Set root = xml.documentElement 取根结点
Node.childNodes.item(i),取Node结点下级的子结点的第(i)个子结点.
Node.nodeValue 可以取接点的值.

遍历算法下面给个简单的样例.伪代码,自己改一下试试

Set root = xml.documentElement
Call func(root)

Sub func (Node)
         if Node.nodeValue = 你想要的 Then
                     保存Node.(如果是FUNCTION,可以通过返回保存,这里是用过程函数,所以应该用公共变量.)
                     Exit Sub;
     End if
         Dim count
         count = Node.childNodes.length
         If count > 0 Then
                For i = 0 To count -1
                        Set childNode = Node.childNodes.item(i)
                        Call func(childNode)                                          
                Next
        End If
End Sub

[ 本帖最后由 mythxhg 于 2008-2-2 17:08 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2008-2-3 12:03:48 | 只看该作者

回复 9# 的帖子

谢谢mythxhg的回帖, 我在你给的遍历算法的基础上得到整个导入的xml文件里面的element的值, 只是我还是有两点疑问, 不知道高手可不可以帮忙解决下^_^:
1)怎么做mapping,,把UI上面的对象和对应的element的值链接起来, 这样才能做match的动作.
2)刚又想了下, 觉得好像我们项目work不能单纯的说解决上面的问题就可以qtp自动化了,,因为我们项目的work是这样的: (1)我们先开个浏览器A, 直接到page1的页面, 从page1输入数据,然后发送请求就直接到了page2, (2)再开个浏览器B,重新到page1的页面, 输入和步骤一同样的数据, 发送请求, 然后通过一个方法(利用一个客户提供的途径方法) 发送请求就可以到到page2的xml,,然后我们就对比浏览器A的UI 和浏览器B 上的xml的element的值进行对比..
  不知道高手的意见怎么样, 可以实现qtp的自动化测试吗? (是两个浏览器中的东西进行对比)

非常感谢~~
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2008-2-3 15:21:16 | 只看该作者
应该是可以的,我看过别人录制过,可是我现在也是学习中,呵呵
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2008-2-13 14:56:50 | 只看该作者

回复 10# 的帖子

浏览器A的UI 和浏览器B 上的xml 实际上是没有比较的可能的,

一个浏览器上的按钮跟一个文档上的ELEMENT怎么比较呢?对吧,我想你要比较的应该应该是浏览器A上这些UI对应的xml元素与你用其他途径获得的xml的一个文档内容的对比而已.

Set ieApp= CreateObject("internetexplorer.application")
ieApp.Visible = true
ieApp.Navigate "你的连接"
......你对打开的IE的QTP操作代码......
Set elements = ieApp.document.getElementsByTagName("tr")
通过这些来获取你要的xml元素,然后跟你用QTP读XML得的元素值比较.....
方法其实很多,你只要能获得其xml即可

针对你提出的match,我想最简单的方法就是全匹配嘛,比较A和B的XML结构和值是否都一致.分别遍历2个xml,比较所有元素值.

Set rootA = xmlA.documentElement
Set rootB = xmlB.documentElement
Call func(rootA,rootB)

Sub func (NodeA,NodeB)
         if NodeA不等于NodeB Then
                     标记2个xml文档不匹配
                     Exit Sub
         End if
         Dim countA,countB
         countA = NodeA.childNodes.length
         countB = NodeB.childNodes.length
         if countA不等于countB then
                     标记2个xml文档不匹配
                     Exit Sub
         End if
         If countA>0 Then
                For i = 0 To countA -1
                        Set childNodeA = NodeA.childNodes.item(i)
                        Set childNodeB = NodeB.childNodes.item(i)
                        Call func(childNodeA,childNodeB)                                          
                Next
        End If
End Sub

可能说的跟你问的有出入,不过其实就是改来改去而已,用到的无非是这些.自己设计一下如何做比较就可以了.
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-9-25 12:24 , Processed in 0.083343 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表