Ejemplo n.º 1
0
class Dependent:
    def __init__(self,case_id):
        self.case_id = case_id
        self.oper_excel = OperationExcel()
        self.data = GetData()
        self.run = RunMethod()

    def dependent_run(self):        #运行依赖的用例
        case_row = self.oper_excel.get_case_row(self.case_id)
        method = self.data.get_request_way_value(case_row)
        url = self.data.get_url_value(case_row)
        data = self.data.get_data_for_json(case_row)
        header = self.data.get_is_header_value(case_row)
        res = self.run.run_method(method,url,data,header)
        return res

    def dependent_key_values(self,row):     #获取需要依赖键的值
        response_data = self.dependent_run()    #运行依赖用例,获取其返回值
        requests_data = self.data.get_response_dependent_value(row)  #获取返回值里的某个键的值
        response_data = json.loads(response_data)   #将json数据转换成python可识别的对象
        json_exe = parse(requests_data)     #定义一个规则,以json格式去格式化接口返回的数据
        mable = json_exe.find(response_data)    #按照规则来查找整个结果集
        return [math.value for math in mable]   #官方写法,从结果集查找某部分数据
Ejemplo n.º 2
0
class RunTest:
    def __init__(self):
        self.getdata = GetData()
        self.run_method = RunMethod()
        self.oper_excel = OperationExcel()
        self.common_util = CommonUtil()
        self.oper_mysql = OperationMysql()
        self.sen_mail = SendEmail()

    def run_test(self):
        id = 0
        pass_count = []
        fail_count = []
        row = self.oper_excel.get_data_lines()
        for id in range(1, row):
            is_run = self.getdata.get_is_run_value(id)
            if is_run:
                url = self.getdata.get_url_value(id)
                method = self.getdata.get_request_way_value(id)
                is_header = self.getdata.get_is_header_value(id)
                case_dependent = self.getdata.get_case_dependent_value(id)
                response_dependent = self.getdata.get_response_dependent_value(
                    id)
                data_dependent = self.getdata.get_data_dependent_value(id)
                data = self.getdata.get_data_for_json(id)
                #expect = self.getdata.get_expect_from_mysql(id)
                expect = self.getdata.get_expect_value(id)
                result = self.getdata.get_result_value(id)
                if case_dependent != None:
                    self.dependent = Dependent(case_dependent)
                    dependent_data = self.dependent.dependent_key_values(id)
                    data[data_dependent] = dependent_data
                #print(type(expect))
                if is_header == 'write':
                    res = self.run_method.run_method(method, url, data)
                    #print(res['data']['url'])
                    res = json.loads(res)
                    #print(type(res))
                    oper_header = OperationHeader(res)
                    oper_header.write_cookie()
                elif is_header == 'yes':
                    oper_json = OperationJson(
                        'D:\pycharm\python2\\testdjango\demo\detaconfig\cookie.json'
                    )
                    is_header = oper_json.get_json_data('apsid')
                    cookie = {'apsid': is_header}
                    res = self.run_method.run_method(method, url, data, cookie)
                else:
                    res = self.run_method.run_method(method, url, data)
                #print(id,res,type(res),type(expect))
                #print(expect,res)
        #self.sen_mail.sen_main(pass_count,fail_count)

                if self.common_util.is_contain(expect, res):
                    self.getdata.write_data(id, 'pass')
                    pass_count.append(id)
                    print('pass')
                else:
                    self.getdata.write_data(id, 'fail')
                    fail_count.append(id)
                    print('fail')
        print(len(pass_count))
        self.sen_mail.sen_main(pass_count, fail_count)