Locust的API介绍-----HttpSession类和Response类

来源:互联网 发布:sql入门经典第5版 编辑:程序博客网 时间:2024/06/02 02:38
HttpSession类

class HttpSession(base_url, *args, **kwargs)

用于执行Web请求并保持cookie的类(以便能够登录和退出网站)。记录每个请求,以便Locust显示统计信息。


这是python-request的 requests.Session类的一个扩展的版本,工作原理也差不多相同。然而,发送请求(get,post,delete,put,head,options,patch,request)的方法,现在使用的URL只是部分的url参数,URL的host部分将由Locust类的host参数提供,当然也可以在Locust启动命令中添加。


每个提出请求的方法还需要两个额外的可选参数,这些参数是Locust特定的,并且不存在于python请求中。这些是:


   参数:

  • name - (可选)可以指定在Locust统计信息中用作标签的参数,而不是URL路径。这可以用于将请求的不同URL分组到Locust统计信息中的单个条目中。
  • catch_response - (可选)布尔参数,如果设置,可以用于发出请求,返回上下文管理器作为with语句的参数。这将允许根据响应的内容将请求标记为失败,即使响应代码正常(2xx)。相反的工作,可以使用catch_response来捕获请求,然后将其标记为成功,即使响应代码不是(即500或404)。


delete(url,** kwargs )
发送DELETE请求。返回Response对象。


参数:
url - 新请求的URL 。
** kwargs - 请求的可选参数。
返回类型:
requests.Response




get(url,** kwargs )
发送GET请求。返回Response对象。


参数:
url - 新请求的URL 。
** kwargs - 请求的可选参数。
返回类型:
requests.Response




head(url,** kwargs )
发送HEAD请求。返回Response对象。


参数:
url - 新请求的URL 。
** kwargs - 请求的可选参数。
返回类型:
requests.Response




options(url,** kwargs )
发送OPTIONS请求。返回Response对象。


参数:
url - 新请求的URL 。
** kwargs - 请求的可选参数。
返回类型:
requests.Response




patch(url,data = None,** kwargs )
发送PATCH请求。返回Response对象。


参数:
url - 新请求的URL 。
data - (可选)发送请求的字典,字节或类文件对象。
** kwargs - 请求的可选参数。
返回类型:
requests.Response




post(url,data = None,json = None,** kwargs )
发送POST请求。返回Response对象。


参数:
url - 新请求的URL 。
data - (可选)发送请求的字典,字节或类文件对象。
json - (可选)请求的发送的json。
** kwargs - 请求的可选参数。
返回类型:
requests.Response




put(url,data = None,** kwargs )
发送PUT请求。返回Response对象。


参数:
url - 新请求的URL 。
data - (可选)发送请求的字典,字节或类文件对象。
** kwargs - 请求的可选参数。
返回类型:
requests.Response




request(method,url,name = None,catch_response = False,** kwargs )
构造并发送requests.Request。返回requests.Response对象。


参数:

  • method - 新请求的方法。
  • url - 新请求的URL 。
  • name - (可选)可以指定在Locust统计信息中用作标签的参数,而不是URL路径。这可以用于将请求的不同URL分组到Locust统计信息中的单个条目中。
  • catch_response - (可选)布尔参数,如果设置,可以用于发出请求,返回上下文管理器作为with语句的参数。这将允许根据响应的内容将请求标记为失败,即使响应代码正常(2xx)。相反的工作,可以使用catch_response来捕获请求,然后将其标记为成功,即使响应代码不是(即500或404)。
  • params - (可选)要在查询字符串中发送的字典或字节Request。
  • data - (可选)发送请求的字典,字节或类文件对象。
  • headers - (可选)要发送的HTTP标题字典Request。
  • cookies - (可选)要发送的Dict或CookieJar对象Request。
  • files - (可选)多部分编码上传的字典。'filename': file-like-objects
  • auth - (可选)Auth元组或可以启用基本/摘要/自定义HTTP验证。
  • timeout(float 或tuple) - (可选)等待服务器在放弃之前发送数据,浮点数或(连接超时,读取超时)元组等待多长时间。
  • allow_redirects(bool) - (可选)默认设置为True。
  • proxies - (可选)字典映射协议到代理的URL。
  • stream - (可选)是否立即下载响应内容。默认为False。
  • verify - (可选),如果TrueSSL证书将被验证。还可以提供CA_BUNDLE路径。
  • cert - (可选)如果String,ssl客户端证书文件(.pem)的路径。如果Tuple,('cert','key')对。



Response类

这个类实际上位于python-requests库中,因为这就是Locust用来生成HTTP请求的内容,但它包含在locust的API文档中,因为它在编写locust负载测试时非常重要。您还可以在请求文档中查看 Response类 。


类 Response
该Response对象包含服务器对HTTP请求的响应。


apparent_encoding
响应的编码,由chardet库提供。


close()
将连接释放。一旦调用此方法,raw不能再次访问底层对象。


注意:通常不需要明确地调用。


content
响应的内容,以字节为单位。


cookies =无
服务器返回的Cookie。


elapsed =无
发送请求和响应到达之间的时间量(作为timedelta)。此属性专门测量发送请求的第一个字节和完成解析头文件之间的时间。因此,不需要消耗响应内容或stream关键字参数的值。


encoding =无
编码在访问r.text时进行解码。


headers =无
不区分大小写的响应头字典。例如,headers['content-encoding']将返回'Content-Encoding'响应头的值。


history =无
Response来自请求历史记录的对象列表。任何重定向响应将在此处结束。列表从最旧的请求排序到最近的请求。


is_permanent_redirect
如果此响应是永久版本的重定向,则为true。


is_redirect
如果此响应是可以很好自动处理(通过Session.resolve_redirects())格式的HTTP重定向,则为true 。


iter_content(chunk_size = 1,decode_unicode = False )
迭代响应数据。当请求中设置了stream = True时,这避免了一次将内容读入内存以进行大的响应。块大小是它应该读入内存的字节数。这不一定是在解码可以发生时返回的每个项目的长度。


chunk_size必须是int类型或None类型。stream = True将在数据到达时以任何大小块的形式读取数据。如果stream = False,则数据作为单个块返回。


如果decode_unicode为True,则将使用基于响应的最佳可用编码对内容进行解码。


iter_lines(chunk_size = 512,decode_unicode = None,delimiter = None )
响应数据迭代,一次一行。当请求中设置了stream = True时,这避免了一次将内容读入内存以进行大的响应。


注意


这种方法不是可重入的。


json(** kwargs )
返回响应的json编码内容(如果有)。


Parameters: ** kwargs - 可选参数json.loads。
Raises: ValueError - 如果响应正文不包含有效的json。
links
返回响应的解析头链接(如果有)。


next
返回一个PreparedRequest,用于重定向链中的下一个请求(如果有的话)。


ok
如果status_code小于400,则返回True 。


此属性检查响应的状态代码是否在400到600之间,以查看是否有客户端错误或服务器错误。如果状态代码在200到400之间,则返回True。这不是一个检查,看看是否有响应代码。200 OK


raise_for_status()
升高存储HTTPError,如果发生。


raw =无
表示文件类对象的响应(用于高级用法)。使用raw需要stream=True根据请求设置。


reason =无
响应HTTP状态的文本原因,例如“未找到”或“确定”。


request =无
PreparedRequest这是一个响应的对象。


status_code =无
响应HTTP状态的整数代码,例如404或200。


text
内容的回应,在unicode。


如果Response.encoding为None,则会使用编码进行猜测 chardet。


响应内容的编码仅基于HTTP标头确定,遵循RFC 2616的字母。如果您可以利用非HTTP知识来更好地猜测编码,则r.encoding在访问此属性之前,应该适当地进行设置。


url =无
响应的最终URL位置。


原创粉丝点击