def get_random_size_list(my_list, list_size=None): ''' 从一个list里面,生成随机大小的子集list; 比如: [2,5,7,9] 可能随机的结果是 [2,5], 也可能是[5,7,9] :param my_list: 原始list :param list_size: 期望拿到的输出的list 长度,必须要小于原始list长度 :return: ''' if list_size is not None: if list_size > len(my_list): raise Exception("期望得到的list_size,超过了当前list 最大值 - {}!!!".format( len(list))) how_many = list_size else: if len(my_list) < 1: LogUtil.error("当前应该有错误,需要看一下 this_list: {}".format( str(my_list))) raise Exception(u" 期望de this_list长度小于1!!!") how_many = random.randint(1, len(my_list)) tmp_list = deepcopy(my_list) final_list = [] for i in xrange(how_many): rand_item = tmp_list[random.randint(1, len(tmp_list)) - 1] final_list.append(rand_item) tmp_list.pop(tmp_list.index(rand_item)) return final_list
def address(self): if self.rpc_host not in VALID_TEST_HOST: raise Exception( "测试环境可用机器列表: {}, 不包含 当前请求的rpc host: {}\n " " -- 如果有例外,local 使用时候,可以屏蔽这里\n" "['注意!!!']不可以把线上ip push上去,自动化干的事情,谁也保不齐!!!".format( VALID_TEST_HOST, self.rpc_host)) if self.rpc_port and self.rpc_port: return "{}:{}".format(self.rpc_host, self.rpc_port) else: LogUtil.error(u'本次没有指定rpc的IP和端口,本次请求会打到线上!') return
def log_response_details(response_body): LogUtil.info( "-----[RESPONSE] details below : ----------------------------") LogUtil.info('Returned code: {}'.format(response_body.status_code)) if response_body.status_code != 200: LogUtil.info("[WARN]Return code is not 200!!!! but {} .".format( response_body.status_code)) err_msg = response_body.text try: json_body = response_body.json() s = str(json_body).replace('u\'', '\'') LogUtil.info(' Response: ') LogUtil.info(s.decode('unicode-escape')) err_msg = s.decode('unicode-escape') except Exception as e: LogUtil.error('Response raw data: ') LogUtil.exception(err_msg, e) LogUtil.error( u"\n【FATAL ERROR】检查请求细节是否出错,或者服务器是否有问题\n ---->> {}". format(err_msg)) else: try: json_body = response_body.json() s = str(json_body).replace('u\'', '\'') LogUtil.info(' Response: ') LogUtil.info(s.decode('unicode-escape')) except: LogUtil.info(u' Response raw data: \n{}'.format( response_body.text)) raise Exception("http请求的返回不是Json格式,检查服务器是否有问题") LogUtil.info( "------------------------------------------------------------------------" )