python接口自动化8-unittest框架使用
前言
unittest:Python单元测试框架,基于Erich Gamma的JUnit和Kent Beck的sSmalltalk测试框架。
一、unittest框架基本使用
unittest需要注意的是:①类,继承单元测试unittest 的 TestCase类;②测试用例必须以test开头。学会基本前后置灵活运用以及断言即可。
1、setUp:每个用例“前”都执行 1 次、tearDown:每个用例“后”都执行 1 次、test开头的用例。
setUp、tearDown既是每次用例都执行的前后置。
from unittest import TestCase # class 继承:TestCase
class Test_Login(TestCase): def setUp(self):
print('每个用例“前”都执行 1 次') def tearDown(self):
print('每个用例“后”都执行 1 次') # 以下是用例,需已 test 开头,用例可以写多个。
def test_001(self):
print('我是用例:case_01') def test_002(self):
print('我是用例:case_02')

2、setUpClass:只执行一次前置;tearDownClass:只执行一次后置。
需使用修饰符:@classmethod,且函数括号用:cls
from unittest import TestCase # class 继承:TestCase
class Test_Login(TestCase): # 需使用修饰符:@classmethod,且函数用:cls
@classmethod
def setUpClass(cls):
print('全部用例“前”只 执行 1 次') @classmethod
def tearDownClass(cls):
print('全部用例“后”只 执行 1 次') def setUp(self):
print('每个用例“前”都执行 1 次') def tearDown(self):
print('每个用例“后”都执行 1 次') # 以下是用例,需已 test 开头,用例可以写多个。
def test_001(self):
print('我是用例:case_01') def test_002(self):
print('我是用例:case_02')

3、常用的两种断言方法(基本能供日常使用,不够自己去翻TestCase源码,如图二)
①两值相等:assertEqual(a , b)
②A值在B值里面:assertIn(A, B, msg) ;msg自己想写啥就写啥,类似出现错误后备注:断言失败返回控制台日志,等等
from unittest import TestCase # class 继承:TestCase
class Test_Login(TestCase): def setUp(self):
print('每个用例“前”都执行 1 次') def tearDown(self):
print('每个用例“后”都执行 1 次') # 以下是用例,需已 test 开头,用例可以写多个。
def test_001(self):
print('我是用例:case_01')
self.assertEqual((+), ) # 断言两个值相等 def test_002(self):
print('我是用例:case_02')
res = '广深' # 假如这是实际结果
self.assertIn('小龙', res, msg='他说没有小龙') # 断言 小龙 在 res 中,如果不在msg是返回值
self.assertTrue(res == '广深') # 断言两个值相等(也可以False,断言==、!=、in)


注意:不要执行用例去调用用例,用例是相互独立的,执行用例的顺序按照assic码:0-9 ,A-Z, a-z。欢迎来QQ交流群:482713805
python接口自动化8-unittest框架使用的更多相关文章
- python接口自动化28-requests-html爬虫框架
前言 requests库的好,只有用过的人才知道,最近这个库的作者又出了一个好用的爬虫框架requests-html.之前解析html页面用过了lxml和bs4, requests-html集成了一些 ...
- python接口自动化24-有token的接口项目使用unittest框架设计
获取token 在做接口自动化的时候,经常会遇到多个用例需要用同一个参数token,并且这些测试用例跨.py脚本了. 一般token只需要获取一次就行了,然后其它使用unittest框架的测试用例全部 ...
- 2020年第二期《python接口自动化+测试开发》课程,已开学!
2020年第二期<python接口自动化+python测试开发>课程,12月15号开学! 主讲老师:上海-悠悠 上课方式:QQ群视频在线教学,方便交流 本期上课时间:12月15号-3月29 ...
- python接口自动化(十)--post请求四种传送正文方式(详解)
简介 post请求我在python接口自动化(八)--发送post请求的接口(详解)已经讲过一部分了,主要是发送一些较长的数据,还有就是数据比较安全等.我们要知道post请求四种传送正文方式首先需要先 ...
- Python接口自动化——soap协议传参的类型是ns0类型的要创建工厂方法纪要
1:在Python接口自动化中,对于soap协议的xml的请求我们可以使用Suds Client来实现,其soap协议传参的类型基本上是有2种: 第一种是传参,不需要再创建啥, 第二种就是ns0类型的 ...
- python接口自动化-Cookie_绕过验证码登录
前言 有些登录的接口会有验证码,例如:短信验证码,图形验证码等,这种登录的验证码参数可以从后台获取(或者最直接的可查数据库) 获取不到也没关系,可以通过添加Cookie的方式绕过验证码 前面在“pyt ...
- python接口自动化-参数化
原文地址https://www.cnblogs.com/yoyoketang/p/6891710.html python接口自动化 -参数关联(一)https://www.cnblogs.com/11 ...
- python接口自动化 -参数关联(一)
原文地址https://www.cnblogs.com/yoyoketang/p/6886610.html 原文地址https://www.cnblogs.com/yoyoketang/ 原文地址ht ...
- python接口自动化20-requests获取响应时间(elapsed)与超时(timeout)
前言 requests发请求时,接口的响应时间,也是我们需要关注的一个点,如果响应时间太长,也是不合理的. 如果服务端没及时响应,也不能一直等着,可以设置一个timeout超时的时间 关于reques ...
- python接口自动化6-重定向(Location)
前言 某屌丝男A鼓起勇气向女神B打电话表白,女神B是个心机婊觉得屌丝男A是好人,不想直接拒绝于是设置呼叫转移给闺蜜C了,最终屌丝男A和女神闺蜜C表白成功了,这种场景其实就是重定向了. 一.重定向 1. ...
随机推荐
- Linux禁用root用户
在创建各种云主机的时候,云服务商给的都是root用户,这很方便,但是有某些时候会造成一些困扰,日后在服务器上启动各种服务后,仅仅拥有root权限的用户才能访问更改这些服务,这样会造成一些不必要的困扰, ...
- 【2期】JVM必知必会
JVM之内存结构图文详解 Java8 JVM内存结构变了,永久代到元空间 Java GC垃圾回收机制 不要再问我“Java 垃圾收集器”了 Java虚拟机类加载机制 Java虚拟机类加载器及双亲委派机 ...
- curl 带 body
curl -H "Content-Type:plain/text" -X POST -d '<?xml version="1.0" encoding=&q ...
- vuex的学习
vuex是什么? vuex是专为vue.js应用程序开发的状态管理模式 它采用集中式存储管理应用所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化 vuex也集成到vue的官方调式工具d ...
- appium元素定位之AndroidUiAutomator
UIAutomator 元素定位是 Android 系统原生支持的定位方式,虽然与 xpath 类似,但比它更好用,并且支持元素全部的属性定位,定位原理是通过 android 自带的android u ...
- PHP 将远程文件写入到pdf或者word
/** * 下载 */public function download($ids = null){ //一些条件参数啥的 $data = []; //获取文件 $res = curl_post(url ...
- maven工程指定web资源包,创建jsp文件
进入项目的project structure. 选择web. 在右侧增加web资源包路径
- 关于scrapy中如何区分是接着发起请求还是开始保存文件
一.区分 根据yield迭代器生成的对象是request对象还是item对象 二.item 1.配置tem对象 在items.py文件中设置类 class MyscrapyItem(scrapy.It ...
- Python:有参装饰器与多个装饰器装饰一个函数
有参装饰器 def timmerout(flag1): #flag1 =flag def timmer(f): def inner(*args,**kwargs): if flag1: start_t ...
- Add a Class from the Business Class Library从业务类库添加类(EF)
In this lesson, you will learn how to use business classes from the Business Class Library as is. Fo ...