'''
时间:2018/10/30
功能:unittest
目录:一: 三种介绍1 help查看2 文件查看3 类型查看二: 单个运行        1 测试用例        2 测试类 三: 全部运行1 方法12 方法2四: 执行结果    五: 执行顺序    六: 实际操作    七: Error     1 tab和空格'''

一: 三种介绍
  1 help查看

# coding:utf-8
import unittestprint(help(unittest))

Help on package unittest:NAMEunittestDESCRIPTIONPython unit testing framework, based on Erich Gamma's JUnit and Kent Beck'sSmalltalk testing framework (used with permission).This module contains the core framework classes that form the basis ofspecific test cases and suites (TestCase, TestSuite etc.), and also atext-based utility class for running the tests and reporting the results(TextTestRunner).

  2 文件查看

  3 类型查看

# coding:utf-8
import unittestprint(type(unittest))

<class 'module'>

二: 单个运行

  1 测试用例

# coding:utf-8
import unittestclass IntegerArithmeticTestCase(unittest.TestCase):def testAdd(self):  # test method names begin with 'test'self.assertEqual((1 + 2), 3)self.assertEqual(0 + 1, 1)def testMultiply(self):self.assertEqual((0 * 10), 0)self.assertEqual((5 * 8), 40)if __name__ == '__main__':unittest.main()

1 : 使用例子代码,复制到py文件。

1 : 选择要执行的单个用例xxx,右击选择Run 'xxx'。

1 : 可以看红框内运行:数量、结果和时间。

  2 测试类

1 : 选择要执行的测试类xxx,右击选择Run 'xxx'。

1 : 可以看红框内运行:数量、结果和时间。

三: 全部运行

  1 方法1

1 : 选择'__main__',右击选择Run '文件名'。

1 : 可以看红框内运行:数量、结果和时间

  2 方法2

1 : 右击文件名,选择Run 'Unittests in 文件名'。

1 : 可以看红框内运行:数量、结果和时间

四: 执行结果

. : 执行成功
E : 测试代码错误
F : assert断言失败,开发代码问题)

  

五: 执行顺序

# coding:utf-8
import unittestclass A8(unittest.TestCase):def setUp(self):print("setUp")def tearDown(self):print("tearDown")@classmethoddef setUpClass(cls):print("setUpClass")@classmethoddef tearDownClass(cls):print("tearDownClass")def testAdd(self):  # test method names begin with 'test'print("testAdd")self.assertEqual((1 + 2), 3)self.assertEqual(0 + 1, 1)def testMultiply(self):print("testMultiply")self.assertEqual((0 * 10), 0)self.assertEqual((5 * 8), 40)def testAsd(self):print("testAsd")self.assertEqual((1 + 1), 2)self.assertEqual((1 + 1), 2)if __name__ == '__main__':unittest.main()

Testing started at 1:16 ...
setUpClass
setUp
testAdd
tearDown
setUp
testAsd
tearDown
setUp
testMultiply
tearDown
tearDownClass

每次用例 - 最先执行: def setUp(self):
每次用例 - 最后执行: def tearDown(self):所有用例 - 最先执行一次: def setUpClass(cls):
所有用例 - 最后执行一次: def tearDownClass(cls):

class和用例执行顺序排序: 大写字符(A-Z),小写字母(a-z), 数字(0-9)

六: 实际操作

1 : 使用第三方接口做测试。

{'error_code': 0, 'reason': 'success', 'result': {'data': {'conclusion': '[凶]波澜重迭,常陷穷困,动不如静,有才无命', 'analysis': '越是对命运的抗争,越是使自已陷入困境,常常想靠自已改变命运,却一次次使自已的生活走入穷困,还不如听天由命,安于本份。'}}}{'resultcode': '101', 'reason': 'KEY ERROR!', 'result': [], 'error_code': 10001}

1 : 查看不同情况下的返回数据,还可以查看官方的接口描述。

# coding:utf-8
import requests
import unittestclass TestQQ(unittest.TestCase):# key值 - 正确情况def test_qq_right_key(self):url = "http://japi.juhe.cn/qqevaluate/qq"par = {"key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx", # 正确的key"qq": "1812436356"}r = requests.get(url, params=par)res = r.json()self.assertTrue(res['reason'] == 'success') # 检查点 - 结果self.assertTrue(res['error_code'] == 0)     # 检查点 - 错误码self.assertTrue(res['result'] != [])        # 检查点 - 返回结果# key值 - 错误情况def test_qq_error_key(self):url = "http://japi.juhe.cn/qqevaluate/qq"par = {"key": "123456789", # 错误的key"qq": "1812436356"}r = requests.get(url, params=par)res = r.json()self.assertTrue(res['reason'] == 'KEY ERROR!') # 检查点 - 结果self.assertTrue(res['error_code'] == 10001)    # 检查点 - 错误码self.assertTrue(res['result'] == [])           # 检查点 - 返回结果# qq - 为空def test_qq_no_qq(self):url = "http://japi.juhe.cn/qqevaluate/qq"par = {"key": "980bf619855953f6ebef9abe90d52712","qq": ""}r = requests.get(url, params=par)res = r.json()self.assertTrue(res['reason'] == '错误的请求参数')  # 检查点 - 结果self.assertTrue(res['error_code'] == 216602)        # 检查点 - 错误码if __name__ == "__main__":unittest.main()

1 : 根据不同的测试方法,编写测试用例。

1 : 可以看红框内运行:数量、结果和时间

七: Error
     1

TabError: inconsistent use of tabs and spaces in indentation

原因是在代码对齐中,混合使用tab健和空格健

1 : notepad: 视图 -> 显示符号 -> 显示空格与制表符。

def testAdd(self):  self.assertEqual((1 + 2), 3)    # tab对齐self.assertEqual(0 + 1, 1)      # 空格对齐


转载于:https://www.cnblogs.com/huafan/p/9874339.html

008 python接口 unittest相关推荐

  1. Python接口自动化之unittest单元测试

    ------·今天距2021年251天·------ 这是ITester软件测试小栈第115次推文 在上一篇Python接口自动化测试系列文章:Python接口自动化之requests请求封装,主要通 ...

  2. python 接口自动化unittest+DingtalkChatbot钉钉机器人消息封装

    python 接口自动化unittest+DingtalkChatbot机器人消息封装 安装DingtalkChatbot: pip install DingtalkChatbot 钉钉配置机器人: ...

  3. python requests+unittest+beautifulreport+jenkins实现接口自动化(上)

    众所周知,目前较为主流的接口自动化框架:httprunner3, pytest, unittest. 背景知识:httprunner3是基于pytest进行二开封装的,而pytest是基于unitte ...

  4. python 基于unittest写接口自动化脚本

    已过时.如感兴趣,请移步这篇文章 https://blog.csdn.net/tomoya_chen/article/details/121550706 python 基于unittest写接口自动化 ...

  5. python+requests+unittest+HTMLTestRunner构建接口自动化测试框架(四)测试用例执行

    python+requests+unittest+HTMLTestRunner构建接口自动化测试框架(一)了解基础框架,读取配置文件 python+requests+unittest+HTMLTest ...

  6. python自动化测试视频百度云-Python接口自动化测试视频教程下载

    Python接口自动化测试视频教程下载 课程介绍: 此套Python接口自动化测试视频教程适合入门接口测试和学习python+requests自动化的学员学习,教程对http协议.fiddler抓包与 ...

  7. python自动化测试视频百度云-Python接口自动化测试 PDF 超清版

    给大家带来的一篇关于Python自动化相关的电子书资源,介绍了关于Python.接口自动化.测试方面的内容,本书是由电子工业出版社出版,格式为PDF,资源大小61.2 MB,王浩然编写,目前豆瓣.亚马 ...

  8. python自动化测试视频百度云-python接口自动化测试视频教程全集

    python接口自动化测试视频教程全集 下载地址:https://k.weidian.com/Pfm=DyuI 课程内容: 第一章:接口测试基础 1-1 接口自动化课程简介 1-2 接口测试课程大纲 ...

  9. python 参数拼接token_对python的unittest架构公共参数token提取方法详解

    额...每个请求都有token值的传入,但是token非常易变,一旦变化,所有的接口用例都得改一遍token,工作量太大了... 那么有没有一种方法能把token提取出来,作为一个全局变量,作为一个参 ...

最新文章

  1. 常见http状态码说明(转)
  2. 绑定CPU逻辑核心的利器——taskset
  3. faster rcnn结构
  4. 犀利的 JavaScript
  5. 最全三大框架整合(使用映射)——数据库资源文件jdbc.properties
  6. oracle查询慢怎么优化,Oracle查询优化-怎样建立索引优化下面的查询语句啊
  7. 第四届数据科学国际会议(ICDS2017)将于5月在上海召开
  8. Centos 6 搭建安装 Gitlab
  9. 全球与中国高密度聚乙烯塑料桶市场深度研究分析报告
  10. 有哪些让你印象深刻的bug?
  11. Pulseaudio入坑
  12. 【视频MV】laislabonita美丽的海岛*女歌星Alizee(艾莉婕)
  13. 因为计算机丢失user32.dll,电脑丢失USER32.dll怎么处理
  14. 多线程并发编程知识点汇总
  15. VSCode前端文件(html文件)以服务器模式在chrome浏览器打开
  16. HDOJ 1280 前m大的数(水题)
  17. 【游戏开发环境】Unity使用Mac电脑开发,开发环境的搭建(Mac mini M1 | VSCode | Git | 好用工具)
  18. Oracle 19 创建数据库、表空间
  19. 没想到吧!玩游戏还能学习编程,这15款编程游戏你一定要看看
  20. Java中判断输入错误的,判断验证码输入是否正确有关问题

热门文章

  1. 存储过程里面的CASE,WHEN,THEN的用法
  2. (Lesson2)根据类名称和属性获得元素-JavaScript面向对象
  3. Angular 一个简单的指令实现 阻止事件扩散
  4. 递归和循环:斐波那契数列
  5. BZOJ4893: 项链分赃 BZOJ4895: 项链分赃(增强版)
  6. JAVA线程池ScheduledExecutorService周期性地执行任务 与单个Thread周期性执行任务的异常处理...
  7. idea中maven导入jar包
  8. PlSql加入数据库链接
  9. 使用EXE4J将JAR包转换为EXE文件
  10. POJ1364基本的查分约束问题