51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3832|回复: 8
打印 上一主题 下一主题

selenium---高手看过来(关于人为控制用例失败和 打印生成日志报告的问题)---------

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2011-1-21 14:53:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 肖欢伟 于 2011-1-21 15:11 编辑

现在正在用selenium在做一个ASP写的Web项目。自动化用例是写在VS2008里面的。
现在已经做成命令行的批处理了。在命令行窗口可以清楚的看到用例的执行成功或失败。现在被老大挑出个很重要的问题(急急。。)

问题:例如:增加一条数据AA,我就是做了增加,保证用例执行通过。老大说不行,必须返回到显示页面里去找这个AA,如果找到则算成功,如果没有找到就是失败(即使用例执行成功),
现在问题是怎样控制如果没有找到让用例就执行失败(即在命令行窗口显示的是不通过的)。。。。。不会怎么控制让一个执行通过的用例变为不通过。。。求救!
(老大说光用例通过不行,用例通过不代表功能就一定能通过。华为的BOSS真厉害)

问题2接上面:还有就是是如果没有找到,就是失败,要在用例执行完后能打印或生成报告。是否能做到?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2011-1-21 15:00:42 | 只看该作者
本帖最后由 肖欢伟 于 2011-1-21 15:10 编辑

还有删除:删除一个名字为 DD的用户,我目前就是做了删除,保证用例执行通过。
按照老大的意思,
必须返回再去查询一遍, 查不到才算用例通过,如果查到了则证明失败(只是用例执行通过而已)这是就要人为的控制让此用例执行结果是不通过的,
我目前所作的只是保证了用例的跑起来,向此题,如果我查询到了(就是没有删除掉喽),
但我这个用例执行结果还是顺利的通过的,此时就要人为的控制让用例不通过。  
不会怎么控制让一个执行通过的用例变为不通过

跪求。。。。。。。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2011-1-24 14:30:23 | 只看该作者
楼主应该不是做测试的吧!

另外,你用的是selenium IDE 还是RC?为什么不通过的用例要在命令行窗口显示结果,而不是发出Report?

selenium中都有类似verifyElementPresent或者isElementPresent这样的指令,用XPATH定位元素,应该可以满足要求。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2011-1-24 14:52:04 | 只看该作者
回复 3# robin.von
我是在做测试呢,外包在华为,这边的老大要求做成批处理。
我现在就差最后比较这一步了,不会怎么比较。今天看了上selenium的官方命令行。好像有比较的命令
,好像就是这些吧。不过我看不懂不会用。下面就是我复制过来的。求救。
-------------------------------------------------------------------------------------
三、 Assertions
允许用户去检查当前状态。两种模式: Assert 和 Verify, 当Assert失败,则退出测试;当Verify失败,测试会继续运行。

assertAttribute(.{}elementLocator@attributeName.{}, ValuePattern)
检查当前指定元素的属性的值
verifyAttribute         txt1@class                         bigAndBlod
assertAttribute         document.images[0]@alt         alt-text
verifyAttribute         //img[@id='foo']/alt            alt-text
------------------------------------------------------------------------
# assertTextPresent, etc.
assertTextPresent(text)
assertTextNotPresent(text)
assertElementPresent(elementLocator)
verifyElementPresent           submitButton           
assertElementPresent           //img[@alt='foo']                    assertElementNotPresent(elementLocator)
# assertTable
assertTable(cellAddress, valuePattern)
- 检查table里的某个cell中的值
- cellAddress的语法是tableName.row.column, 注意行列序号都是从0开始
verifyTable         myTable.1.6         Submitted
assertTable         results0.2            13
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2011-1-24 15:04:07 | 只看该作者
看上面的情况,你用的应该是Selenium IDE吧。

用verifyAttribute,verifyText, verifyElementPresent这些指令都可以满足你的要求。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2011-1-24 15:09:13 | 只看该作者
verifyAttribute         //img[@id='foo']/alt            alt-text
这种三段式的指令,第一段是指令,第二段是位置,第三段是值,
解释过来就是验证这个元素//img[@id='foo']/alt的值是否是alt-text,是的话就pass,否则就fail
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2011-1-25 19:17:21 | 只看该作者
回复 6# robin.von

这个写成一句完整的c#语句, 哥们你会写不?
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2011-1-26 10:01:40 | 只看该作者
C#的我没用过,只用过JAVA的,C#中应该和JAVA类似,上面这个三段式的语句转换成JAVA语言应该类似于:
if (selenium.getAttribute("//img[@id='foo']/alt").equals("alt-text")){

}else{

}
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2011-1-26 10:37:25 | 只看该作者
回复 8# robin.von


    哦。我回去试试。感谢兄弟作答。 谢谢
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-9-20 05:37 , Processed in 0.082001 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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