unittest (11) - get_data take a few custom test data

In get_data defined by taking all the examples and embodiment modes take part with

# 1. http_request.py

import requests


class HttpRequest:
    def http_request(self, url, method, data=None, cookie=None):
        try:
            if method.upper() == "GET":
                res = requests.get(url, data, cookies=cookie)
            elif method.upper() == "POST":
                res = requests.post(url, data, cookies=cookie)
            else:
                print("请输入正确的参数")
         The except Exception AS E:
             Print ( " request being given: {} " .format (E))
             The raise E
         return RES

 

# 2. get_data6.py

from openpyxl import load_workbook


class DoExcel:
    def __init__(self, file, sheet):
        self.file = file
        self.sheet = sheet

    def get_data(self, mode="all"):
        wb = load_workbook(self.file)
        sheet = wb[self.sheet]
        case_data = []
        for i in range(2, sheet.max_row+1):
            sub_data = {}
            sub_data["case_id"] = sheet.cell(i, 1).value
            sub_data["url"] = sheet.cell(i, 2).value
            sub_data["method"] = sheet.cell(i, 3).value
            sub_data["data"] = eval(sheet.cell(i, 4).value)
            sub_data["expected"] = sheet.cell(i, 5).value
            case_data.append(sub_data)
        if mode == "all":
            final_data = case_data
         the else :   # [. 1, 2,. 5] 
            final_data = []
             for TEST_DATA in case_data:   # traversing each of the test data, if the data in the incoming test id list, put this data to final_data 
                IF TEST_DATA [ " the case_id " ] in MODE: 
                    final_data.append (TEST_DATA) 

        return final_data 


IF  the __name__ == " __main__ " : 
    case_data = DoExcel ( " data_7.xlsx " , " SH2 ").get_data([1, 2, 3])
    print(case_data)

 

# 3.test_login.py

import unittest
from API_AUTO.tools.http_request import HttpRequest
from ddt import ddt, data, unpack
from day_20191202.config_case_data.get_data6 import DoExcel

# 自定义取某几条数据执行用例
test_data = DoExcel("data_7.xlsx", "sh2").get_data([1, 2, 4])
# print(test_data)

@ddt
class TestLogin(unittest.TestCase):
    def setUp(self):
        print("Testing ... Start " ) 

    DEF tearDown (Self):
         Print ( " Case DONE. " ) 

    @data ( * TEST_DATA) 
    @unpack 
    # Note that the new data table more than id, use the parameters to receive case_id 
    DEF test_api (Self, the case_id, URL, Method, Data, expected):
         # Print ( "URL:", URL) 
        # Print ( "Method", Method) 
        # Print ( "DATA_C", Data) 
        RES = the HttpRequest () Http_Request (URL, Method. , Data) 
        R & lt = res.json () [ " info " ]
         the try :
            self.assertEqual(r, expected)
        except AssertionError as e:
            print("there is an error in the case {}".format(e))
            raise e


if __name__ == '__main__':
    TestLogin().test_api()

 

# 4. run.py

import unittest
from day_20191202.config_case_data.test_login import TestLogin
import HTMLTestRunner

suite = unittest.TestSuite()
loader = unittest.TestLoader()
suite.addTest(loader.loadTestsFromTestCase(TestLogin))

with open("login6.html", "wb") as file:
    runner = HTMLTestRunner.HTMLTestRunner(stream=file,
                                           verbosity=2,
                                           title="登录6测试报告",
                                           description="管住心情,就是胜利")
    runner.run(suite)
# runner = unittest.TextTestRunner(verbosity=2)
# runner.run(suite)

  

FIG test data:

 

Guess you like

Origin www.cnblogs.com/come202011/p/12231673.html