老规矩,先贴代码:
class HttpUser(User):
abstract = True
client = None
def __init__(self, *args, **kwargs):
super(HttpUser, self).__init__(*args, **kwargs)
if self.host is None:
raise LocustError("You must specify the base host. Either in the host attribute in the User class, or on the command line using the --host option.")
session = HttpSession(
base_url=self.host,
request_success=self.environment.events.request_success,
request_failure=self.environment.events.request_failure,
)
session.trust_env = False
self.client = session
比较简单,无非就是继承了User的各个属性,这里把类变量client清空了,不再是NoClientWarningRaiser()了。
其他都是继续沿用,只是实例化的时候client变成了session。这个时候第一个关注点就是,实例化的时候一定要有host属性。
我们先来看看host属性是如何得到的:
首先是从User去取,在实际过程中ÿ