利用python多线程模块实现模拟接口并发

import requests
import json
import threading
import time
import uuid


class postrequests():
def __init__(self):
# UUID模块:
# 产生UUID,生成唯一标识,uuid1:基于时间戳(由 MAC 地址(主机物理地址)、当前时间戳、随机数生成。可以保证全球范围内的唯一性:但 MAC 的使用同时带来安全性问题,局域网中可以使用 IP 来代替MAC)
# uuid.uuid2() -- 基于分布式计算环境DCE(Python中没有这个函数)
# uuid.uuid3(namespace, name) -- 基于名字的MD5散列值:通过计算名字和命名空间的MD5散列值得到,保证了同一命名空间中不同名字的唯一性,
# uuid.uuid4() -- 基于随机数:由伪随机数得到,有一定的重复概率,该概率可以计算出来
# uuid.uuid5() -- 基于名字的SHA-1散列值:算法与uuid3相同,不同的是使用 Secure Hash Algorithm 1 算法
# 首先,Python中没有基于 DCE 的,所以uuid2可以忽略;
# 其次,uuid4存在概率性重复,由无映射性,最好不用;
# 再次,若在Global的分布式计算环境下,最好用uuid1;
# 最后,若有名字的唯一性要求,最好用uuid3或uuid5。
u = uuid.uuid1()
# 产生订单编号
orderID = 'TEST' + u.hex
api_host='192.168.10.59:8763'
self.url = 'http://'+api_host+'/ms-fahuobao-json-view-temporary/FhbOrder/findFhbOrderAll?t=1542937095327'
self.headers = {'content-type': 'application/json',
'token':'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyLW5hbWUiOiIxNTAyMzYyMTk5OSIsInVzZXItcGFyYW0iOiJ7XCJ1c2VyU3lzdGVtXCI6W1wiZmhiTWFudFwiLFwic3RvcmVXZWJcIl0sXCJ1c2VyUGhvbmVcIjpcIjE1MDIzNjIxOTk5XCIsXCJwcm9qZWN0VHlwZVwiOlwiZmhiTWFudFwifSIsInVzZXItaWQiOiIxODIzNDYxYy04YTQwLTQ4MDYtOTUwNC0xZGI3ZjMzN2EwZmYiLCJpc3MiOiIxODIzNDYxYy04YTQwLTQ4MDYtOTUwNC0xZGI3ZjMzN2EwZmYiLCJ1c2VyLWNvZGUiOiIxNTAyMzYyMTk5OSIsImV4cCI6MTU0Mjk1MTE0MywiaWF0IjoxNTQyOTM2NzQzfQ.W3hd12C_d3h06WNVtctT_OD6B8g1qGivjv9m7fT-iis'}
def post(self):
try:
r = requests.request('get',self.url, headers=self.headers)
response=r.json()
orderNo=response['data'][0]['orderNo']
print(orderNo)
except Exception as e:
print(e)


def kquan_bf():
login = postrequests()
return login.post()


try:
i = 0
# 开启线程数目
tasks_number = 10
print('测试启动')
time1 = time.clock()
while i < tasks_number:
t = threading.Thread(target=kquan_bf)
t.start()
i += 1
time2 = time.clock()
times = time2 - time1
print(times / tasks_number)
except Exception as e:
print(e)

 

转载于:https://www.cnblogs.com/qtclm/p/10005857.html

你可能感兴趣的:(利用python多线程模块实现模拟接口并发)