前言

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框架使用的更多相关文章

  1. python接口自动化28-requests-html爬虫框架

    前言 requests库的好,只有用过的人才知道,最近这个库的作者又出了一个好用的爬虫框架requests-html.之前解析html页面用过了lxml和bs4, requests-html集成了一些 ...

  2. python接口自动化24-有token的接口项目使用unittest框架设计

    获取token 在做接口自动化的时候,经常会遇到多个用例需要用同一个参数token,并且这些测试用例跨.py脚本了. 一般token只需要获取一次就行了,然后其它使用unittest框架的测试用例全部 ...

  3. 2020年第二期《python接口自动化+测试开发》课程,已开学!

    2020年第二期<python接口自动化+python测试开发>课程,12月15号开学! 主讲老师:上海-悠悠 上课方式:QQ群视频在线教学,方便交流 本期上课时间:12月15号-3月29 ...

  4. python接口自动化(十)--post请求四种传送正文方式(详解)

    简介 post请求我在python接口自动化(八)--发送post请求的接口(详解)已经讲过一部分了,主要是发送一些较长的数据,还有就是数据比较安全等.我们要知道post请求四种传送正文方式首先需要先 ...

  5. Python接口自动化——soap协议传参的类型是ns0类型的要创建工厂方法纪要

    1:在Python接口自动化中,对于soap协议的xml的请求我们可以使用Suds Client来实现,其soap协议传参的类型基本上是有2种: 第一种是传参,不需要再创建啥, 第二种就是ns0类型的 ...

  6. python接口自动化-Cookie_绕过验证码登录

    前言 有些登录的接口会有验证码,例如:短信验证码,图形验证码等,这种登录的验证码参数可以从后台获取(或者最直接的可查数据库) 获取不到也没关系,可以通过添加Cookie的方式绕过验证码 前面在“pyt ...

  7. python接口自动化-参数化

    原文地址https://www.cnblogs.com/yoyoketang/p/6891710.html python接口自动化 -参数关联(一)https://www.cnblogs.com/11 ...

  8. python接口自动化 -参数关联(一)

    原文地址https://www.cnblogs.com/yoyoketang/p/6886610.html 原文地址https://www.cnblogs.com/yoyoketang/ 原文地址ht ...

  9. python接口自动化20-requests获取响应时间(elapsed)与超时(timeout)

    前言 requests发请求时,接口的响应时间,也是我们需要关注的一个点,如果响应时间太长,也是不合理的. 如果服务端没及时响应,也不能一直等着,可以设置一个timeout超时的时间 关于reques ...

  10. python接口自动化6-重定向(Location)

    前言 某屌丝男A鼓起勇气向女神B打电话表白,女神B是个心机婊觉得屌丝男A是好人,不想直接拒绝于是设置呼叫转移给闺蜜C了,最终屌丝男A和女神闺蜜C表白成功了,这种场景其实就是重定向了. 一.重定向 1. ...

随机推荐

  1. 特殊权限SUID

    特殊权限SUID SUID : 运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者: chmod u+s File chmod u-s File 如果 FileB本身原来就有执行权限,则S ...

  2. mysql学习体系

    1. MySQL的安装和配置 -- 安装的步骤 -- 配置参数的设置 -- 全局变量量与会话变量量的定义及区别 -- 常⻅见参数有哪些,有何定义,影响范围是什什么 -- 如何查看参数的值 -- 配置⽂ ...

  3. 信号处理函数陷阱:调用malloc导致死锁[转]

    概览 因malloc是加锁的,上网了解的相关信息,额外了解到信号处理规范使用,mark 正文 在执行malloc的过程中,跳转到了信号处理函数中.而信号处理函数在调用某个系统api时,内部又调用了ma ...

  4. CSV和JSON格式相互转换

    1.为什么要进行CSV与JSON格式之间的转换 CSV格式常用于一二维数据表示和存储,他是一种纯文本形式存储表格数据的表示方式.JSON也可以表示一二维数据.在网络信息传输中,可能需要统一表示方式,因 ...

  5. 阿里钉钉技术分享:企业级IM王者——钉钉在后端架构上的过人之处

    本文引用了唐小智发表于InfoQ公众号上的“钉钉企业级IM存储架构创新之道”一文的部分内容,收录时有改动,感谢原作者的无私分享. 1.引言 业界的 IM 产品在功能上同质化较高,而企业级的 IM 产品 ...

  6. docker 部署springcloud项目

    一.首先从 docker.hub[地址:https://hub.docker.com] 中根据各自的需求 pull 对应的 openjdk镜像(本次直接在修改后的docker镜像源中下载) docke ...

  7. Java 添加Word目录的2种方法

    目录是一种能够快速.有效地帮助读者了解文档或书籍主要内容的方式.在Word中,插入目录首先需要设置相应段落的大纲级别,根据大纲级别来生成目录表.本文中生成目录分2种情况来进行: 1.文档没有设置大纲级 ...

  8. vue路由传参和获取参数

    参考链接 https://router.vuejs.org/zh/guide/essentials/passing-props.html#%E5%B8%83%E5%B0%94%E6%A8%A1%E5% ...

  9. .NET多线程知识快速学习

    多线程是一个不会过时的话题,因为每个开发的成长必然要掌握这个知识点,否则半懂不懂怎么保证系统的可靠性和性能,其实在网上随便一搜都会有海量的文章说这个话题,大多数写得很细写得非常好,但发现很少有概览性的 ...

  10. Java操作数据库——使用连接池连接数据库

    Java操作数据库——使用连接池连接数据库 摘要:本文主要学习了如何使用JDBC连接池连接数据库. 传统方式和连接池方式 传统方式的步骤 使用传统方式在Java中使用JDBC连接数据库,完成一次数据库 ...