UI自动化:单元测试框架

unittest 被称作Python版本的JUnit,或称PyUnit。

unittest的重要4个概念:

1.test fixture 测试固件

2.test case 测试用例

3.test suite 测试套件:就是一组测试用例

4.test runner 测试运行器

一、测试用例

  unittest框架通过TestCase类来构建测试用例,并要求所有自定义的测试类都必须继承该类,它是所有测试用例的基类,传入一个方法名,将返回一个测试用例实例。

  TestCase 的子类中实现测试用例的代码既可以单独运行,也可以和其他测试用例构成测试用例集,然后批量执行

  TestCase子类从父类继承的几个特殊的方法,在测试用例执行时均会被定义执行:

   1.setUp() ,测试前的初始化工作

   2.tearDown(),测试后的清理工作

   3.setUpClass(),在setUp()函数之前,只支持一次,必须使用@classmethod装饰器进行修饰

   4.tearDownClass()

  注意:采用上述动态,需要被执行的测试方法都必须以“test”开头

二、按照特定顺序执行测试用例集合

  被测代码文件 Calc.py

  #coding = utf -8

  class Calc(Object):

    def  sub(self,x,y,*d)

    #减法计算

    result = x -y

    for i in d:

      result -=i

  测试代码文件test.py

  #coding = utf -8

  import unittest

  from Calc import Calc

  class MyTest(unittest.TestCase):

    @Classmethod

    def setupClass(cals):

      cals.c = Calc()

    def test_sub(self):

      self.assertEqual(MyTest.c.sub(1,2,3),-4,‘test sub fail‘)

  if __name__ == ‘_main_‘:

    unittest.main()  #启动

..................

  对最后启动进行修改,指定顺序:

  

  if __name__ == ‘_main_‘:

    suite = unittest.TestSuite()

    sutie.addTest(Mytest("test_sub")) #添加到测试容器中

    runner = unittest.TextTestRunner()

    runner.run(suite)

三、常见的unittest注释方法

  [email protected]("skipping") #无条件忽视该测试方法

  [email protected](a>5,‘‘condition is not satisfied‘‘) #如果变量a>5,则忽略该测试方法

  [email protected]()

四、unittest命令执行

  1.模块执行命令

    python -m unittest  -v Mytest  #MyTest为模块,-v参数表示输出测试用例执行的详细信息

  2.执行模块中的某个类

    python -m unittest -v  test_modue.TestClass

  3.批量执行测试模块(main中加载)

    if __name__ ==‘__main__‘

      #当前目录下所有有效的测试模块,“.”表示当前目录,可以用绝对路径

      testSuite = unittest.TestLoader().discover(‘.‘)

      unittest.TextRunner(verbosity=2).run(testSuite)

    命令方式为:D:\xxxx\python -m unittest discover  [注意脚本目录]

    

    

  

原文地址:https://www.cnblogs.com/czdbky/p/9660632.html

时间: 2024-07-29 16:21:57

UI自动化:单元测试框架的相关文章

pytest+python下的UI自动化基础框架

整体设计模式: config目录:存放一些公共的静态文件,如项目名称,配置文件等这些环境变量(可以用其他组件替换,如sql,主要能把配置文件的内容被程序识别). httptrquest目录:存放接口代码,UI自动化因为其稳定性问题会出现有些地方出错导致后续无法进行,故添加接口操作. initailize目录:初始化代码,用于存放初始化操作的代码,比如初始化一些全局变量,初始化webdriver等,应用于整个项目的代码. test目录:真正执行的目录,用于存放测试用例的代码,会被pytest识别将

基于Grunt&Mocha 搭建Nodejs自动化单元测试框架(含代码覆盖率统计)

Introduction Grunt 是一个基于任务的JavaScript 世界的构建工具 Mocha 是具有丰富特性的 JavaScript 测试框架,可以运行在 Node.js 和浏览器中,使得异步测试更简单更有趣.Mocha 可以持续运行测试,支持灵活又准确的报告,当映射到未捕获异常时转到正确的测试示例. Prerequisite nodejs项目文件目录结构如下 ├── config ├── controllers ├── models ├── lib ├── node_modules

Selenium基于Python web自动化基础二 -- 免登录、等待及unittest单元测试框架

一.免登录在进行测试的过程中难免会遇到登录的情况,给测试工作添加了工作量,本文仅提供一些思路供参考解决方式:手动请求中添加cookies.火狐的profile文件记录信息实现.人工介入.万能验证码.去掉验证码 1.手动在请求中添加cookies信息 1 url = "http://www.baidu.com" 2 driver = webdriver.Firefox() 3 driver.get(url) 4 time.sleep(3) 5 #添加cookies的方式 6 7 c1 =

UI自动化,你值得拥有

去年春节联欢晚会,为了那张“敬业福”,全家都卯足了劲儿“咻一咻”,连节目都顾不上看了.当时我就想,要是能自动化该多好,不停点击屏幕,屏幕不疼手还疼呢,何况还不好分心,生怕错过了“敬业福”.玩“咻一咻”,是靠不停点击按钮来检查是否得到“敬业福”,而工作中的UI自动化,大抵也和“咻一咻”差不多,都是通过不断地输入,验证系统的输出是否正确.然而做UI自动化,效果并不好,收益低就算了,执行速度还慢.比如打开一个浏览器,可能就要等3-5秒,如果等浏览器访问网址,返回网页内容,就需要更长的时间.要是遇到问题

[python]pytest实现WEB UI自动化

前言:其实这篇写的是pytest的测试框架运用,实现自动化和https://www.cnblogs.com/Jack-cx/p/9357658.html 原理一致 1.为啥不用unittest Pytest相对Unittest更加灵活一点,unittest需要写类继承unittest.TestCase类,pytest不需要可写可不写类,也支持生成html测试报告 2.创建工程 &对比上面robot的工程,增加一个PyUnit目录和report,这里主要放单元测试框架其他实现思路一致,report

Selenium自动化测试-unittest单元测试框架使用

一.什么是unittest 这里我们将要用的unittest是python的单元测试框架,它的官网是 https://docs.python.org/2/library/unittest.html,在这里我们可以得到全面的信息. 当我们写的用例越来越多时,我们就需要考虑用例编写的规范与组织,以便于后期的维护,而unittest正是这样一款工具.我们这里用一个示例来展示用unittest脚本是什么样子的 1 # -*- coding: utf-8 -*- 2 from selenium impor

UI自动化测试之Jenkins配置

前一段时间帮助团队搭建了UI自动化环境,这里将Jenkins环境的一些配置分享给大家. 背景: 团队下半年的目标之一是实现自动化测试,这里要吐槽一下,之前开发的测试平台了,最初的目的是用来做接口自动化测试和性能测试,但由于各种原因,接口自动化测试那部分功能整个废弃掉了,其中和易用性有很大关系,另外,也和我们公司的接口业务也有关.不过性能测试功能开发同学用的很欢快,还有接口的管理,目前是连接前端与后端的重要桥梁.目前又加入了环境管理(我公司主要用docker创建开发和测试环境),最近又加入了需求管

15. Unittest单元测试框架的介绍与使用

?什么是单元测试 在计算机编程中,单元测试(英语:Unit Testing)又称为模块测试, 是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作.程序单元是应用的最小可测试部件.在过程化编程中,一个单元就是单个程序.函数.过程等:对于面向对象编程,最小单元就是方法,包括基类(超类).抽象类.或者派生类(子类)中的方法. 上面这段内容摘自维基百科.笔者在入职的时候,一直搞不明白什么是单元测试.即使搜了很多资料,也还是搞不明白.一直到接触代码的时候,才对单元测试有了一个大概的认识.当然以

第 6 章 unittest 单元测试框架 - Selenium3 自动化测试

第 6 章 unittest 单元测试框架 单元测试是一项对技术要求很高的工作,只有白盒测试人员和软件开发人员才能胜任但用单元测试框架做单元测试却十分简单,而且单元测试框架不仅可以用来做单元测试,它还适用于不同类型的「自动化」测试. 1.提供测试用例组织和执行在 Python 中,我们编写的代码可以定义类.方法和函数,那么如何定义一条「测试用例」?如何灵活地控制这些「测试用例」的执行?单元测试框架会告诉我们. 2.提供丰富的断言方法当我们进行功能测试时,测试用例需要有预期结果.当测试用例的执行结

The Thinking of AutomaticTest(有关UI自动化的思考)

考虑因素: 容易维护 简洁易懂 代码重用性好 系统的稳定性强 UI自动化: 数据的获取:装载的数据文件类型.数据的形式.数据的解析方法定义. 1.利用Junit单元测试组织用例,明确输入数据.预期结果 2.建一张输入数据参数表,不断循环调用 页面的元素:页面元素的分页.元素的获取方式 .元素的存取方式 1.当页面元素较少时,直接获取元素 2.当页面元素较多时,从配置文件中获取元素 定位页面元素的方法:定义一个统一的方法,比如对点击事件的封装: public static void unifyCl