最近几天苦心钻研unittest,终于略有所得,所以想来跟大家分享一下。有关python和unittest的基础知识部分就不在一一细说,相信各位也不是小白了。如果需要我整理基础知识,欢迎留言,我会看情况整理出来。下面直接贴上我的demo模板代码,注释部分主要是思路,有疏漏的地方欢迎大佬们指正。

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time :2018/12/7 11:03
# @Author :Yosef-夜雨声烦
# @Email :wurz529@foxmail.com
# @File: :model.py
# @Software :PyCharm Community Edition
"""
unittest模块总结:
关于这个模块,可没少让我吃苦头啊。以前自己学习这个模块的时候,就不是很懂,这两天我就一直在钻研这个东西,总算是略有收获。
下面的是我总结的模板,仅供参考。在学习PO模式之后,建议把下面模板分开几个py文件。 做下面demo发现的新问题:不能把断言放到try语句中并且是可以被except的异常类包含的,否则就不能通过断言来设置测试用例的结果。
然后突然想到raise语句,except语句执行完毕之后可以再抛出异常,这样就能被定义为fail
"""
import unittest
import HTMLTestRunner
import time class TestCases(unittest.TestCase): def setUp(self):
print("每一条case执行之前都会执行这个方法") def tearDown(self):
print("每一条case执行之后都会执行这个方法\n") def test_testcase1(self):
print("这是一条测试用例case1")
a = "hello"
try:
self.assertTrue(a.isalpha())
print("测试通过")
except Exception as e:
print("出错啦,错误结果是%s" % e)
print("failed")
raise e def test_testcase2(self):
print("这是一条测试用例case2")
b = ""
try:
self.assertTrue(b.isalpha())
print("测试通过")
except Exception as e:
print("出错啦,错误结果是%s" % e)
print("failed")
raise e def test_testcase3(self):
print("这是一条测试用例case3")
c = " "
try:
self.assertTrue(c.isalpha())
print("测试通过")
except Exception as e:
print("出错啦,错误结果是%s" % e)
print("failed")
raise e '''
if __name__ == "__main__":
unittest.main()
写上这段代码可以在命令行直接运行model.py,而且用例全部执行
''' """
加载测试用例,方法不仅这种,还有利用loader的方法,大佬们自行试下
loader = unittest.TestLoader()
suite.addTest(loader.loadTestsFromTestCase(TestCases))
or
suite.addTest(loader.loadTestsFromModule(model))
"""
suite = unittest.TestSuite()
# suite.addTest("test_testcase2") # 这里我写错了,要加上模块
suite.addTest(TestCases('test_testcase3')) """
指定测试报告的路径并且定义报告名称格式
"""
report_dir = "../Test report"
now = time.strftime("%Y-%m-%d %H-%M-%S")
reportname = report_dir + "/" + now + " Test report.html" """
运行用例并生成测试报告
"""
with open(reportname, "wb+") as file:
runner = HTMLTestRunner.HTMLTestRunner(file, 2, title="Model test report",
description="Hello testers! This is the description of Model test"
"report")
runner.run(suite)

再次欢迎大家指正!

接口自动化之unittest初探的更多相关文章

  1. 接口自动化-python unittest+requests+HTMLrunner

    从2015年毕业入行软件测试,快满4年了,之前技术分享都在百度贴吧上面,现在正式开始在博客中记录工作技术,努力成长,加油 接口测试的步骤1.组装好该接口需要的参数数据2.使用get或post附带参数数 ...

  2. 接口自动化(unittest)

    一.用例 TestCase 也就是测试用例 TestSuite 多个测试用例集合在一起,就是TestSuite TestLoader是用来加载TestCase到TestSuite中的 TestRunn ...

  3. 接口自动化 之 unittest+ddt+openpyxl 综合

    前面写过python 之 unittest初探 和 python 之 unittest+ddt 两篇文章.在之前的文章中,写过可以再次优化.今天写第三篇的目的,就是在原有基础上,基于 openpyxl ...

  4. 接口自动化测试之httprunner初探

    ❝ 今天来介绍一个python的一个开源项目:httprunner,接口自动化工具.第一次输入,难免有不周到的地方,轻喷~ ❞ 介绍: HttpRunner是一个简单优雅但功能强大的 HTTP(S) ...

  5. 【python接口自动化框架-unittest】如何传参数到下一个case

    1.前提 平时我们用unittest的时候,都知道每个test_ 都是相互独立的,但是很多现实情况是,我们下一个接口参数,可能会用到上一个接口返回的json字段,那么,我们怎么去实现呢 2.实例 1. ...

  6. 【python接口自动化框架-unittest】【一】unittest单元测试框架概念

    一.unittst单元测试框架 概念参考:https://docs.python.org/2/library/unittest.html 使用方法:import unittest (引入unittes ...

  7. 接口自动化 Windows + HttpRunner 初探(一)

    运行环境 HttpRunner 是一个基于 Python 开发的测试框架,可以运行在 macOS.Linux.Windows 系统平台上. HttpRunner 的开发环境为 macOS + Pyth ...

  8. 接口自动化之unittest+ddt

    我在上一篇(https://www.cnblogs.com/wlyhy/p/10083318.html) 文章整理了unittest的模板,但在后续学习中,发现还有许多值得优化的地方.例如在我们设计测 ...

  9. python+requests+excel+unittest+ddt接口自动化数据驱动并生成html报告(二)

    可以参考 python+requests接口自动化完整项目设计源码(一)https://www.cnblogs.com/111testing/p/9612671.html 原文地址https://ww ...

随机推荐

  1. 洛谷 P3627 [APIO2009](抢掠计划 缩点+spfa)

    题目描述 Siruseri 城中的道路都是单向的.不同的道路由路口连接.按照法律的规定, 在每个路口都设立了一个 Siruseri 银行的 ATM 取款机.令人奇怪的是,Siruseri 的酒吧也都设 ...

  2. Python 序列与映射的解包操作-乾颐堂

    解包就是把序列或映射中每个元素单独提取出来,序列解包的一种简单用法就是把首个或前几个元素与后面几个元素分别提取出来,例如: first, seconde, *rest = sequence 如果seq ...

  3. 白盒测试实践项目(day5)

    在这几天的工作下,小组成员都基本完成了各自所负责的内容. 李建文同学完成提交了代码复审相关文档后,也经过小组的补充,彻底完成. 汪鸿同学使用FIndBugs工具完成了静态代码的测试,并且也完成了静态代 ...

  4. .NET开源MSSQL、Redis监控产品Opserver之安全配置

    简介 Opserver是Stack Overflow的开源监控解决方案,由Stack Exchange发布,基于.NET框架构建.开源地址:https://github.com/opserver/Op ...

  5. MSSQLServer 存储过程

    一直对存储过程懵懵懂懂,翻了资料,觉得存储过程大有用处. 1.改善性能 SQL语句的执行需要先编译在执行,存储过程就是一组为了完成特定功能的SQL语句集,他可以一次编译,下次执行不再编译,提高运行效率 ...

  6. ibatis源码学习2_初始化和配置文件解析

    问题在详细介绍ibatis初始化过程之前,让我们先来思考几个问题. 1. ibatis初始化的目标是什么?上文中提到过,ibatis初始化的核心目标是构造SqlMapClientImpl对象,主要是其 ...

  7. jmeter -分布式性能测试部署

    ------------------运行环境:------------------------------------------------- 1. 安装java运行环境:要求jdk1.8(最好安装 ...

  8. MVVM Caliburn.Micro学习记录

    wpf中MVVM一直用的自己写的框架,最近试了试Caliburn.Micro. Caliburn.Micro可以通过x:name来进行属性和事件绑定. 比如 <Button x:Name=&qu ...

  9. jQuery为DOM动态追加事件

    处理一个列表绑定,因为是一个展示项目,没有使用复杂的插件,直接jsrender写了个模板,但是后面有一个操作按钮,去查看数据详情,想到了jquery使用on进行事件委托,然后就开搞 最初是这样写的: ...

  10. 为啥我的Andrid百度SDK不能正常运行?

    首先,百度SDK运行时候需要加载API Key,这个API Key是通过百度账号在百度里面申请到的,但是很可能大家没有注意到百度这个API Key申请的过程,其中很重要的一个步骤没有做好,而导致不能正 ...