Locust’s default HTTP client uses python-requests. It provides a nice API that many python developers are familiar with, and is very well-maintained. But if you’re planning to run tests with very high throughput and have limited hardware for running Locust, it is sometimes not efficient enough.
Because of this, Locust also comes with FastHttpUser which uses geventhttpclient instead. It provides a very similar API and uses significantly less CPU time, sometimes increasing the maximum number of requests per second on a given hardware by as much as 5x-6x.
#使用HttpUser
from locust import User,HttpUser,task,constant
class MyUserBe(HttpUser):
wait_time = constant(1)
@task
def my_task1(self):
with self.client.get("https://www.baidu.com/", catch_response=True) as res:
if res.status_code == 200:
print("成功")
else:
print("失败")
class MyUser(User):
wait_time = constant(1)
tasks = [MyUserBe]
================================================================================
#使用FastHttpUser
from locust.contrib.fasthttp import FastHttpUser
from locust import User,HttpUser,task,constant
class MyUserBe(FastHttpUser):
wait_time = constant(1)
@task
def my_task1(self):
with self.client.get("https://www.baidu.com/", catch_response=True) as res:
if res.status_code == 200:
print("成功")
else:
print("失败")
class MyUser(User):
wait_time = constant(1)
tasks = [MyUserBe]