# -*-coding:utf-8-*- import requests import random import json import time import threading class MyThread(threading.Thread): def __init__(self, func, args, name=''): threading.Thread.__init__(self) self.name = name self.func = func self.args = args def run(self): self.result = self.func(self.args) def get_result(self): try: return self.result except Exception: return None url = 'http://106.14.187.241:5555/elab-marketing-user//zhidi/activity/concurrent/turntableActivity' headers_2 = {'content-type': "application/json", 'Authorization': 'APP appid = 4abf1a,token = 9480295ab2e2eddb8', 'dsNo': 'source2'} def loop(nloop): response = requests.post(url, json=nloop, headers=headers_2) return response.text # 15 def main(): result_list = [] threads = [] people = 200 times = range(people) for i in times: params = { "actionType": 1, "activityId": 8939, "brandId": 1, "customerId": 223222 + random.randint(5000, 9000), "houseId": 10110, "mobile": "15622363" + str(random.randint(1000, 9999)), "shareActivityId": 0, "uuid": "" } t = MyThread(loop, params, ' 第' + str(i + range(i + 1)[0]) + '线程') threads.append(t) for i in range(people): # start threads 此处并不会执行线程,而是将任务分发到每个线程,同步线程。等同步完成后再开始执行start方法 threads[i].start() for i in range(people): # jion()方法等待线程完成 threads[i].join() result = threads[i].get_result() result_list.append(json.loads(result)) return result_list def analysis_result(result_list): # 抽奖结果统计 dict_data = {} # 中奖 prize_count = 0 # 谢谢参与 think_prize = 0 # 抽奖失败 failed_prize = 0 for x in result_list: success = x['success'] if success is True: # 抽奖成功,统计具体的抽奖情况 single = x['single'] name = single['name'] if name in dict_data.keys(): count = dict_data[name] dict_data[name] = count + 1 else: dict_data[name] = 1 thinks = single['thinks'] if str(thinks) == str(1): think_prize += 1 else: prize_count += 1 else: # 抽奖失败统计 failed_prize += 1 all = prize_count + think_prize for key in dict_data.keys(): count = dict_data[key] if all > 0: print(key + ': ' + str(count), ",占比: " + str(count/all)) else: print(key + ': ' + str(count)) print('------------,参与抽奖人数:' + str(all)) print("中奖:" + str(prize_count), ",中奖率:" + str(prize_count / all)) print("谢谢参与; " + str(think_prize), ",谢谢参与率: " + str(think_prize / all)) # print("抽奖失败:" + str(failed_prize), ",抽奖失败率; " + str(failed_prize / len(result_list))) if __name__ == '__main__': result = main() analysis_result(result)