예제 #1
0
 def get_expcet_data(self, row):
     expect = self.get_expcet_data_for_excel(row)
     if expect == "":
         return None
     if re.match('select.+from', expect, re.M | re.I) == None:
         return expect
     else:
         op_mysql = OperationMysql()
         return op_mysql.search_one(expect)
예제 #2
0
 def get_except_data_for_sql(self, row, sql_base):
     oper_mysql = OperationMysql(sql_base)
     except_data = self.get_except(row)
     result = oper_mysql.search_all(except_data)
     # if sql_value == '':
     #     result = oper_mysql.search_all(except_data)
     # else:
     #     result = oper_mysql.search_all(except_data % sql_value)
     return result
예제 #3
0
    def get_expcet_data(self, row):
        col = int(data_config.get_expect())
        expect = self.opera_excel.get_cell_value(row, col)
        if expect == '':
            expect = None
        elif not self.common_util.is_json(expect):
            op_mysql = OperationMysql()
            expect = op_mysql.search_one(expect)

        return expect
예제 #4
0
 def get_all_sql_data(self, row, get_data):
     sql = get_data(row)
     # print sql
     # 这里做判断,预期结果内有sql命令,才去运行sql
     if sql != None:
         op_mysql = OperationMysql()
         res = op_mysql.search_all(sql)
         # return res.decode('unicode-escape')
         # print(res.encode('utf-8').decode('gb18030'))
         # print(type((res.encode('utf-8').decode('gb18030'))))
         return res.encode('utf-8').decode('unicode_escape')
     else:
         return None
예제 #5
0
 def get_expect_data_for_mysql(self, row):
     sql = self.get_expect_data(row)
     if sql[:6] == 'select':
         res = OperationMysql().search_one(sql)
         expect_type = 'sql'
     else:
         res = sql
         expect_type = 'notsql'
     return res, expect_type
예제 #6
0
    def get_expcet_data(self, row):
        col = int(data_config.get_expect())
        expect = self.opera_excel.get_cell_value(row, col)
        if expect == '':
            return None
        # 替换
        p = r"\${(.+?)}"
        robocop = re.compile(p, re.I)
        temps = robocop.findall(expect)
        if temps:
            for temp in temps:
                # 数据库查询,不区分大小写
                if temp.upper().find("select".upper()) >= 0:
                    op_mysql = OperationMysql()
                    res = op_mysql.search_one(temp)
                    expect = re.sub(p, res, expect)
                # json替换
                else:
                    opera_json = OperetionJson()
                    res = str(opera_json.get_data(temp))
                    expect = re.sub(p, res, expect)

        return expect
예제 #7
0
 def get_expcet_data_for_mysql(self, row):
     op_mysql = OperationMysql()
     sql = self.get_expcet_data(row)
     res = op_mysql.search_one(sql)
     return res.decode('unicode-escape')
                        break
                    dic_data[p] = result_db

            return dic_data

    # 递归获取 expectResponse 字段的 字典value值
    def getListFromDict(self, list, dic):
        for i in dic:
            if isinstance(dic[i], dict):
                self.getListFromDict(list, dic[i])
            else:
                list.append(dic[i])
        return list


if __name__ == '__main__':

    # 选择数据环境 线上/测试
    db_enviroment = "test"
    # db_enviroment="prod"
    operation_mysql = OperationMysql(db_enviroment)

    # # 选择用例文件
    # # fileName='../dataconfig/case1.xls'
    # # fileName = '../dataconfig/confucius.xls'
    fileName = 'dataconfig/management.xls'
    # # fileName = '../dataconfig/yunying.xls'
    sheetid = 0
    run = RunTest(fileName=fileName, sheetid=sheetid)
    run.go_on_run()
예제 #9
0
 def __init__(self):
     self.oper_excel = OperationExcel()
     self.opera_mysql = OperationMysql()
예제 #10
0
class GetData(object):
    def __init__(self):
        self.oper_excel = OperationExcel()
        self.opera_mysql = OperationMysql()

    # 去获取excel的行数,就是case(用例)的个数
    def get_case_lines(self):
        return self.oper_excel.get_lines()

    # 获取是否执行
    def get_is_run(self, row):
        flag = None
        col = int(data_config.get_run())
        run_model = self.oper_excel.get_cell_value(row, col)
        if run_model == "yes":
            flag = True
        else:
            flag = False
        return flag

    # 获取请求方式
    def get_request_method(self, row):
        col = int(data_config.get_request_way())
        request_method = self.oper_excel.get_cell_value(row, col)
        return request_method

    # 获取url
    def get_request_url(self, row):
        col = int(data_config.get_url())
        url = self.oper_excel.get_cell_value(row, col)
        return url

    # 获取请求头header关键字
    def is_header(self, row):
        col = int(data_config.get_header())
        header = self.oper_excel.get_cell_value(row, col)
        if header == "":
            return None
        else:
            return header

    # 通过请求头关键字拿到data数据
    def get_header_value(self, row):
        opera_json = OperationJson(
            "D:\GZRJ\Python_XM\\api_automation_test\dataconfig\\request_header.json"
        )
        request_header = opera_json.get_data(self.is_header(row))
        return request_header

    # 获取请求数据
    def get_request_data(self, row):
        col = int(data_config.get_data())
        data = self.oper_excel.get_cell_value(row, col)
        if data == "":
            return None
        else:
            return data

    # 获取json数据,根据get_request_data的返回值获取
    def get_data_for_json(self, row):
        opera_json = OperationJson()
        request_data = opera_json.get_data(self.get_request_data(row))
        return request_data

    # 获取预期结果
    def get_expcet_data(self, row):
        col = int(data_config.get_expect())
        expect = self.oper_excel.get_cell_value(row, col)
        if expect == "":
            return None
        else:
            return expect

    # 通过sql获取预期结果
    def get_expcet_data_for_mysql(self, row):
        sql = self.get_expcet_data(row)
        res = self.opera_mysql.search_one(sql)
        return res
        #return res.encode('unicode-escape')

    # 往excel中写入测试结果(直接调用operation_excel中的写入方法,把row, col, value传入就可以了)
    def write_result(self, row, value):
        col = int(data_config.get_result())
        self.oper_excel.write_value(row, col, value)

    # 判断是否有case依赖
    def is_depend(self, row):
        col = int(data_config.get_case_depend())
        depend_case_id = self.oper_excel.get_cell_value(row, col)
        if depend_case_id == "":
            return None
        else:
            return depend_case_id

    # 获取依赖数据的key
    def get_depend_key(self, row):
        col = int(data_config.get_data_depend())
        depend_key = self.oper_excel.get_cell_value(row, col)
        if depend_key == "":
            return None
        else:
            return depend_key

    # 获取依赖数据的所属字段
    def get_depend_field(self, row):
        col = int(data_config.get_field_depend())
        data = self.oper_excel.get_cell_value(row, col)
        if data == "":
            return None
        else:
            return data
예제 #11
0
 def update_sql(self, row):
     op_mysql = OperationMysql()
     sql = self.get_sql_data(row)
     res = op_mysql.update_one(sql)