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

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. python 基础篇 自定义函数

    多态 我们可以看到,Python 不用考虑输入的数据类型,而是将其交给具体的代码去判断执行,同样的一个函数(比如这边的相加函数 my_sum()),可以同时应用在整型.列表.字符串等等的操作中. 在编 ...

  2. 博云DevOps 3.0重大升级 | 可用性大幅提升、自研需求管理&自定义工作流上线,满足客户多样化需求

    DevOps能够为企业带来更高的部署频率.更短的交付周期与更快的客户响应速度.标准化.规范化的管理流程,可视化和数字化的研发进度管理和可追溯的版本也为企业带来的了更多的价值.引入DevOps成为企业实 ...

  3. Android 中 OkHttp 三步实现生命周期绑定

    简介 OkHttps 是 OkHttp 增强版的超轻量封装包. 和 Retrofit 相比,它更加轻量(只有 59Kb),是 Retrofit (124Kb)的一半,而且更加的开箱即用,API 更加自 ...

  4. Python 删除含有只读文件(夹)的文件夹

    def rm_read_only(fn, tmp, info): if os.path.isfile(tmp): os.chmod(tmp, stat.S_IWRITE) os.remove(tmp) ...

  5. Apache多处理模块

    介绍 Apache HTTP 服务器被设计为一个功能强大,并且灵活的 web 服务器, 可以在很多平台与环境中工作.不同平台和不同的环境往往需要不同 的特性,或可能以不同的方式实现相同的特性最有效率. ...

  6. POJ3460 Booksort

    飞来山上千寻塔,闻说鸡鸣见日升. 不畏浮云遮望眼,自缘身在最高层.--王安石 题目:Booksort 网址:http://poj.org/problem?id=3460 Description The ...

  7. certutil 导入 CA 证书

    2019独角兽企业重金招聘Python工程师标准>>> 在linux下使用GoAgent客户端的时候,需要导入CA.cer证书. 安装证书管理工具 apt-get install l ...

  8. 从实践出发:微服务布道师告诉你Spring Cloud与Boot他如何选择

    背景 随着公司业务量的飞速发展,平台面临的挑战已经远远大于业务,需求量不断增加,技术人员数量增加,面临的复杂度也大大增加.在这个背景下,平台的技术架构也完成了从传统的单体应用到微服务化的演进. 系统架 ...

  9. 基于HTML Canvas实现“指纹识别”技术

    https://browserleaks.com/canvas 说明所谓指纹识别是指为每个设备标识唯一标识符(以下简称UUID).诸如移动原生的APP都可以通过调用相关设备API来获取相应的UUID. ...

  10. #Week6 Neural Networks : Representation

    一.Non-linear Hypotheses 线性回归和逻辑回归在特征很多时,计算量会很大. 一个简单的三层神经网络模型: \[a_i^{(j)} = \text{"activation& ...