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. tensorflow常用函数库

    归一化函数: def norm_boxes(boxes, shape): """Converts boxes from pixel coordinates to norm ...

  2. Mybatis学习——Mybatis入门程序

    MyBatis入门程序 一.查询用户 1.使用客户编号查询用户 (1).创建一个数据表 USE spring; #创建一个名为t_customer的表 CREATE TABLE t_customer( ...

  3. java -jar 和 java -cp 的区别

    https://blog.csdn.net/weixin_38653290/article/details/84647019 1.pom中build指定mainClass 但是 META-INF\MA ...

  4. C - Monitor CodeForces - 846D (二维前缀和 + 二分)

    Recently Luba bought a monitor. Monitor is a rectangular matrix of size n × m. But then she started ...

  5. 自动按键的Sendkeys工具的下载和使用

    大家好! 下面介绍一款自动按键的小工具:Sendkeys 下载地址 Sendkeys.rar 按键脚本的书写规则如下: 启动本工具后,在工具中打开一个脚本文件,然后在工具中按下Ctrl+A全选所有脚本 ...

  6. Centos7安装Xrdp远程桌面

    Xrdp是Microsoft远程桌面协议RDP的一个开源实现,它允许以图像方式控制远程系统. 测试环境 服务端: CentOS Linux release 7.7.1908 (Core) 客户端: W ...

  7. Linux设置环境变量PATH路径的两种方法

    echo 'export dataPath=$HOME/data/pre' >> ~/.bash_profile 路径即刻生效: . .bash_profile 或 source .bas ...

  8. python 并发执行

    并发执行, 精简代码. 适用python2 和python3 # -*- encoding:utf-8 -*- from threading import Thread from multiproce ...

  9. Utf8BomRemover

    // // Source code recreated from a .class file by IntelliJ IDEA // (powered by Fernflower decompiler ...

  10. day49-线程-事件

    #1.Event里面有一个标志flag,当e = Event()刚创建的时候,flag=False,阻塞,这个时候,e.is_set()也是等于False,阻塞. #e.set()让flag变成非阻塞 ...