51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2336|回复: 2
打印 上一主题 下一主题

[Robot] 关于robot的部分问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2005-2-22 20:45:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
linyue,不好意思,由于一直都很忙,所以你的问题放了这么久才给你回!同样对那些问我问题的人表示歉意,没有及时回答你们的问题!

以下是你的问题

Robot中的相关问题!
一.vp里面的baseline怎么跟变量挂钩,因为我想vp一些动态的东东
答:Robot中的vp的baseline是保存在:工程文件\TestDatastore\DefaultTestScriptDatastore\TMS_Scripts\vp文件夹下边的文件。文件名字用编写规则是 - 脚本名称.验证点类型.base.文件后缀.
解决问题有几种,我们再看看可操作性!
1.找到相应的baseline文件,然后动态修改这个文件内容
2.把可能用的vp都保存,然后动态控制用那个vp来验证
3.观察每次vp到底是什么,然后解决

初步想到以上三种方法,我们看看可操作性
1.由于对其中的baseline格式不了解,进行动态修改,难度很大。所以这种方法不可行
2.我们发现每次添加相应的vp,会在robot中按照一定次序增加vp.比如第一个添加vp后,robot生成一个节点名字叫 Object Properties,第二个叫Object Properties2,以此类推。
那么我每次只要把要用到的vp保存下来就可以了,然后再脚本中控制
比如用select case语句,
  select case i
  case 你的变量具体值
       用 Object Properties
  case 你的变量具体值
       用Object Properties1
  end select
3.用vp每次robot会保存很多无用的数据,我们可能只要一个数据,robot提供了sqagetperproty函数,我们只要每次对比用这个函数动态得到的数据就可以了

上边三种方法,后两种可行,最后一种最灵活!

二.一些控件里面的content我想取出来放到String里面供以后应用,怎么取啊?
答:给你段代码

Sub Main
   
   Dim Result As Integer
   Dim CheckState As Variant
  
   Window SetContext, "Caption=Find", ""
   
   Result = SQAGetProperty ("Text=Match case", "State", CheckState)

   If Result = sqaSuccess And CheckState = 0 Then
     CheckBox Click, "Text=Match case"
    End If
End Sub

CheckState就是你想要得

三. 我碰到的一个java applet。看上去应该是个java treeview, 用Robot抓下来却成了
java panel, 一点也不好操作,难道它真是个panel?
答:robot需要通过jvm来识别相应的对象,你测试的这个java applet是用得jdk什么版本,你robot所用的版本是否是同样的版本!因为不同的jdk版本有很大的差异的!
你的问题一定程度是识别对象的问题,那么针对java的程序,robot的javaenabler的版本是否是最高的!还有如果还是不能识别,一般要通过开发proxy的方法,来进行识别!也就是你需要扩展接口支持不能识别的对象!


四.4.关于Robot中的boolean型
我知道Robot中用Integer来处理boolean型,但我对这种Integer表示boolean时的值
有点迷惑。
我用程序测试了一下,
Dim Result As Integer
Result = true时打印出Result的值为-1
Result = false时打印出Result的值为0
是否可以认为Result的值为-1时为true, 为0时为false;
答:robot没有提供boolean的data type.一般在编程过程中我们是用到自定义变量需要boolean的时候,用0成功1失败。这看你自己的喜好,至于你看到的是因为这两个关键字在robot中已经作为关键字赋值了。也就是他把它作为const保存 const true=-1。所以你不能这么认为,这两个关键字只是为了robot作准备的,由于robot没有定义boolean的data type,那么按照其他人提供的sbl中的自定义函数可能有自己的定义方式,所以具体问题具体分析!

五.正常情况下,vp通过log里面就是pass,不通过就是fail.我怎么让他fail以后写的
log不是fail而是sqaNone那种形式
答:robot中提供了函数SQALogMessage code%, message$, description$
    你可以在脚本中进行控制,直接写脚本如下:
    SQALogMessage sqaNone, "Starting test of Acme Application...", ""
   
六. SQAFindObject这个函数,怎么有时明明不存在了的东东,它的返回值也能为真,郁
闷。
答:关于这个问题能不能给出个具体点的东西,你说得有可能,因为robot本身有个功能是可以识别不可见对象,开发软件的时候,有很多控件是不显示的,还有就是界面中对象很多,被其他对象覆盖,或者当前时候,对象不显示。而你在用该函数的时候正好有这么个对象,只是你看不到而已。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏

该用户从未签到

2#
发表于 2005-3-2 21:52:27 | 只看该作者

真是太感谢啦

:×
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2005-3-3 09:42:05 | 只看该作者
看了Robot和QTP这两个工具以后,发现这些工具提供的功能对实现初级的自动测试很有帮助,如果要实现比较高级的功能或者增加自动测试的灵活性、可维护性等等,我觉得还是多动动脑筋怎么写代码吧,工具本身的能力也就那么大了。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-5-10 03:03 , Processed in 0.062561 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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