unittest框架
在我们真正的编写测试用例之前,我们需要了解一下测试框架。
unittest是python自带的单元测试框架,尽管其主要是为单元测试服务的,但我们也可以用它来做接口的自动化测试。
unittest框架为我们编写用例提供了如下的能力
定义用例的能力。unittest框架有一套固有套路,可以让我们定义测试用例时更加简单和统一
断言的能力。unittest框架提供了一系列的断言
各种执行策略。通过test suit或者扩展的方式,我们可以自定义用例执行的策略
简单的例子
import unittest
class StringTestCase(unittest.TestCase):
def setUp(self):
# Arrange
self.test_string = "This is a string"
def testUpper(self):
# Act and Assert
self.assertEqual("THIS IS A STRING", self.test_string.upper())
if __name__ == '__main__':
unittest.main()
剖析
import unittest
导入unittest库,不导入就没办法使用,好比手机如果要使用某个app就必须先安装该app一样,是套路,记住就好。
class StringTestCase(unittest.TestCase):
定义测试类,初学者看到这一行就害怕,其实大可不必。这还是套路,测试类的名字你可以随意取,当然了首字母最好大写,这样更符合规范一些。所有的测试类都必须直接或间接的继承自unittest.TestCase类。总之,这还是套路,记住就好。
def setUp(self):
# Arrange
self.test_string = "This is a string"
继续套路。setUp(self)方法是一个钩子方法,在每个测试用例执行之前都会执行一次,是做数据初始化的好地方。
在上面的例子里,我们为每一个测试方法都定义了被测对象,self.test_string
def testUpper(self):
# Act and Assert
self.assertEqual("THIS IS A STRING", self.test_string.upper())
套路继续。这里定义了一个名为testUpper的测试方法,这个方法就是一个测试用例。
注意,只有方法名以test开头的方法才是测试用例
self.assertEqual是一个断言方法,作用是如果第一个参数跟第二个参数相等,那么用例通过,否则用例失败,并在测试报告中打印出错误原因。上面的例子里,我们判断self.test_string.upper()方法会将"This is a string"字符串转换成"THIS IS A STRING"
if __name__ == '__main__':
unittest.main()
最后依然是套路,上面的代码表示,如果直接执行该python文件的话,就运行所有的测试类里的测试用例,也就是运行所有的以test开头的方法。
总结
使用unittest的话需要记住下面的几点
- 导入unittest
- 定义继承自
unittest.TestCase的测试类 - 定义以test开头的测试方法,这个方法就是测试用例,你可以在一个类里定义n个测试用例
- 断言
unittest.main()是执行测试用例最简单的方式
unittest框架的更多相关文章
- selenium-webdriver(python) (十六) --unittest 框架
学习unittest 很好的一个切入点就是从selenium IDE 录制导出脚本.相信不少新手学习selenium 也是从IED 开始的. IDE学习参考: 菜鸟学自动化测试(一)----selen ...
- Selenium2+python自动化30-引入unittest框架
from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.com ...
- unittest 框架
unittest 框架 学习unittest 很好的一个切入点就是从selenium IDE 录制导出脚本.相信不少新手学习selenium 也是从IED 开始的. IDE学习参考: 菜鸟学自动化测试 ...
- unittest框架概要
unittest是Python语言自带的单元测试框架,原名PyUnit. 认识unittest 在unittest框架中有4个重要概念:test fixture.test case.test suit ...
- 接口登录CSDN发布博客---封装方法,使用unittest框架
一个简单的跑接口流程:登录后发表带图片的博客.这里涉及到的知识点: 1.登录时通过cookies去保持登录状态,把cookies添加到一个session中,这样可以保持长时间登录状态: 2.我们通过爬 ...
- 记录python接口自动化测试--unittest框架基本应用(第二目)
在第一目里写了几个简单demo,并把调用get和post请求的方法封装到了一个类里,这次结合python自带的unittest框架,用之前封装的方法来写一个接口测试demo 1.unittest简单用 ...
- Unittest框架+ddt数据驱动+HTMLTestRunner+sendmail(自动发送测试报告)+git+Jenkins
本次写的是针对有代码基础的,没基础建议先去学基础,以下所有描述内容都是我已经在公司项目实践成功的!仅供参考 整体思路: 1.接口自动化用的是Python中unittest框架 2.所有的测试数据用例存 ...
- unittest框架(惨不忍睹低配版)
根据我上个随笔的unittest框架优化得来,虽然对于smtp模块还是有点迷糊,不过还是勉强搭建运行成功了,还是先上代码: #login_test.py import requests class L ...
- Unittest框架小结
在日常的自动化测试过程中,Python里有一个自带的单元测试框架是unittest模块,简单易用,这里简单介绍下其主要的用法. Unittest测试框架主要包含四个部分 TestCase 也就是测试用 ...
- python学习笔记之——unittest框架
unittest是python自带的单元测试框架,尽管其主要是为单元测试服务的,但我们也可以用它来做UI自动化测试和接口的自动化测试. unittest框架为我们编写用例提供了如下的能力 定义用例的能 ...
随机推荐
- 第2章 netty介绍与相关基础知识
NIO有一个零拷贝的特性.Java的内存有分为堆和栈,以及还有字符串常量池等等.如果有一些数据需要从IO里面读取并且放到堆里面,中间其实会经过一些缓冲区.我们要去读,它会分成两个步骤,第一块它会把我们 ...
- 【总结整理】display与position之间的关系【较完整】(转)
display与position之间的关系 以防自己忘记写的 网上找的 positon 与 display 的相互关系 元素分为内联元素和区块元素两类(当然也有其它的),在内联元素中有个非常重要的 ...
- ruby 变量和方法
def say_goodnight(name) result ="Good night ." +name return result end def say_goodmorning ...
- ROS Learning-027 (提高篇-005 A Mobile Base-03) 控制移动平台 --- Twist 消息
ROS 提高篇 之 A Mobile Base-03 - 控制移动平台 - Twist 消息 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubuntu 14 ...
- STM32 C++编程 005 I2c(Soft)类
使用 C++ 语言给 STM32 编写一个 I2c(Soft)类 我使用的STM32芯片:STM32F103ZET6 我们使用的STM32库版本:V3.5.0 注意: 想学习本套 STM32 C++编 ...
- php学习笔记-php中的比较运算符
其中比较难懂的是==和=== ==是只比较两个变量的值,不仅仅是用于比较两个数是否相等,还可以比较int和string,不过会先转化string为int类型再比较,值相等则返回true,值不相等则返回 ...
- FactoryMethodPattern(23种设计模式之一)
设计模式六大原则(1):单一职责原则 设计模式六大原则(2):里氏替换原则 设计模式六大原则(3):依赖倒置原则 设计模式六大原则(4):接口隔离原则 设计模式六大原则(5):迪米特法则 设计模式六大 ...
- Linux问题FAQ1
1.使用vi编辑器时候,按方向键会产生A,B,C之类的 解决办法:ubuntu server 8.04, vim版本为 7.1.138,客户端使用pietty.vim 在插入模式下, 方向键被转为A ...
- Entity Framework Tutorial Basics(32):Enum Support
Enum in Entity Framework: You can now have an Enum in Entity Framework 5.0 onwards. EF 5 should targ ...
- 分享常用的GoLang包工具
包名 链接地址 备注 Machinery异步队列 https://github.com/RichardKnop/machinery Mqtt通信 github.com/eclipse/paho.mqt ...