需求:
最近项目到了一定阶段了,需要搞测试。
要求添加一定数量的设备,和定时任务。大概能有百十来个。
那么看了大概的流程,基本上就是往服务器提交 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 |