目录
需求:
最近项目到了一定阶段了,需要搞测试。
要求添加一定数量的设备,和定时任务。大概能有百十来个。
那么看了大概的流程,基本上就是往服务器提交post请求就可以实现。
那么我们开始吧。
包含库
# http请求库,用于get和post请求
import requests
# json的库,用来发送和解析json数据
import json
# 别发送太快,用来延时
import time
准备数据
# 准备数据
# Authorization 和 Cookie 经常变动,所以提出来
Authorization = 'Bearer eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjU1ZTRlODRlLTM4YmItNGIzZC04OWM2LTAzZjUxOTkzYWFmOCJ9.afDD6YhU8j7imQHqyy9mEukaZkFGkDrvTgBf0_hNh-VOP4W-Zf8TQLJ-3VWpYvUViMGex29DhYAbfQ4zU5ua6A'
Cookie = 'Admin-Token=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjU1ZTRlODRlLTM4YmItNGIzZC04OWM2LTAzZjUxOTkzYWFmOCJ9.afDD6YhU8j7imQHqyy9mEukaZkFGkDrvTgBf0_hNh-VOP4W-Zf8TQLJ-3VWpYvUViMGex29DhYAbfQ4zU5ua6A; sidebarStatus=0'
# 很离谱NULL竟然提示我未定义
NULL=""
# 定义一个时和分,先随便初始化一哈
hour = 19
min = 30
# 获取你想要的开始时间和时间间隔
def getinputrule():
global start_h
global inv_m
start_h = input("输入起始的时间,时")
inv_m = input("输入间隔的时间,分钟")
# post请求的链接
url = "http://139.196.207.98/prod-api/tms/task/group";
# post请求需要的json格式的数据
data = {
"id": NULL,
"manageId": "217",
"taskType": "cycle",
"startTime": str(hour)+":"+str(min)+":00",
"taskCycle": "1,3,2,4,5,6,7",
"roomGkPath": "8,21,22,23,24|8,21,22,23,25|8,21,22,23,26",
"createTime": NULL,
"updateTime": NULL,
"createBy": NULL,
"updateBy": NULL
}
# 设置请求头 Authorization是登录认证,Cookie是辨别你身份的这两个每次登录都是会变的
headers = {
'Accept':'application/json, text/plain, */*',
'Accept-Encoding':'gzip, deflate',
'Accept-Language':'zh-CN,zh;q=0.9,en;q=0.8',
'Authorization':Authorization,
'Connection':'keep-alive',
'Content-Length':'209',
'Content-type': 'application/json;charset=UTF-8',
'Cookie':Cookie,
'Host':'139.196.207.98',
'Origin':'http://139.196.207.98',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
}
函数
# 把数字转为时间并前补0
def timeformcheck(time):
time_str = str(time)
if len(time_str) < 2 : time_str = '0'+time_str
return time_str
# 打印拼接的串
def printtimelist():
# 从开始时间到24小时
for h in range(int(start_h),24):
# 从0分钟开始 每隔你输入的时间间隔自增
for m in range(0,60,int(inv_m)):
data["startTime"]=timeformcheck(h)+":"+timeformcheck(m)+":00"
if m > 60 : break
print(data["startTime"])
# 发送post请求
def sendpost():
# 从开始时间到24小时
for h in range(int(start_h),24):
# 从0分钟开始 每隔你输入的时间间隔自增
for m in range(0,60,int(inv_m)):
data["startTime"]=timeformcheck(h)+":"+timeformcheck(m)+":00"
if m > 60 : break
print("开始发送:"+data["startTime"]+"\n")
# 发送POST请求
response = requests.post(url, data=json.dumps(data), headers=headers)
# 打印响应结果
print(response.content)
time.sleep(1)
发送
# 开始吧
step = 0
while(1):
# 第一步,获取输入的开始时间和时间间隔
if step == 0:
getinputrule()
if start_h=="" or (int(start_h)<0) or (int(start_h)>24):
print("您输入的数据是错误的!请输入0-24")
step=0
continue
else:
if inv_m=="" or (int(inv_m)<0) or (int(inv_m)>60):
print("您输入的数据是错误的!请输入0-60")
step=0
continue
else:
step+=1
# 第二步,打印出组合的队列
if step == 1:
printtimelist()
step+=1
cmd = input("是否继续?输入N退出。其他任意键继续!")
if cmd == "N" or cmd == "n":
break
# 第三步,发送
if step == 2:
sendpost()
step+=1
# 第四步,是否继续
if step == 3:
cmd = input("\n发送完毕!是否继续?N/n退出,任意键继续\n")
if cmd == "N" or cmd == "n":
break
else:
step=0
完整代码
###########################---1---###################################
# http请求库,用于get和post请求
import requests
# json的库,用来发送和解析json数据
import json
# 别发送太快,用来延时
import time
###########################---2---###################################
# 准备数据
# Authorization 和 Cookie 经常变动,所以提出来
Authorization = 'Bearer eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjU1ZTRlODRlLTM4YmItNGIzZC04OWM2LTAzZjUxOTkzYWFmOCJ9.afDD6YhU8j7imQHqyy9mEukaZkFGkDrvTgBf0_hNh-VOP4W-Zf8TQLJ-3VWpYvUViMGex29DhYAbfQ4zU5ua6A'
Cookie = 'Admin-Token=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjU1ZTRlODRlLTM4YmItNGIzZC04OWM2LTAzZjUxOTkzYWFmOCJ9.afDD6YhU8j7imQHqyy9mEukaZkFGkDrvTgBf0_hNh-VOP4W-Zf8TQLJ-3VWpYvUViMGex29DhYAbfQ4zU5ua6A; sidebarStatus=0'
# 很离谱NULL竟然提示我未定义
NULL=""
# 定义一个时和分,先随便初始化一哈
hour = 19
min = 30
# 获取你想要的开始时间和时间间隔
def getinputrule():
global start_h
global inv_m
start_h = input("输入起始的时间,时")
inv_m = input("输入间隔的时间,分钟")
# post请求的链接
url = "http://139.196.207.98/prod-api/tms/task/group";
# post请求需要的json格式的数据
data = {
"id": NULL,
"manageId": "217",
"taskType": "cycle",
"startTime": str(hour)+":"+str(min)+":00",
"taskCycle": "1,3,2,4,5,6,7",
"roomGkPath": "8,21,22,23,24|8,21,22,23,25|8,21,22,23,26",
"createTime": NULL,
"updateTime": NULL,
"createBy": NULL,
"updateBy": NULL
}
# 设置请求头 Authorization是登录认证,Cookie是辨别你身份的这两个每次登录都是会变的
headers = {
'Accept':'application/json, text/plain, */*',
'Accept-Encoding':'gzip, deflate',
'Accept-Language':'zh-CN,zh;q=0.9,en;q=0.8',
'Authorization':Authorization,
'Connection':'keep-alive',
'Content-Length':'209',
'Content-type': 'application/json;charset=UTF-8',
'Cookie':Cookie,
'Host':'139.196.207.98',
'Origin':'http://139.196.207.98',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
}
##########################---3---#####################################
# 把数字转为时间并前补0
def timeformcheck(time):
time_str = str(time)
if len(time_str) < 2 : time_str = '0'+time_str
return time_str
# 打印拼接的串
def printtimelist():
# 从开始时间到24小时
for h in range(int(start_h),24):
# 从0分钟开始 每隔你输入的时间间隔自增
for m in range(0,60,int(inv_m)):
data["startTime"]=timeformcheck(h)+":"+timeformcheck(m)+":00"
if m > 60 : break
print(data["startTime"])
# 发送post请求
def sendpost():
# 从开始时间到24小时
for h in range(int(start_h),24):
# 从0分钟开始 每隔你输入的时间间隔自增
for m in range(0,60,int(inv_m)):
data["startTime"]=timeformcheck(h)+":"+timeformcheck(m)+":00"
if m > 60 : break
print("开始发送:"+data["startTime"]+"\n")
# 发送POST请求
response = requests.post(url, data=json.dumps(data), headers=headers)
# 打印响应结果
print(response.content)
time.sleep(1)
##########################---4---#####################################
# 开始吧
step = 0
while(1):
# 第一步,获取输入的开始时间和时间间隔
if step == 0:
getinputrule()
if start_h=="" or (int(start_h)<0) or (int(start_h)>24):
print("您输入的数据是错误的!请输入0-24")
step=0
continue
else:
if inv_m=="" or (int(inv_m)<0) or (int(inv_m)>60):
print("您输入的数据是错误的!请输入0-60")
step=0
continue
else:
step+=1
# 第二步,打印出组合的队列
if step == 1:
printtimelist()
step+=1
cmd = input("是否继续?输入N退出。其他任意键继续!")
if cmd == "N" or cmd == "n":
break
# 第三步,发送
if step == 2:
sendpost()
step+=1
# 第四步,是否继续
if step == 3:
cmd = input("\n发送完毕!是否继续?N/n退出,任意键继续\n")
if cmd == "N" or cmd == "n":
break
else:
step=0