我正在使用python请求来自动执行各种API测试。我在几个场合注意到的是,当我“提升”我的脚本并尝试执行大量测试时,我的应用程序卡住了,我不知道在哪里检查发生了什么。
在下面的代码中,我有3种方法。 testSingleNewLicense()只是一种调用单一许可证的方法,并被提取出来在这里发布一个问题(因为我不能与你共享我的所有代码和许可证)
testURL()实际上正在执行请求,我试图实现try / except部分,因为我以为我会在这里得到一些东西(不确定该部分是否真的有效)
字符串ResponseToJson()再次,只是化妆品打印出正确的结果。
当我在代码的主要部分放入while / except时,我希望我的代码运行一段时间(浸泡测试),但它随机停止。它在“testURL()”中打印(url)后停止。
有时经过4次运行,有时候是21,7,9,32 ......(主要是打印(i))
我错过了什么?当它“无所事事”时,我怎么能看到python脚本正在做什么?
我正在使用PyCharm / Python 3
try:
i=0
while True:
testSingleNewLicense()
print (i)
i+=1
except KeyboardInterrupt:
exit
def testSingleNewLicense():
sortedJsonTest = stringResponseToJson(urlLive3)
print ("FutureLive: " + sortedJsonTest)
def testUrl(url, headers="", username="", password=""):
print ("Tested Url:")
print (url)
try:
print("pre")
#response = requests.get("http://www.stojakovic.net", timeout=0.004)
response = requests.get(url,headers=headers, timeout=0.85)
print("post")
except requests.exceptions.RequestException as e:
print ("Me :" + str(e))
except requests.exceptions.ConnectTimeout as e:
print ("Too slow!")
print(response.request.headers)
print ("resp:" + str(response.status_code))
print (response.headers)
if (response.status_code != 200):
print ("Not authorized", + response.status_code)
return response.status_code, response.text
else:
return response.status_code, response.text
pass
def stringResponseToJson(url, headers=""):
code,content = testUrl(url, headers)
if (code!=200):return content
jsonT = json.loads(content)
return json.dumps(jsonT,sort_keys=True)