pytest测试框架和unittest_python列表生成式

pytest测试框架和unittest_python列表生成式一、核心要素(1)TestCase测试用例一个.py脚本就是一个测试用例测试用例类必须继承于unittest.TestCase类中的方法名必须以test开头,否则不会被执行类的外部写main方法(自测代码)(2)TestSuite测试套件测试套件就是测试用例的集合把多个测试用例集合到一起就构成了测试套件测试套件不能直接执行(3)TextTestR…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

一、核心要素

        (1)TestCase 测试用例  

                一个.py脚本就是一个测试用例  测试用例类必须继承于unittest.TestCase  类中的方法名必须以test开头,否则不会被执行  类的外部写main方法(自测代码)

        (2)TestSuite 测试套件  

                测试套件就是测试用例的集合  把多个测试用例集合到一起就构成了测试套件  测试套件不能直接执行

        (3)TextTestRunner 测试执行  

                用来执行测试套件

        (4)Fixture 概述,包含两个方法setUp()、tearDown()  

                在继承unittest.TestCase的前提下,Fixture = setUp()+tearDown()  

                setUp()负责测试环境的搭建(初始化):实例化浏览器、最大化、隐式等待、打开url                 tearDown()负责测试环境的销毁:退出登录、退出浏览器等  

                每一个以test开头的方法被执行之前都会先执行setUp()方法,然后执行test_XXX()方法,最后执行tearDown()方法

二、自动化测试脚本

        (1)导入测试框架 import unittest

        (2)格式:

                 class 类名(unittest.TestCase):

                        def setUp():

                        def tearDown():

                        def test_xxx():

        (3)注意:

                 ①测试用例中方法名必须以test开头,否则不会被执行。

                 ②记得要在类的外部写main方法,

                 ③光标放在代码后面的空白行或者mian()方法的位置执行

                 ④如果把光标放在某一个方法名后面执行,只能执行当前一个方法  

                 ⑤多个方法,按照方法名ASCII的顺序执行

        (4)self.driver 扩大driver的作用域,让它在其他方法中可以调用       

pytest测试框架和unittest_python列表生成式

 三、自动化脚本批量执行

        (1)单个用例是无法批量执行的,只有把多条测试用例组合成测试套件,才可以批量执行

        (2)生成测试套件  

                ①实例化TestSuite一个空的测试套件,给套件添加测试用例(方法)  

                        suite = unittest.TestSuite()  

                ②addTest(类名(方法名)):添加指定类中的指定方法  

                ③addTest(unittest.makeSuite(类名)):添加指定类中所有以test开头的方法                

pytest测试框架和unittest_python列表生成式

         (3)执行测试套件:实例化TextTestRunner,然后调用run()执行测试套件              

pytest测试框架和unittest_python列表生成式

         (4)执行结果                        

pytest测试框架和unittest_python列表生成式

 四、defaultTestLoader

        实际项目中,主要通过discover生成测试套件,可以把defaultTestLoader看做是TestSuite的一种特殊实现方式 。defaultTestLoader中有一个方法discover(),可以在指定目录中搜索指定开头的.py文件,把测试类中所有以test开头的方法添加到测试套件中。格式:discover(指定目录, 指定.py文件开头) 一般,会把套件.py文件和用例放在同一个目录,否则可能导致截图失败,且和测试用例.py文件开头不能相同      

pytest测试框架和unittest_python列表生成式

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/182076.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 解决GitHub下载速度太慢的问题「建议收藏」

    解决GitHub下载速度太慢的问题「建议收藏」方法一:从GitHub下载文件一直非常慢,查看下载链接发现最终被指向了Amazon的服务器,下载地址是http://github-cloud.s3.amazonaws.com/,从国内访问Amazon非常慢,所以总是下载失败,解决方法时更改host文件,使该域名指向香港的服务器:更改hosts文件:Windows更改C:\Windows\System32\driver…

    2022年5月3日
    41
  • c++深拷贝和浅拷贝[通俗易懂]

    c++深拷贝和浅拷贝[通俗易懂]C++中类的拷贝有两种:深拷贝,浅拷贝当出现类的等号赋值时,会调用拷贝函数在未定义显示拷贝构造函数的情况下,系统会调用默认的拷贝函数——即浅拷贝,它能够完成成员的一一复制。当数据成员中没有指针时,浅拷贝是可行的。但当数据成员中有指针时,如果采用简单的浅拷贝,则两类中的两个指针将指向同一个地址,当对象快结束时,会调用两次析构函数,而导致指针悬挂现象。所以,这时,必须采用深拷贝。深拷贝与浅拷贝

    2022年10月1日
    0
  • CSU-1120 病毒(最长递增公共子序列)[通俗易懂]

    CSU-1120 病毒(最长递增公共子序列)

    2022年3月6日
    33
  • preference用法for_interference用法

    preference用法for_interference用法文章目录PreferenceFragment简介PreferenceFragment使用PreferenceFragment扩展PreferenceFragment简介在我们写一个项目的时候,基本都有选项设置界面,这类设置界面的原理基本都是本地的一些个性化设置,通过读取本地设置来改变某些差异显示(例如字体大小,主题颜色,WIFI自动下载等)。这些设置一般都会使用Preference来保存,…

    2022年9月7日
    0
  • 五大常用算法之三:贪心算法

    一、基本概念:所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法没有固定的算法框架,算法设计的关键

    2021年12月25日
    41
  • td-scdma/wcdma是什么意思_CDMA频段

    td-scdma/wcdma是什么意思_CDMA频段1.概述比较项目:核心网部分的异同接入网部分的差别业务提供上的异同2.核心网比较TD-SCDMA技术被3GPPR4采纳,因此在R4的核心网部分,TD-SCDMA与WCDMA没有差异:ØTD-SCDMA在核心网方面所用到的接口和主要协议与WCDMA一致。Ø在3GPP核心网中所提供的业务并没有将TD-SCDMA同WCDMA进行区分。Ø

    2022年10月3日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号