Python+selenium之跳过测试和预期失败

在运行测试时,需要直接跳过某些测试用例,或者当用例符合某个条件时跳过测试,又或者直接将测试用例设置为失败。unittest单元测试框架提供了实现这些需求的装饰器。

1.unittest.skip(reason)

无条件地跳过装饰的测试,说明跳过测试的原因

2.unittest.skipIf(condition,reason)

如果条件为真时,跳过装饰的测试。

3.unittest.skipUless(condition,reason)

跳过装饰的测试,除非条件为真

4.unittest.expectedFailure()

测试标记为失败。不管执行结果是否失败,统一标记为失败。

代码如下:

 1 # # coding =utf-8
 2 # # calculator
 3 #
 4 # class Count ():
 5 #     def __init__(self, a, b):
 6 #         self.a = int (a)
 7 #         self.b = int (b)
 8 #
 9 #     def add(self):
10 #         return self.a + self.b
11 #
12 #     def sub(self):
13 #         return self.a - self.b
14 import unittest
15
16
17 class MyTest (unittest.TestCase):
18     def setUp(self):
19         pass
20
21     def tearDown(self):
22         pass
23
24     @unittest.skip ("直接跳过测试")
25     def test_skip(self):
26         print("test aaa")
27
28     @unittest.skipIf (3 > 2, "当条件为True时,跳过测试")
29     def test_skip_if(self):
30         print(‘test bbb‘)
31
32     @unittest.skipUnless (3 > 2, "当条件为True时,执行测试")
33     def test_skip_unless(self):
34         print(‘test ccc‘)
35
36     @unittest.expectedFailure
37     def test_expected_failure(self):
38         assertEqual (2, 3)
39
40
41 if __name__ == ‘__main__‘:
42     unittest.main ()

如上:第一条测试用例通过@unittest.skip()装饰,直接跳过不执行。

第二条用例通过@unittest.skipIf()装饰,当条件为真时不执行,3>2条件为真(True),跳过不执行。

第三条用例通过@unittest.skipUnless()z装饰,当条件为真时执行,判断3>2条件为真(True),第三条用例执行。

第四条用例通过@unittest.expectedFailure装饰,不管执行结果是否失败,统一标记为失败,但不会抛出错误信息。

这些方法同样可以作用测试类,只需要将他们定义在测试类上面即可。

 1 import unittest
 2
 3
 4 @unittest.skip ("直接跳过该测试类")
 5 class MyTest (unittest.TestCase):
 6     def setUp(self):
 7         pass
 8
 9     def tearDown(self):
10         pass
11
12     @unittest.skip ("直接跳过测试")
13     def test_skip(self):
14         print("test aaa")
15
16     @unittest.skipIf (3 > 2, "当条件为True时,跳过测试")
17     def test_skip_if(self):
18         print(‘test bbb‘)
19
20     @unittest.skipUnless (3 > 2, "当条件为True时,执行测试")
21     def test_skip_unless(self):
22         print(‘test ccc‘)
23
24     @unittest.expectedFailure
25     def test_expected_failure(self):
26         assertEqual (2, 3)
27
28
29 if __name__ == ‘__main__‘:
30     unittest.main ()
时间: 2024-11-05 22:07:55

Python+selenium之跳过测试和预期失败的相关文章

python单元测试框架-unittest(五)之跳过测试和预期失败

概要 @unittest.skip(reason): skip(reason)装饰器:直接跳过测试,并说明跳过测试的原因. @unittest.skipIf(reason): skipIf(condition,reason)装饰器:条件为真时,跳过测试,并说明跳过测试的原因 @unittest.skipUnless(reason): skipUnless(condition,reason)装饰器:条件为假时,跳过测试,并说明跳过测试的原因 @unittest.expectedFailure():

跳过测试和预期失败.py

"""在运行测试时,有时需要直接跳过某些测试用例,或者当用例符合某个条件时跳过测试,又或者直接将测试用例设置为失败.unittest提供了实现这些需求的装饰器.·unittest.skip(reason)无条件地跳过装饰的测试,说明跳过测试的原因.·unittest.skipIf(condition,reason)跳过装饰的测试,如果条件为真时.·unittest.skipUnless(condition,reason)跳过装饰的测试,除非条件为真.·unittest.exp

一次完整的自动化登录测试-基于python+selenium进行cnblog的自动化登录测试

Web登录测试是很常见的测试!手动测试大家在熟悉不过了,那如何进行自动化登录测试呢!本文作者就用python+selenium结合unittest单元测试框架来进行一次简单但比较完整的cnblog自动化登录测试,给大家提供点参考!下面就包括测试代码和每种测试情况的截图: ''' cnblog的登录测试,分下面几种情况: (1)用户名.密码正确 (2)用户名正确.密码不正确 (3)用户名正确.密码为空 (4)用户名错误.密码正确 (5)用户名为空.密码正确(还有用户名和密码均为空时与此情况是一样的

用python+selenium进行一次cnblog的登录测试

用python+selenium自动化进行一次cnblog的登录测试,可供参考!下面包括测试代码和每种测试情况的截图: ''' cnblog的登录测试,分下面几种情况: (1)用户名.密码正确 (2)用户名正确.密码不正确 (3)用户名正确.密码为空 (4)用户名错误.密码正确 (5)用户名为空.密码正确(还有用户名和密码均为空时与此情况是一样的,这里就不单独测试了) ''' import unittest from selenium import webdriver from time imp

python unittest--TestCase类总结4,skip跳过用例或者跳过测试类

跳过测试类: 跳过某个用例: 如果发现是跳过时,就不会执行setup和teardown,就执行停止执行用例了 原文地址:https://www.cnblogs.com/dmtz/p/11005309.html

uniquefu Python+Selenium学习--打印当前页面的title及url

场景 测试中,访问1个页面然后判断其title是否符合预期是很常见的1个用例,所谓用例不够,title来凑就是这个道理.更具体一点,假设1个页面的title应该是'hello world', 那么可以写这样的一个用例:访问该页面,获取该页面的title,判断获取的值是否等于'hello world'. 获取当前页面的url也是非常重要的一个操作.在某些情况下,你访问一个url,这时系统会自动对这个url进行跳转,这就是所谓的'重定向'.一般测试重定向的方法是访问这个url,然后等待页面重定向完毕

Python+Selenium实现股票板块数据模拟抓取

selenium 是一个web的自动化测试工具,支持多平台:windows.linux.MAC ,支持多浏览器:ie.ff.safari.opera.chrome,支持多语言:例如C.JAVA.Python等,支持分布式测试用例的执行,可以把测试用例分布到不同的测试机器的执行,相当于分发机的功能. 虽然Selenium本来是应用于自动化测试领域,但是因为Selenium可以实现Web交互操作,所以可以利用Selenium模拟Web抓取一些常规方式不能抓取的数据,例如一些页面生成后才会动态加载的数

Python selenium的js扩展实现

python写的数据采集,对一般有规律的页面用 urllib2 + BeautifulSoup + 正则就可以搞定. 但是有些页面的内容是通过js生成,或者通过js跳转的,甚至js中还加入几道混淆机制:对这种涉及页面脚本解析的内容,前面的方式便很无力. 这时我们需要能解析.运行js的引擎——浏览器,而python selenium能提供程序与浏览器的交互接口,再加上phantomjs这个可以后台运行的浏览器,即使用 selenium + phantomjs 便可以解决以上的问题. seleniu

Python+Selenium登录

#coding=utf-8 import time from selenium import webdriver #打开浏览器 driver=webdriver.Chrome() #最大化窗口 driver.maximize_window() #设置隐式等待时间 driver.implicitly_wait(8) #打开博客园 driver.get("https://i.cnblogs.com/") #定位账号输入框并输入密码 driver.find_element_by_xpath(