51Testing软件测试论坛

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

作者: 肖欢伟    时间: 2011-1-21 14:53
标题: selenium---高手看过来(关于人为控制用例失败和 打印生成日志报告的问题)---------
本帖最后由 肖欢伟 于 2011-1-21 15:11 编辑

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

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

问题2接上面:还有就是是如果没有找到,就是失败,要在用例执行完后能打印或生成报告。是否能做到?
作者: 肖欢伟    时间: 2011-1-21 15:00
本帖最后由 肖欢伟 于 2011-1-21 15:10 编辑

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

跪求。。。。。。。
作者: robin.von    时间: 2011-1-24 14:30
楼主应该不是做测试的吧!

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

selenium中都有类似verifyElementPresent或者isElementPresent这样的指令,用XPATH定位元素,应该可以满足要求。
作者: 肖欢伟    时间: 2011-1-24 14:52
回复 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
作者: robin.von    时间: 2011-1-24 15:04
看上面的情况,你用的应该是Selenium IDE吧。

用verifyAttribute,verifyText, verifyElementPresent这些指令都可以满足你的要求。
作者: robin.von    时间: 2011-1-24 15:09
verifyAttribute         //img[@id='foo']/alt            alt-text
这种三段式的指令,第一段是指令,第二段是位置,第三段是值,
解释过来就是验证这个元素//img[@id='foo']/alt的值是否是alt-text,是的话就pass,否则就fail
作者: 肖欢伟    时间: 2011-1-25 19:17
回复 6# robin.von

这个写成一句完整的c#语句, 哥们你会写不?
作者: robin.von    时间: 2011-1-26 10:01
C#的我没用过,只用过JAVA的,C#中应该和JAVA类似,上面这个三段式的语句转换成JAVA语言应该类似于:
if (selenium.getAttribute("//img[@id='foo']/alt").equals("alt-text")){

}else{

}
作者: 肖欢伟    时间: 2011-1-26 10:37
回复 8# robin.von


    哦。我回去试试。感谢兄弟作答。 谢谢




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