html tool

2014年8月31日星期日

python&selenium 断言失败继续执行

问题:使用self.assertEqual(user, t.g_UserM())  检查失败后testcase中断退出了

[go]了一下:
http://selenium.googlecode.com/svn@6865/websites/www.seleniumhq.org/src/main/rst/cn/02_selenium_basics.rst

 所有的Selenium断言包含三种模式: "assert","verify"和"waitFor"。
  例如,你可以"assertText","verifyText"和"waitForText"。
  当"assert"失败时,测试就会中止。当"verify"失败时,测试会继续进行,并记录失败。
  这使得单一的"assert"可以确保应用程序在正确的页面上,
  紧接着的一串"verify"断言可以检验表单字段值、标签等。
【参考:http://www.cnblogs.com/fnng/archive/2011/11/14/2249037.html】python中没有应该是html中using的

同时找到这个:http://www.freeshow.net.cn/questions/fe67cf34c31634a96a36647d0d819b248077b97cc08e9f10ac46c49cc8698884/

---------------------------

在Selenium RC的,验证/ assert方法存在.中的webdriver,他们不这样做.此外,它重要的是要注意什么验证和断言不和他们在测试中的作用.在Selenium RC的,验证是用来在您的测试进行检查,是否可能是文本,元素,或者你有什么.断言,另一方面,将导致测试失败并停止.的好处和优点将在您引用的链路进行讨论.
它的webdriver没有验证/断言每说的方法.断言在测试本身执行.如果你看看在科里的答案,他执行上的某个元素的文本的“断言”.如果元素的文本不是'示例域'一个AssertionError将提高,有效地失败测试.但对于一个验证?以及所述,的webdriver没有之一.但你仍然可以执行的东西做一个比较,等价的.
if element.text != u'Example Domains': print "Verify Failed: element text is not %r" % element.text
所以在这种情况下,测试不会失败.但验证仍然会发生,并且会打印到stdout.
那么到底,这是你想要失败是什么的问题.它更多的是测试设计.希望这会有所帮助.

-------------------------------------
仔细想了一下,是很对的if else的格式中才是处理这种问题的出路,修改如下:
    def _check_date(self):
 """db date for UI """
 _sqlda="select * from t_user_info where mobile ="+self.telphone
 t=getD(_sqlda)
 #print "username is %s" % t.g_UserM()
 #user=self.username.encode('utf-8')
 user="测试"
 #print "username is %s" % user
 #self.assertEqual(user, t.g_UserM()) 
 #self.verifyEqual(user, t.g_UserM())
 if user == t.g_UserM():
  print "UI input:%s,db :%s is pass" % (t.g_UserM(),user)
 else:
  print "UI input:%s,db :%s is Error" % (t.g_UserM(),user) #考虑构造打印输入结果类,def:doc,cmd,html方式定制结果

------------------------
[popexizhi:这个在本质上是一个测试策略问题,这种验证是test的结果中真正有价值的部分,应该doc找中特殊处理才对,而断言应该是程序运行的基础问题程序不执行是正确的]

没有评论:

发表评论