最近公司搞了个抽奖的活动,开发完成之后需要测试一下中奖率是否准确。本来可以用Jmeter来测试,但我是一名开发人员并没有安装Jmeter,所以就想着写个python脚本测试。考虑到后续可能还会有类似的测试需求就弄了个公共的。
代码
import requests
data = {
"times": 100, # 请求次数
"method": "POST", # GET or POST
"url": "http://xxx.com/xxx",
"cookies": {
"PHPSESSID": "cnguud4r1hmn3passs906odp21"
},
"proxy": {
# 代理设置
},
"header": {
"Content-Type": "application/json", # application/x-www-form-urlencoded
"user-agent": "python-mock/0.0.1",
"token": ""
},
"body": {
# 请求参数
}
}
index = 1
while index <= data["times"]:
if data["method"] == "GET":
response = requests.get(
data["url"], params=data["body"], headers=data["header"], cookies=data["cookies"], proxies=data["proxy"])
elif data["header"]["Content-Type"] == "application/json":
response = requests.post(
data["url"], json=data["body"], headers=data["header"], cookies=data["cookies"], proxies=data["proxy"])
else :
response = requests.post(
data["url"], data=data["body"], headers=data["header"], cookies=data["cookies"], proxies=data["proxy"])
if response.status_code == 200:
result = response.content.decode('utf-8')
else:
result = "访问失败"
print("第 %s 次执行:%s" % (index, result))
print()
index += 1
备注:由于需求是测试中奖概率,所以写的是顺序请求,并不会有并发的情况出现。如果需要测试并发可以使用进程或者线程。