14、初始化函数传参--super超继承

一、选取请求方式

import requests

class HttpRequest():
    def http_request(self, url, data, method, cookie=None):
        if method.lower() == "get":
            # verify=False忽略证书  ssl
            res = requests.get(url, data, cookies=cookie, verify=False)
            return res
        elif method.lower() == "post":
            res = requests.post(url, data, cookies=cookie, verify=False)
            return res  # 返回的是一个消息实体
        else:
            raise  Exception('不支持的请求')

二、反射函数

class GetData:
    Cookie = '小郭'

setattr(GetData,'Cookie','小黄')
print(GetData.Cookie)

三、单元测试用例

import unittest
from testcase_01.class_02_02 import HttpRequest
from testcase_01.class_02_04 import GetData


# 登录接口
class TestHttp(unittest.TestCase):
    def setUp(self):
        print("我已经开始测试用例了")
    #超继承
    def __init__(self,methodName,url,data,method,expected):#通过初始化函数传参
        super(TestHttp,self).__init__(methodName)#保留父类的方法
        self.url = url
        self.data = data
        self.method = method
        self.expected = expected

    def test_api(self):
            res = HttpRequest().http_request(self.url, self.data, self.method,getattr(GetData,'Cookie'))
            if res.cookies:
                setattr(GetData, 'Cookie', 'res.cookies')
            try:
                self.assertEqual(self.expected, res.json()['code'])
            except Exception as e:
                print("test_api's error is {0}".format(e))
                raise e
            print(res.json())

四、传参+输出测试报告

# ..成功  F失败 1代码错误
import unittest
import HTMLTestRunner
from testcase_01 import class_02_01 #导入模块名
import time
import os
from testcase_01.class_02_01 import TestHttp   #具体到类名

#列表里面嵌套字典
test_data = [
    {"url":'登录的url',"data": {'正常登录的参数值'}, "expected": '10001','method':'get'},
    {"url":'登录的url',"data": {"错误登录的参数值"}, "expected": '20111','method':'get'},
    {"url":'充值的url',"data": {"正确的充值参数值"}, "expected": '10001','method':'post'},
    {"url":'充值的url',"data": {"错误的充值参数值"}, "expected": '20117','method':'post'}
]

suite = unittest.TestSuite()  # 存储用例
for item in test_data:#遍历是为了创建实例
    suite.addTest(TestHttp('test_api',item['url'],item['data'],item['excepted'],item['method']))#实例方式去加载用例


if __name__ == "__main__":
    time1 = time.strftime("%Y-%m-%d %H-%M-%S")
    name1 = time1 + "report.html"

with open(name1, 'wb') as file:
    runner = HTMLTestRunner.HTMLTestRunner(
        stream=file,
        title="单元测试报告",
        description="测试用例执行统计1",
        verbosity=2
    )
    runner.run(suite)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值