软件测试的工作中,是有非常多的场景需要进行压力测试的,本文使用Python的requests和concurrent库实现一个简单的并发压力压力demo,希望对大家有所帮助!
常量设置
# 目标登录接口的URL
url = 'http://localhost:5000/login'
# 测试用的用户名和密码
credential = {"username": "admin", "password": "password123"}
# 请求数量
request_count = 100
登录请求
def loginAttempt():
try:
# 创建请求头
headers = {'Content-Type': 'application/json'}
# 发送POST请求
response = requests.post(url, headers=headers, data=json.dumps(credential))
# 返回响应的状态码和文本
return (response.status_code, response.text)
except requests.exceptions.RequestException as e:
# 返回异常信息
return (None, str(e))
并发执行
def main():
# 创建一个线程池
with ThreadPoolExecutor(max_workers=request_count) as executor:
# 使用线程池发送并发请求
futures = [executor.submit(loginAttempt) for _ in range(request_count)]
# 等待所有请求完成,并打印结果
results = []
for future in as_completed(futures):
results.append(future.result())
# 打印所有请求的结果
for status_code, text in results:
print(f"Status Code: {status_code}, Response: {text}")