# -*- coding:utf-8 -*-
import random
import string
class RequestDataProcessing(object):
# 接口请求参数随机生成新数据,解析传入的字典,把每个字段随机生成新的数据
def __init__(self):
self.__reqDicData = {}
def setReqDicData(self, data):
if isinstance(data, dict):
self.__reqDicData = data
else:
self.__reqDicData = {}
def getReqDicData(self):
return self.__reqDicData
def randomGenerationReqDicData(self, data):
# 处理字典数据的生成,传入模板字典,自动为每个字段随机生成新的数据
reqDicData = None
if isinstance(data, list):
self.randomGenerationReqListData(data)
if isinstance(data, dict):
reqDicData = data
for key in data.keys():
value = data.get(key)
if isinstance(value, dict):
reqDicData[key] = self.randomGenerationReqDicData(value)
if isinstance(value, list):
reqDicData[key] = self.randomGenerationReqListData(value)
if isinstance(value, str):
reqDicData[key] = self.randomGenerationString(len(value), value=value)
if isinstance(value, int):
reqDicData[key] = self.randomGenerationInteger(len(str(value)), value=value)
if isinstance(value, long):
reqDicData[key] = self.randomGenerationLong(len(str(value)), value=value)
return reqDicData
def randomGenerationReqListData(self, data):
# 处理列表数据的生成,传入模板列表,自动为每个字段随机生成新的数据
reqListData = None
if isinstance(data, dict):
self.randomGenerationReqDicData(data)
if isinstance(data, list):
reqListData = data
for value in reqListData:
index = reqListData.index(value)
if isinstance(value, dict):
reqListData[index] = self.randomGenerationReqDicData(value)
if isinstance(value, str):
reqListData[index] = self.randomGenerationString(len(value), value=value)
if isinstance(value, int):
reqListData[index] = self.randomGenerationInteger(len(str(value)), value=value)
if isinstance(value, long):
reqListData[index] = self.randomGenerationLong(len(str(value)), value=value)
return reqListData
@staticmethod
def randomGenerationString(number, value=None):
# 生成随机字符串(从a-zA-Z0-9)
if value is None:
return ''.join(random.sample(string.ascii_letters + string.digits, int(number)))
if isinstance(value, str):
return ''.join(random.sample(string.ascii_letters + string.digits, int(number)))
@staticmethod
def randomGenerationSpecialCharacters(number, value=None):
# 生成随机特殊字符
alphabet = '!@#$%^&*()!@#$%^&*()!@#$%^&*()'
if value is None:
return ''.join(random.sample(alphabet, int(number)))
if isinstance(value, str):
return ''.join(random.sample(alphabet, int(number)))
@staticmethod
def randomGenerationLong(number, value=None):
# 生成随机整型字符
alphabet = '12345678901234567890123456789'
if value is None:
return long(''.join(random.sample(alphabet, int(number))))
if isinstance(value, long):
return long(''.join(random.sample(alphabet, int(number))))
@staticmethod
def randomGenerationInteger(number, value=None):
# 生成随机整型字符
alphabet = '12345678901234567890123456789'
if value is None:
return int(''.join(random.sample(alphabet, int(number))))
if isinstance(value, int):
return int(''.join(random.sample(alphabet, int(number))))