sypm 2007-6-22 16:45
functionaltest验证点求助!!
小弟使用functionaltest7.0.0录制软件一个验证点,想使用这个验证点做为条件进行IF的判断,但像以前一样使用VP().compare不能使用,因为缺乏测试对象,如果有测试对象后面就不能加compare,我现在想既使用这个验证点,但完毕后打引出的LOG又不显示验证点通过与否,请大家给小弟指条明路,小弟才疏学浅刚刚使用此工具,请明人指点!
sypm 2007-6-25 10:02
大家帮帮忙啊,
sypm 2007-6-25 16:14
顶起来,大家帮忙啊
eagleyes125 2007-6-25 16:46
IFtVerificationPoint vp = vpManual("isPass",expectedtext,actualtext);
boolean isPass = vp.compare();
if(isPass){
......
}
else{
......
}
只要不加vp.perfomTest()这个方法,就不会写在执行完的log里.
edon 2007-6-26 13:16
借个地方,请问RFT可以verify image吗? expected image 和 actual image只有部分区域像素的区别。
eagleyes125 2007-6-27 17:32
to #5,
我已在你新开的贴回答了你的问题.
sypm 2007-7-9 15:17
版主内功深厚,佩服佩服,多谢赐教!!谢谢了!
sypm 2007-7-10 14:23
IFtVerificationPoint vp = vpManual("isPass",已审核VP());
boolean isPass = vp.compare();
if(isPass){
......
}
else{
......
}
这个"已审核"的验证点是通过functionaltest录制出来的,请问我这个写法对吗??我执行的时候isPass 这个点已经通过了,为什么还执行ELSE里的东西呢?
sypm 2007-7-11 10:38
顶,我很无助啊
sypm 2007-7-16 16:10
顶,我很无助啊
eagleyes125 2007-7-18 11:39
因为你的isPass在运行时总是false,所以会总是执行else里的程序段。
vpManual("isPass",已审核VP()); 你这样写在语法上是对的,但在实际脚本中,几乎不那样写,因为它是用建baseline的,如果有的话才去比较。
脚本中常用的是vpManual(String vpname, Object expected, Object actual).
你上面的代码想要完成什么功能?
sypm 2007-7-26 12:23
我这段代码是测试屏幕上单据的一个状态,如果单据属于这个状态(示例中的),那么执行IF里的东西,不属于这个状态,执行ELSE里的东西
[[i] 本帖最后由 sypm 于 2007-7-26 12:25 编辑 [/i]]
eagleyes125 2007-7-26 15:01
假设你所获取的申报当前状态的对象名为:declare_status(),你可以用以下思路来完成你的脚本。
String isDeclare = (String)declare_status().getProperty(".value");
if(isDeclare.equal("待申报"){
...
}
else{
...
}
sypm 2007-7-26 15:16
我录制了对象,用刚刚的方法脚本回放后报错
exception_context = 在“SelectGuiSubitemTestObject(名称:lvwSummarytable,映射:lvwSummary)”上调用了 getProperty()。
exception_name = com.rational.test.ft.PropertyNotFoundException
exception_message = System.Windows.Forms.ListView..value
script_name = Script1
script_id = Script1.java
line_number = 33
exception_stack = ------------------------------
at com.rational.test.ft.object.interfaces.TestObject.getProperty(TestObject.java:587)
at Script1.testMain(Script1.java:33)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)
at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
at org.eclipse.core.launcher.Main.run(Main.java:977)
at org.eclipse.core.launcher.Main.main(Main.java:952)
sypm 2007-7-26 16:14
晕了,不知道怎么解决,RFT材料比较难找
eagleyes125 2007-7-26 16:28
在你的应用中那个对象是个列表,而我给我取的例子是文本框,如果你按搬的话,当然会出错了。
你可以试一下下面的代码:
String isDeclare = declare_status().getSelectedText();
if(isDeclare.equal("待申报"){
...
}
else{
...
}
因为不知道你应用中是个什么样的列表,可能上面代码不能直接解决你的问题,你可以用System.out.println(declare_status().getText());来输出,看如何取得那个值,正确取到值后,然后再以它来进行比较进入选择语句。
sypm 2007-7-26 16:53
恩,这个办法不错,执行后GET出的文本是"序号"那一栏的"1",序号这一栏是必须显示给用户的,没有去掉的选项,所以这个栏最少也会显示两个项目,用这个方法验证不到"待申报"这个状态,并且在录制测试对象时只能录制外面的那个框,不能录制里面的LIST,麻烦您在给我想个办法,我是RFT的初学者,帮帮我的忙,谢谢!
[[i] 本帖最后由 sypm 于 2007-7-26 17:08 编辑 [/i]]
eagleyes125 2007-7-26 17:05
那可能是你抓对象抓的不对。是不是序号1那列是一个列表,当前状态那一列又是另一个列表。
还是那两列是一个表。在你抓对象的时候,你可以看的出来这些的。
sypm 2007-7-26 17:12
呵呵,刚刚忘记说了,两列是一个表,我抓的时候只能抓到外面的框,不能抓到里面的列表,抓验证点用"数据验证点"抓时可以将里面两个都抓出来,但抓对象时不行. [email]yohayu@hotmail.com[/email],版主可否加我的MSN??
sypm 2007-7-26 17:32
我录制了一个这样的验证点,它可以取到里面的文本,但如果写成 已审核VP().compare() 这样子报错:在动态VP中没有测试对象,这个有办法解决吗?
eagleyes125 2007-7-26 17:59
假设你抓到的那个表对象为:declare_table()
先运行:
System.out.println(declare_table().getTestDataTypes());
会输出如下的内容:
{contents=Table Contents, selected=Selected Table Cells}
然后再运行:
ITestDataTable myTable;
myTable = (TestDataTable)declare_table().getTestData("contents");
String declare_status = myTable.getCell(0,1);
你最后可以运行:
System.out.println(declare_status);来验证你是否正确取出来了。
sypm 2007-7-26 18:08
谢谢你,明天验证您的方法,下班了!!!
evergreenwang 2007-7-26 23:07
帮忙顶一下,兄弟!!
sypm 2007-7-27 10:22
谢谢版主热心及这么耐心的对待我这个问题,我先谢谢你,听起来像客套话,但都出自真心,FUNCTIONAL TEST网上资料比较少,有一个这您这样真心帮助一个初学者,真的不容易碰到,问题解决了,但String declare_status = myTable.getCell(0,1);这句我改了下,不能用STRING ,我用的是Object,把值准确的取了出来,对比后可以成功的执行 IF ELSE了,在次谢谢您!!
另外我还有个问题,就是如果我在序号后面有两个值,比如"待申报","未审核",如果要对这两个值进行对比,执行IF里的东西,要怎么做呢???
sypm 2007-7-27 10:45
问题已经解决了,我取了两次值,然后把两次的值合并,最后执行对比成功,谢谢版主提供这么好的思路
页:
[1]