在执行测试用例时,有时候有些用例是不需要执行的,那我们怎么办呢?难道删除这些用例?那下次执行时如果又需要执行这些用例时,又把它补回来?这样操作就太麻烦了。

unittest提供了一些跳过指定用例的方法

  • @unittest.skip(reason):强制跳转。reason是跳转原因
  • @unittest.skipIf(condition, reason):condition为True的时候跳转
  • @unittest.skipUnless(condition, reason):condition为False的时候跳转
  • @unittest.expectedFailure:如果test失败了,这个test不计入失败的case数目
    # coding = utf-8
    import unittest
    import warnings
    from selenium import webdriver
    from time import sleep
    # 驱动文件路径
    driverfile_path = r'D:\coship\Test_Framework\drivers\IEDriverServer.exe' class CmsLoginTest(unittest.TestCase):
    def setUp(self):
    # 这行代码的作用是忽略一些告警打印
    warnings.simplefilter("ignore", ResourceWarning)
    self.driver = webdriver.Ie(executable_path=driverfile_path)
    self.driver.get("http://172.21.13.83:28080/") def tearDown(self):
    self.driver.quit() @unittest.skip("用户名密码都为空用例不执行")
    def test_login1(self):
    '''用户名、密码为空'''
    self.driver.find_element_by_css_selector("#imageField").click()
    error_message1 = self.driver.find_element_by_css_selector("[for='loginName']").text
    error_message2 = self.driver.find_element_by_css_selector("[for='textfield']").text
    self.assertEqual(error_message1, '用户名不能为空')
    self.assertEqual(error_message2, '密码不能为空') @unittest.skipIf(3 > 2, "3大于2,此用例不执行")
    def test_login3(self):
    '''用户名、密码正确'''
    self.driver.find_element_by_css_selector("[name='admin.loginName']").send_keys("autotest")
    self.driver.find_element_by_css_selector("[name='admin.password']").send_keys("")
    self.driver.find_element_by_css_selector("#imageField").click()
    sleep(1)
    self.driver.switch_to.frame("topFrame")
    username = self.driver.find_element_by_css_selector("#nav_top>ul>li>a").text
    self.assertEqual(username,"autotest") @unittest.skipUnless(3 < 2,"2没有大于3,此用例不执行")
    def test_login2(self):
    '''用户名正确,密码错误'''
    self.driver.find_element_by_css_selector("[name='admin.loginName']").send_keys("autotest")
    self.driver.find_element_by_css_selector("[name='admin.password']").send_keys("")
    self.driver.find_element_by_css_selector("#imageField").click()
    error_message = self.driver.find_element_by_css_selector(".errorMessage").text
    self.assertEqual(error_message, '密码错误,请重新输入!') @unittest.expectedFailure
    def test_login4(self):
    '''用户名不存在'''
    self.driver.find_element_by_css_selector("[name='admin.loginName']").send_keys("test007")
    self.driver.find_element_by_css_selector("[name='admin.password']").send_keys("")
    self.driver.find_element_by_css_selector("#imageField").click()
    error_message = self.driver.find_element_by_css_selector(".errorMessage").text
    self.assertEqual(error_message, '用户名不存在!') def test_login5(self):
    '''用户名为空'''
    self.driver.find_element_by_css_selector("[name='admin.password']").send_keys("")
    self.driver.find_element_by_css_selector("#imageField").click()
    error_message = self.driver.find_element_by_css_selector("[for='loginName']").text
    self.assertEqual(error_message, '用户不存在!') def test_login6(self):
    '''密码为空'''
    self.driver.find_element_by_css_selector("[name='admin.loginName']").send_keys("autotest")
    self.driver.find_element_by_css_selector("#imageField").click()
    error_message = self.driver.find_element_by_css_selector("[for='textfield']").text
    self.assertEqual(error_message, '密码不能为空') if __name__ == "__main__":
    unittest.main(verbosity=2)

unittest详解 跳过用例的执行(skip)的更多相关文章

  1. unittest详解(二) 跳过用例的执行(skip)

    在执行测试用例时,有时候有些用例是不需要执行的,那我们怎么办呢?难道删除这些用例?那下次执行时如果又需要执行这些用例时,又把它补回来?这样操作就太麻烦了. unittest提供了一些跳过指定用例的方法 ...

  2. unittest详解(三) 测试套件(TestSuite)

    在前面一章中示例了如何编写一个简单的测试,但有两个问题: 我们知道测试用例的执行顺序是根据测试用例名称顺序执行的,在不改变用例名称的情况下,我们怎么来控制用例执行的顺序呢? 一个测试文件,我们直接执行 ...

  3. unittest详解(一) unittest初识

    unittest是python内置的一个单元测试框架,在学习怎么使用它之前,我们先来了解它的一些概念和原理. Test Case:测试用例,一个TestCase的实例就是一个测试用例.什么是测试用例呢 ...

  4. Pytest_跳过用例的执行(7)

    pytest跳过用例执行的用法与unittest跳过用例大致相同. pytest跳过用例的方法如下: pytest.mark.skip(reason):无条件用例.reason是跳过原因,下同. py ...

  5. unittest详解(四) 批量执行用例(discover)

    前面我们说了,对于不同文件用例,我们可以通过addTest()把用例加载到一个测试套件(TestSuite)来统一执行,对于少量的文件这样做没问题,但是如果有几十上百个用例文件,这样做就太浪费时间了. ...

  6. Python单元测试框架 unittest详解

    一 整体结构概览 unittest原名为PyUnit,是由java的JUnit衍生而来.对于单元测试,需要设置预先条件,对比预期结果和实际结果. TestCase :通过继承TestCase类,我们可 ...

  7. 四大传值详解:属性传值,单例传值,代理传值,block传值

    一:属性传值 传值情景:从前一个页面向后一个页面传值 a.在后一个页面,根据传值类型和个数,写属性 b.在前一个页面, 为属性赋值 c.在后一个页面, 使用值 例如: 第一个视图: #import & ...

  8. unittest详解(七) 自动生成测试报告

    用例执行完成后,执行结果默认是输出在屏幕上,其实我们可以把结果输出到一个文件中,形成测试报告. unittest自带的测试报告是文本形式的,如下代码: import unittest if __nam ...

  9. unittest详解(六) 断言

    我们在执行测试用例时,怎么来判断这条用例是否通过呢?唯一的办法就是拿实际结果和预期结果进行比较,如果一致用例就是通过的,否则用例就是失败的.在python中这种比较的方法就叫做断言,unittest框 ...

随机推荐

  1. 初探Redis-基础类型String

    Redis存在五种基础类型:字符串(String).队列(List).哈希(Hash).集合(Set).有序集合(Sorted Set).String的出镜率算是最高的.本次列举出String的常用操 ...

  2. Install go1.5 for CentOS7

    https://golang.org/doc/install 下载好后,通过FTPS,传递到Linux里去,放哪里随便你自己,因为被墙了,所以在Windows通过旋风下载了这个玩意儿. 你也可以: w ...

  3. 3.k均值的算法

    一.课堂练习 # 课堂练习 from sklearn.datasets import load_iris # 导入鸢尾花数据 iris=load_iris() iris iris.keys() dat ...

  4. Git (一)预设环境和免密登录

    背景 一直用的svn,这段时间换了之后才发现git的强大功能.缺点就是可能上手比较难一点. 接下来就带你Git入门 Git是什么? Git是目前世界上最先进的分布式版本控制系统 Git有什么特点?好用 ...

  5. python学习08排序算法举例

    '''''''''排序算法:前提是所有数按照从小到大的顺序排列.1.冒泡算法将第一数与第二个数比较大小,如果第一个数比第二个数大,则沉底(交换位置,使大数在小数后面,这个过程类似于大泡沉底的过程) ' ...

  6. 构建密钥验证ssh

    1.需要两个虚拟机,每一个创建一个用户登录到用户根下   2.每个用户都要创建密钥对   3.把两个用户的公用密钥用ssh-copy-id -i 命令将公用的密钥复制到另一个用户中   4.在客户端开 ...

  7. 广深小龙-基于unittest、pytest自动化测试框架之demo来学习啦!!!

    基于unittest.pytest自动化测试框架之demo,赶紧用起来,一起学习吧! demo分为两个框架:①pytest    ②unittest demo 中 包含 web.api 自动化测试框架 ...

  8. Python语言类型

    Python是一门动态解释型的强类型语言. 对这句话进行解析,语言分为动态的和静态的,编译型和解释型的,强类型的和弱类型的语言之分. 下面对三种不同维度的类型的语言进行解释: 1.编译型和解释型 差别 ...

  9. 《JavaScript和jQuery实战手册(原书第2版)》——2.1节语句

    2.1 语句JavaScript语句是基本的编程单元,通常表示JavaScript程序中的单个步骤.可以把一条语句看做一个句子一样,就好像成串的句子一起组成一个段落(或一章,或一本书)一样,把语句组合 ...

  10. vue中 $refs的基本用法

    骚年,我看你骨骼惊奇,有撸代码的潜质,这里有324.57GB的前端学习资料传授于你!什么,你不信??? 先随便看几个图: 肯定没看够.再来个GIF图热个身??? 那么问题来了,如果你也想入坑前端或者学 ...