ddt、依赖测试、断言、测试数据写回

# -*- coding: utf-8 -*-
# @Time : 2020/2/12 23:07
# @File : test_class_15.py
# @Author: Hero Liu
# 相当于案例中的runmethod.py
import unittest
from day_20200208_mooc.base.interface_request_class_5 import RunMain
from day_20200208_mooc.tools.do_excel_openpyxl_14 import DoExcel
from ddt import ddt, data, unpack
from day_20200208_mooc.tools.do_mock_18 import mock_test
from day_20200208_mooc.tools.data_depend_17 import DependData

test_data = DoExcel().get_data("../data/test_data.xlsx", "case")

@ddt
class TestRequest(unittest.TestCase):
    def setUp(self):
        print("case starting...")

    def tearDown(self):
        print("case end.")

    @data(*test_data)
    @unpack
    def test_api(self, case_id, module_title, url, method, header,
                 case_depend, case_depend_data, depend_data_belong_new_key,
                 data, expected):
        print("正在执行第{}条用例:{}".format(case_id, module_title))
        print("请求数据是:", data)
        # 如果存在依赖case_id, 默认就有依赖数据和依赖字段
        # 获取依赖case数据,执行依赖测试,根据依赖测试响应结果返回依赖字段,
        # 根据依赖字段发起对当前case发起请求
        if case_depend:
            r = DependData(case_depend, case_id, "../data/test_data.xlsx", "case")
            res = r.run_present_case()
            print("单独的响应数据:", res)
        else:
            res = mock_test(RunMain().run_main, url, method, data, data, header)
        print("响应数据是1:", res)
        test_result = None
        try:
            print("data[timestamp]: ", data["timestamp"])
            print("res[timestamp]: ", res["timestamp"])
            self.assertEqual(data["timestamp"], res["timestamp"])
            test_result = "PASS"
        except AssertionError as e:
            test_result = "FAILED"
            print("there is an error: {}".format(e))
            raise e
        finally:
            DoExcel().write_back("../data/test_data.xlsx", "case", case_id+1, 12, str(res))
            DoExcel().write_back("../data/test_data.xlsx", "case", case_id+1, 13, test_result)

MOOC(7)- case依赖、读取json配置文件进行多个接口请求-完整的测试类,含依赖测试(15)的更多相关文章

  1. MOOC(7)- case依赖、读取json配置文件进行多个接口请求-解决用例间依赖问题(17)

    最最重要,处理case依赖.字段依赖 # -*- coding: utf-8 -*- # @Time : 2020/2/13 21:14 # @File : data_depend_17.py # @ ...

  2. MOOC(7)- case依赖、读取json配置文件进行多个接口请求-读取json封装成类(13)

    把读取json数据的函数封装成类 # -*- coding: utf-8 -*- # @Time : 2020/2/12 16:44 # @File : do_json_13.py # @Author ...

  3. MOOC(7)- case依赖、读取json配置文件进行多个接口请求-openpyxl读取excel(14)

    从excel中读取数据 # -*- coding: utf-8 -*- # @Time : 2020/2/12 17:23 # @File : do_excel_openpyxl_14.py # @A ...

  4. MOOC(7)- case依赖、读取json配置文件进行多个接口请求-执行测试用例(16)

    执行测试用例 # -*- coding: utf-8 -*- # @Time : 2020/2/12 22:56 # @File : run_test_16.py # @Author: Hero Li ...

  5. MOOC(7)- case依赖、读取json配置文件进行多个接口请求-发送测试报告邮件(19)

    给多个人发邮件时,可以传入邮箱列表 把多个收件人用分号隔开 # -*- coding: utf-8 -*-# @Time : 2020/2/15 17:02# @File : send_mail_19 ...

  6. MOOC(7)- case依赖、读取json配置文件进行多个接口请求-模拟接口响应数据(18)

    这里是把传入的请求数据作为响应值返回 # -*- coding: utf-8 -*- # @Time : 2020/2/15 9:47 # @File : do_mock_18.py # @Autho ...

  7. MOOC(7)- case依赖、读取json配置文件进行多个接口请求-xlrd操作excel(11)

    xlrd操作excel # -*- coding: utf-8 -*- # @Time : 2020/2/12 9:14 # @File : do_excel_xlrd_11.py # @Author ...

  8. MOOC(7)- case依赖、读取json配置文件进行多个接口请求-测试类中调用封装的mock(10)

    封装mock后,在单元测试中调用 # -*- coding: utf-8 -*- # @Time : 2020/2/11 8:35 # @File : test_class_10.py.py # @A ...

  9. MOOC(7)- case依赖、读取json配置文件进行多个接口请求-封装mock(9)

    封装mock # -*- coding: utf-8 -*- # @Time : 2020/2/12 8:51 # @File : mock_demo_9.py # @Author: Hero Liu ...

随机推荐

  1. redis(一)----配置及安装

    1. redis下载         根据自己操作系统平台下载适合的文件包: https://github.com/MSOpenTech/redis 2. redis安装         (1)解压, ...

  2. 3分钟搞定高逼格PPT封底——简约型

    封底想要高逼格又简约? 发现了这五类,看完不会制作算我输.   一.纯文字 白色背景下,一段结束语,或提问或感谢.       重叠文字,看上去非常有创意. 没有操作难度,END放大字号,颜色设置为浅 ...

  3. ubuntu14.10安装gitlab

    1 换源: # curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/ ...

  4. vue实现简单的过滤器

    html片段: <script src="https://unpkg.com/vue"></script> <div id="app&quo ...

  5. 吴裕雄--天生自然深度学习TensorBoard可视化:监控指标可视化

    import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data # 1. 生成变量监控信息并定义生 ...

  6. docker---安装docker

    今天开始要初步的学习 docker 了,这也是进入虚拟化方向的一个步骤,学习一个东西首先要从搭建环境开始,哈哈 安装环境及版本: 系统:Ubuntu18.04 STL Docker 版本:19.03. ...

  7. Linux读取目录文件

    1.opendir与readdir函数 (1).opendir打开一个目录后得到一个DIR类型的的指针给readdir使用. (2).readdir函数调用一次后就会返回一个struct dirent ...

  8. Linux笔记(二)

    Linux笔记(二) 一.软件包管理 1.rpm命令使用:Linux安装软件包的三种方法 rpm工具类似于Windows的exe文件,可以直接进行安装,而且安装路径和文件名一般都是固定好的. 在Cen ...

  9. dubbo的重试原则

    验证思路.使用超时来验证重试次数 XML 注解

  10. iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码

    iOS精选源码 如丝般顺滑的微信朋友圈(点赞,评论,图文混排表情,... 动态菜单第三版本:动态项,自适应方向 仿appstore首页滚动效果 iOS 透明导航栏方案 TransparentNavig ...