Esempio n. 1
0
class RunTest:
    def __init__(self):
        self.run_method = RunMain()
        self.data = GetData()
        self.common = CommonUtil()
        self.emailObj = SendEmail()
        self.token = ''

    def getToken(self):
        url = self.data.getURL(1)
        method = self.data.getRequstMethod(1)
        data = self.data.get_data_for_json('login')
        res = self.run_method.run_main(method, url, data)
        self.token = json.loads(res)['data']['token']

    # 程序执行
    def go_on_run(self):
        row_count = self.data.getCaseCount()
        pass_count = []
        fail_count = []
        self.getToken()

        for i in range(1, row_count):
            test_name = self.data.getTestName(i)
            url = self.data.getURL(i)
            method = self.data.getRequstMethod(i)
            is_run = self.data.getIsRun(i)
            requestDataName = self.data.getRequestData(i)
            data = self.data.get_data_for_json(requestDataName)
            header = self.data.getHeader(i, self.token)
            expect = self.data.getExpectResult(i)
            case_depend = self.data.getCaseDepend(i)
            if is_run:
                if header != None:
                    header = self.data.getHeader(i, self.token)

                if case_depend != None:
                    # 获取依赖数据
                    data_depend = self.data.getDependData(i)
                    # 获取依赖的响应数据
                    depObj = DependData(case_depend)
                    depend_resonse_data = depObj.get_data_for_key(data_depend, self.token)
                    # 获取依赖的key
                    depend_key = self.data.getDependField(i)
                    # 将响应数据赋值给请求数据中的field项中
                    data[depend_key] = depend_resonse_data
                    if method == 'DELETE':
                        url = url + depend_resonse_data

                res = self.run_method.run_main(method, url, data, header)
                m = self.common.is_contain(expect, res)
                # 判断执行结果是否与预期结果一致,并将执行结果写入excel中
                if m:
                    self.data.writeResult(i+1, "pass")
                    pass_count.append(i)
                else:
                    print("接口执行错误-", test_name, ":", res)
                    self.data.writeResult(i+1, res)
                    fail_count.append(i)
Esempio n. 2
0
class DependData:
    """
    处理数据依赖
    """
    def __init__(self, caseid):
        self.operaExcel = GetData()
        self.caseid = caseid

    # 通过case_id获取改case_id 的整行数据
    def get_case_line_data(self, caseId):
        rows_data = self.operaExcel.getRowDateByCaseId(caseId)
        return rows_data

    # 通过依赖数据(data:id)获取执行响应值
    def get_data_for_key(self, depend_data, token):
        key = depend_data.split(":")[0]
        value = depend_data.split(":")[1]
        res = self.run_dependent(token)[key][value]
        return res

    # 执行依赖测试,获取结果
    def run_dependent(self, token):
        run = RunMain()
        rownumber = self.operaExcel.getRowNumberByCaseID(self.caseid)
        url = self.operaExcel.getURL(rownumber)
        data = self.operaExcel.get_data_for_json(
            self.operaExcel.getRequestData(rownumber))
        header = self.operaExcel.getHeader(rownumber, token)
        res = run.send_post(url, data, header)
        return res