Ejemplo n.º 1
0
    def single_2_database(self):
        '''
        data
        ['UCSEC1.2.16.94', '正常11位199开头', '19989898989', 'GMF_SJ=19989898989']
        '''
        # 连接数据库
        mysql_conn = OperateMysql()
        (cursor,db) = mysql_conn.get_attr()

        # 加载excel数据
        datas = self._read_excel('tel')
        id = int(self.step)
        for data in datas:
            temp = dict()
            data_desc = data[1]
            temp['data_id'] = id
            temp['data_sort'] = "手机号规则校验"
            temp['data_key'] =data[2]
            flag = '-F'
            if data[1].startswith("正常"):
                flag = '-T'
            temp['data_desc'] = data_desc + flag
            id += 2
            self.logger.debug(temp)
            sj_table = SJ_GZ(self.logger, **temp)
            sj_table.insert(cursor,db)
            self.logger.warning('data_id:{}--->成功'.format(temp['data_id']))
        mysql_conn.close()
Ejemplo n.º 2
0
    def single_2_database(self):
        '''
        data
        ['UCSEC1.2.16.94', '正常11位199开头', '19989898989', 'GMF_SJ=19989898989']
        '''
        # 连接数据库
        mysql_conn = OperateMysql(self.config_file)
        (cursor, db) = mysql_conn.get_cursor()

        # 加载excel数据
        datas = self._read_excel('email')  #2
        id = int(self.step)
        for data in datas:
            temp = dict()
            data_desc = data[1]
            temp['data_id'] = id
            temp['data_sort'] = "邮箱规则校验"  #1
            temp['nsrsbh'] = data[2]  # 4改为对应数据库字段
            flag = '-F'
            if data[1].startswith("正常"):
                flag = '-T'
            temp['data_desc'] = data_desc + flag
            id += 2
            self.logger.debug(temp)
            sj_table = Email_GZ(self.logger, **temp)  # 3
            sj_table.insert(cursor, db)
            self.logger.warning('data_id:{}--->成功'.format(temp['data_id']))
        mysql_conn.close()
Ejemplo n.º 3
0
    def generate_case_main(self):

        case_path = os.path.join(PATH, "data", 'cases', self.case_excel)
        common_datas = self._read_common_sheet(case_path)  # 1.从excel加载公共数据
        # origin_case = copy.deepcopy(common_datas)
        step = int(common_datas["step"])
        temp_datas = self._read_temp_data(
            case_path)  # 2.从excel加载case中单个或多个字段数据
        mysql = OperateMysql(self.config_file, self.logger)  # 3.连接数据库
        for temp_data in temp_datas:
            # temp_data ['FHDM','varchar','8']
            (key,
             values_list) = self.generate_values(temp_data)  # 4.生成单个或多个变量值
            for value in values_list:
                # ["sql注入","1=1"]
                temp_copy = copy.deepcopy(self.temp)
                desc = key + "_" + value[0]  # 生成用例描述
                self.logger.debug(desc)
                self.logger.debug(temp_copy)
                self.update_temp(temp_copy, key,
                                 value[1])  # 5.循环keys,并修改对应模板temp里的值
                self.update_temp_other(temp_copy, step,
                                       common_datas)  # 6.修改模板temp里的其他值(如fphm)
                self.logger.debug(('---update-----', temp_copy))
                case = self.update_case(common_datas, step, temp_copy,
                                        desc)  # 7.将temp加入到case中,并修改case里其他值
                mysql.insert_sql(case)  # 8.case插入到数据库中
                step += 1
            step += 12
        mysql.close()
Ejemplo n.º 4
0
 def get_keys(self):
     config_file = os.path.join(PATH, 'config', 'data_generator.ini')
     self.mysql_conn = OperateMysql(config_file)
     (cursor, db) = self.mysql_conn.get_dict_cursor()
     values = list()
     for class_object in self.class_list:
         sql_object = class_object(None)
         values.extend(sql_object.query(cursor))
     # [{'data_id': 100, 'data_sort': '手机号规则校验', 'data_desc': '前后空格-F', 'sj': ' 158585888 '},]
     return values
Ejemplo n.º 5
0
    def yhzc_2_database(self):
        '''
        data: [
        'UCSEC13.8.3',
        '100%先征后退',
         1.0,
         '',
         '17%,16%,11%,10%,13%,9%,6%,5%,4%,3%,1.5%,0%,1%,15%',
         '1.开票申请可以添加此优惠政策\n2.此优惠政策支持税率:17%13%11%6%5%4%3%0%',
         '暂不支持0%',
         '']

        '''
        # 连接数据库
        mysql_conn = OperateMysql(self.config_file)
        (cursor, db) = mysql_conn.get_attr()

        # 读取excel数据
        datas = self._read_excel("yhzc_gz")
        id = int(self.step)
        for data in datas:
            temp = copy.deepcopy(self.template)
            data_desc = data[1]
            temp['data_sort'] = "发票优惠政策规则校验"
            temp['mx_yhzcbs'] = int(data[2])
            temp['mx_lslbz'] = data[3]
            temp['mx_zzstsgl'] = data[1]
            temp['mx_hsbz'] = 0
            temp['mx_kce'] = None
            temp['mx_spbm'] = "1010101070000000000"
            slv_list = data[4].replace(',', ',').split(",")
            for slv in slv_list:
                flag = '-F'
                if slv in data[5]:
                    flag = '-T'
                temp['mx_slv'] = self.percent_2_float(slv)
                temp['mx_xmje'] = 10000
                temp['mx_xmdj'] = 10000
                temp['mx_xmsl'] = 1
                temp['mx_se'] = self.percent_2_float(slv) * 10000
                temp['hjje'] = temp['mx_xmje']
                temp['hjse'] = temp['mx_se']
                temp['jshj'] = temp['hjse'] + temp['hjje']
                temp['data_id'] = id
                temp['data_desc'] = data_desc + "-税率为" + slv + flag
                id += 1
                self.logger.debug(temp)
                yhzc_table = Yhzc_GZ(self.logger, **temp)
                yhzc_table.insert(cursor, db)
                self.logger.warning('data_id:{}--->成功'.format(temp['data_id']))
            id += 12  # 用例数据之间留12个位置
        mysql_conn.close()
Ejemplo n.º 6
0
 def generate_case_main(self):
     datas = self.generate_request_json(self.temp)
     file_path = os.path.join(PATH, 'data', 'cases', self.case_excel)
     common_datas = self._read_common_sheet(file_path)  # 1.从excel加载公共数据
     step = int(common_datas["step"])
     mysql = OperateMysql(self.config_file, self.logger)  # 2.连接数据库
     # for temp_data in temp_datas:
     for data in datas:
         desc, temp_copy = data
         self.logger.debug(desc)
         self.logger.debug(temp_copy)
         case = self.update_case(common_datas, step, temp_copy,
                                 desc)  # 3.将temp加入到case中,并修改case里其他值
         mysql.insert_sql(case)  # 4.case插入到数据库中
         step += 2
     mysql.close()
Ejemplo n.º 7
0
class Generator_Data_FPQZ(Generator):
    # 从datas_fp读取数据生成发票签章用例
    def __init__(self, class_list):
        self.class_list = class_list
        super().__init__()  # 初始化父类

    def get_keys(self):
        config_file = os.path.join(PATH, 'config', 'data_generator.ini')
        self.mysql_conn = OperateMysql(config_file)
        (cursor, db) = self.mysql_conn.get_dict_cursor()
        values = list()
        for class_object in self.class_list:
            sql_object = class_object(None)
            values.extend(sql_object.query(cursor))
        # [{'data_id': 100, 'data_sort': '手机号规则校验', 'data_desc': '前后空格-F', 'sj': ' 158585888 '},]
        return values

    def generate_case_main(self):
        '''从数据库datas_fp中读取数据生成测试脚本'''
        values = self.get_keys()
        self.mysql_conn.close()
        case_path = os.path.join(PATH, "data", 'cases', self.case_excel)
        common_datas = self._read_common_sheet(case_path)  # 1.从excel加载公共数据
        step = int(common_datas["step"])
        mysql = OperateMysql(self.config_file, self.logger)  # 3.连接数据库
        for data in values:
            fpqz = Interface_FPQZ(None, **data)
            data_dict = fpqz.interface_dict()
            # {'gmf_sj': '15610 07697'}
            desc = data['data_sort'] + data['data_desc']
            temp_copy = copy.deepcopy(self.temp)
            self.update_temp(temp_copy, **data_dict)  # 5.循环keys,并修改对应模板temp里的值
            self.update_temp_other(temp_copy, step,
                                   common_datas)  # 6.修改模板temp里的其他值(如fphm)
            self.logger.debug(('---update-----', temp_copy))
            case = self.update_case(common_datas, step, temp_copy,
                                    desc)  # 7.将temp加入到case中,并修改case里其他值
            mysql.insert_sql(case)  # 8.case插入到数据库中
            step += 1
        mysql.close()

    def update_temp(self, temp, mx_key=None, *args, **kwargs):
        if not mx_key:
            temp = search_dict(temp, **kwargs)
        else:
            pass
Ejemplo n.º 8
0
 def generate_case(self, flag):
     '''
     生成单个字段的测试用例
     temp里的值在update_temp里修改,
     请求sql数据库(除request_sql_param外)全部在此函数里修改
     :param flag: 1表示生成single用例  2表示生成multiple用例
     :no return: 直接把结果写入到数据库
     '''
     if flag == 1:
         case_path = os.path.join(self.generate_path, "data",
                                  self.single_case_excel)
     elif flag == 2:
         case_path = os.path.join(self.generate_path, "data",
                                  self.multiple_case_excel)
     else:
         raise NotImplementedError
     # cases对应mysql一条用例,cases为字典类型、key与mysql里的值相同
     cases, temp_changes = self._read_common_sheet(case_path)
     datas = self._read_case_sheet(case_path)
     self.logger.debug(["{}-type:{}".format(cases, type(cases))])
     self.logger.debug(["{}-type:{}".format(datas, type(datas))])
     # 连接mysql数据库
     mysql = OperateMysql(self.logger)
     # 定义初始step
     step = int(cases["step"])
     for data in datas:
         # row 为case sheet第一行数据的列表
         temp_one = copy.deepcopy(self.temp)
         requests = self.generate_request_json(temp_one, data)
         for request in requests:
             # requests的结构如下:
             # (用例描述,request_sql_param的值),用的yield返回,调用一次返回一条
             self.logger.debug(["request:", request])
             step += 1
             case = self.update_cases(cases, step, request, temp_changes)
             mysql.insert_sql(case)
         step += 10
     mysql.close()
Ejemplo n.º 9
0
 def generate_case_main(self):
     '''从数据库datas_fp中读取数据生成测试脚本'''
     values = self.get_keys()
     self.mysql_conn.close()
     case_path = os.path.join(PATH, "data", 'cases', self.case_excel)
     common_datas = self._read_common_sheet(case_path)  # 1.从excel加载公共数据
     step = int(common_datas["step"])
     mysql = OperateMysql(self.config_file, self.logger)  # 3.连接数据库
     for data in values:
         fpqz = Interface_FPQZ(None, **data)
         data_dict = fpqz.interface_dict()
         # {'gmf_sj': '15610 07697'}
         desc = data['data_sort'] + data['data_desc']
         temp_copy = copy.deepcopy(self.temp)
         self.update_temp(temp_copy, **data_dict)  # 5.循环keys,并修改对应模板temp里的值
         self.update_temp_other(temp_copy, step,
                                common_datas)  # 6.修改模板temp里的其他值(如fphm)
         self.logger.debug(('---update-----', temp_copy))
         case = self.update_case(common_datas, step, temp_copy,
                                 desc)  # 7.将temp加入到case中,并修改case里其他值
         mysql.insert_sql(case)  # 8.case插入到数据库中
         step += 1
     mysql.close()